gashaglava 发表于 2022-7-8 11:34:33

DIMARC连续

大家好,
 
我是第一次来这里,我希望你能帮我解决我的问题。
 
我需要一种方法来标注圆弧的尺寸,但在更多点上,例如曲线墙与其他物体相交,等等。
 
标准dimarc只提供一段弧的长度,但我有完整的墙。
 
基本上,它应该像dimcontinuous命令一样工作,但在圆弧上。
 
Revit和Archicad都有这样的可能性。
 
有没有在autocad中执行此操作的方法?
 
提前谢谢,我真的很感谢大家的帮助,因为我有一个项目要完成,我不知道怎么做。
 
再见

gashaglava 发表于 2022-7-8 11:46:27

我找到的唯一方法是使用BreakAll lisp,在与墙相交的线上切割圆弧,然后用DIMARC逐个标注尺寸。但它持续的时间太长了。
 
所以,我需要一些lisp来标注整个弧的尺寸,以获得我选择的不同点之间的弧长度-就像DIMCONTINUAL一样。
 
或者,可以自动测量多个弧段的弧长-类似于Aleksandr Smirnov的PDIM。
 
非常感谢你。

CALCAD 发表于 2022-7-8 11:56:43

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)
)

gashaglava 发表于 2022-7-8 12:10:43

这正是我所需要的!
 
谢谢你1000次!

gashaglava 发表于 2022-7-8 12:24:19

如果要改进此脚本,可以在圆弧上提供更多点供选择,然后在单个尺寸线上标注线段的弧长。
它还会删除最近的点捕捉,因此无法将标注文字精确放置在所需的尺寸线上。
 
但这对我来说很好。
 
再次感谢,你救了我的命!

CALCAD 发表于 2022-7-8 12:28:45

很高兴口齿不清有用。如果你在lisp中有其他想要的功能,也许你可以发布一张图片,详细说明你想要什么。我不能保证快速回复,但我最终会努力的。

gashaglava 发表于 2022-7-8 12:36:37

你好
 
这是我认为最理想的做法——例如,在Archicad或Revit中可以轻松完成同样的事情——但请您,只要您感兴趣并且有时间。你做的lisp DLA很棒。
 
图1:结构网格布局
图2:选择一个弧。
图3:选择弧上需要获得弧长的所有点
图4:尺寸线
图5:将弧长放置在尺寸线上(或指定偏移尺寸线)。
 
 
非常感谢。




页: [1]
查看完整版本: DIMARC连续