Clifford169 发表于 2022-7-5 16:30:21

关于创建门洞口的查询

我希望有人能在这方面给我一些帮助。我们进行测量测量,并使用标准autocad命令自己绘制所有测量。我们在标准厨房/卫生间单元中使用了少量的砌块,但在其他情况下,我们将按照其测量尺寸(精确到5mm)绘制。
 
我一直在寻求改进我们的绘图方法和速度,目前正专注于门的开口。我的想法是我们可以画一个圆,其中直径是门的开口。然后,该圆将在任意一端打断多段线,并将其转换为一条单独的线,该线将位于“天花板”层中。理想情况下,我可以在墙/门开口的厚度处偏移这条新线,并在两条天花板线的末端之间绘制一条“建筑”线。
 
这将是我寻找的一个很好的起点。如果有什么建议可以帮我做到这一点,或者如果有更简单的选择,我们将不胜感激!

mwade93 发表于 2022-7-5 16:36:19

有一件事你可以使用,而不是打破线是使用擦拭。它将清空所有内容并创建一个掩码。只要确保你的线条按绘图顺序在上面就行了。

BIGAL 发表于 2022-7-5 16:44:51

很容易想象这样的选择左侧门点,选择右侧,输入门宽度,选择内部皮肤。破门而入。我没有张贴任何代码,因为我不想做两次。发布样例dwg。我很确定有人会发布“draw door”代码。
 
看看这张图片,它把门窗按照我描述的方式切成内外两层。

Clifford169 发表于 2022-7-5 16:49:31

只是为了更新,我找到了另一个李Mac的工具,可以满足我的需要。
 
http://www.lee-mac.com/objectbreak.html
 
我在这里面使用“BRKO”命令(为方便起见改为BKO)来打破我们门的“内部”,并将墙线放入天花板层。有没有一种简单的方法来扩展它,以允许更改的行请求偏移命令?

BKT 发表于 2022-7-5 16:51:07

你有没有可能在图片前后贴一张图片或一张示例dwg?我不清楚你在第#1篇文章中想要实现什么。

Clifford169 发表于 2022-7-5 16:57:34

是的,我很感激我所追求的是一个有点利基。。。下面的图片应该显示我试图从中获得什么(最后一个阶段是成品,我很高兴进入第四个阶段)。
 

BKT 发表于 2022-7-5 17:05:05

我有一点时间玩这个,所以我想给你一些代码来试用。
同样,不美观,没有错误检查等。
 
(defun c:test (/ clyr dwidth wwidth ln lnpt1 lnpt2 pt pt1 pt2 crc doorln offln sideln1 sideln2 sideln3 sideln4 offang offpt1 offpt2 newang newpt)

   (setq clyr (getvar "CLAYER"))
   (setq dwidth (getreal "\nEnter Door Width: "))
   (setq wwidth (getreal "\nEnter Wall Width: "))
   (setq pt (getpoint "\nSelect Point for Circle: "))

       (command "._circle" pt (/ dwidth 2))

   (setq ln (nentselp pt))
   (setq crc (entsel "\nSelect Circle on Wall Side: "))

       (command "._trim" ln "" crc "")
       (command "._trim" crc "" ln "")

   (setq lnpt1 (polar pt (cdr (assoc 50 (entget (car crc)))) (/ dwidth 2)))
   (setq lnpt2 (polar pt (cdr (assoc 51 (entget (car crc)))) (/ dwidth 2)))

   (entdel (car crc))

   (setq sideln1 (nentselp lnpt1))
   (setq sideln2 (nentselp lnpt2))

       (setvar "CLAYER" "ceiling")

       (command "._offset" wwidth sideln1 (cadr crc) "")

   (setq sideln3 (entlast))

       (command "._offset" wwidth sideln2 (cadr crc) "")

   (setq sideln4 (entlast))

       (entmakex (list (cons 0 "LINE")
                     (cons 10 lnpt1)
                     (cons 11 lnpt2)))

   (setq doorln (entlast))

       (command "._offset" wwidth doorln (cadr crc) "")

   (setq offln (entlast))

   (setq offang (angle (cdr (assoc 10 (entget doorln)))(cdr (assoc 10 (entget offln)))))
   (setq offpt1 (cdr (assoc 10 (entget offln))))
   (setq offpt2 (cdr (assoc 11 (entget offln))))

       (setvar "CLAYER" "building")

       (entmakex (list (cons 0 "LINE")
                     (cons 10 (cdr (assoc 10 (entget doorln))))
                     (cons 11 (cdr (assoc 10 (entget offln))))))

       (entmakex (list (cons 0 "LINE")
                     (cons 10 (cdr (assoc 11 (entget doorln))))
                     (cons 11 (cdr (assoc 11 (entget offln))))))

       (setvar "CLAYER" "door")

   (setq pt1 (getpoint "\nSelect Hinge Point: "))
   (setq pt3 (polar pt1 offang dwidth))

       (command "._pline" "_non" pt1 pt3 "")

   (setq newang (angle pt lnpt1))

   (setq newpt (polar pt1 (- newang offang) dwidth))

(if (equal pt1 offpt2 0.000001)
       (command "._arc" pt3 "_C" pt1 offpt1)
       (command "._arc" offpt2 "_C" pt1 pt3)
)

       (setvar "CLAYER" clyr)

(princ)

)

Clifford169 发表于 2022-7-5 17:05:56

刚刚有时间给这一个很好的测试运行抱歉!
 
是的,它正在汇集在一起,只是门摆最终放置的几个问题,它将只存在于门的偏移侧。此外,是否可以在模型空间而不是命令栏中输入距离?这只是一种个人习惯。
 
非常感谢您迄今为止的帮助,非常感谢!

OMEGA-ThundeR 发表于 2022-7-5 17:15:07

如果图形中的门看起来总是一样的,难道不可以将其设置为动态块吗?
 
如果你有一个“标准厨房/卫生间”的街区,我想门也可以用类似的方式,对吗?(除了外观外,唯一的变量是宽度和高度,似乎非常适合动态块)。

Clifford169 发表于 2022-7-5 17:19:10

 
我以前收到过关于动态块的建议,但我从未使用过,我们也没有在我的办公室使用过。有没有一个好的“怎么做”指南可以告诉我?非常感谢^
页: [1] 2
查看完整版本: 关于创建门洞口的查询