DIMARC连续
大家好,我是第一次来这里,我希望你能帮我解决我的问题。
我需要一种方法来标注圆弧的尺寸,但在更多点上,例如曲线墙与其他物体相交,等等。
标准dimarc只提供一段弧的长度,但我有完整的墙。
基本上,它应该像dimcontinuous命令一样工作,但在圆弧上。
Revit和Archicad都有这样的可能性。
有没有在autocad中执行此操作的方法?
提前谢谢,我真的很感谢大家的帮助,因为我有一个项目要完成,我不知道怎么做。
再见 我找到的唯一方法是使用BreakAll lisp,在与墙相交的线上切割圆弧,然后用DIMARC逐个标注尺寸。但它持续的时间太长了。
所以,我需要一些lisp来标注整个弧的尺寸,以获得我选择的不同点之间的弧长度-就像DIMCONTINUAL一样。
或者,可以自动测量多个弧段的弧长-类似于Aleksandr Smirnov的PDIM。
非常感谢你。 gashaglava,
不确定这是你需要的,但你可以试试这个lisp。
希望这有帮助。
; DLA.LSP - dimension length of arc
; modified version of DIMARC from (^v^) XANADU, http://www.xanadu.cz
; runs continuously - <Esc> to exit
(defun C:DLA ( / *ERROR* pt1 pt2 cen a1 a2 ad D1 D2 D i r oldOs oldCmde)
(defun *ERROR* (msg)
(princ " function")
(setvar "OSMODE" oldOs)
(setvar "CMDECHO" oldCmde)
(princ)
)
(setq oldCmde (getvar "CMDECHO"))
(setq oldOs (getvar "OSMODE"))
(setvar "CMDECHO" 0)
(while T
(princ "\n Pick 2 points on an arc - ")
(setvar "OSMODE" 33)
(while (not cen)
(setq pt1 (getpoint "\n 1st pt: ")
cen (osnap pt1 "_CEN")
)
(if (not cen) (alert "Doesn't lay on an arc, retry")
(setq pt2 (getpoint pt1 "\n 2nd pt: "))
)
) ; while
(setvar "OSMODE" 0)
(setq a1 (angle cen pt1)
a2 (angle cen pt2)
ad (abs (- a2 a1))
r (distance pt1 cen)
D1 (* r ad)
D2 (* r (- (* 2 pi) ad))
)
(princ (strcat "\n Arc length (1) = " (rtos D1) ", Complement (2) = " (rtos D2)))
(setq D D1)
(initget "1 2")
(setq i (getkword "\n Dim which? : "))
(princ "\n Place dimension : ")
(if (= i "2") (setq D D2))
(command "_DIMANGULAR" "" cen pt1 pt2 "_T" (rtos D) pause "")
(setq cen nil)
) ; while
(setvar "OSMODE" oldOs)
(setvar "CMDECHO" oldCmde)
(princ)
) 这正是我所需要的!
谢谢你1000次! 如果要改进此脚本,可以在圆弧上提供更多点供选择,然后在单个尺寸线上标注线段的弧长。
它还会删除最近的点捕捉,因此无法将标注文字精确放置在所需的尺寸线上。
但这对我来说很好。
再次感谢,你救了我的命! 很高兴口齿不清有用。如果你在lisp中有其他想要的功能,也许你可以发布一张图片,详细说明你想要什么。我不能保证快速回复,但我最终会努力的。 你好
这是我认为最理想的做法——例如,在Archicad或Revit中可以轻松完成同样的事情——但请您,只要您感兴趣并且有时间。你做的lisp DLA很棒。
图1:结构网格布局
图2:选择一个弧。
图3:选择弧上需要获得弧长的所有点
图4:尺寸线
图5:将弧长放置在尺寸线上(或指定偏移尺寸线)。
非常感谢。
页:
[1]