[求助]求一个能批量标注线段长度的程序
<P>不知道那位大虾能帮帮忙。</P> 阳光动力 发表于 2012-6-20 15:21这个批量标注,加载后,输入:xbz
过了很多年,依然好用, 阳光动力 发表于 2012-6-20 15:21
这个批量标注,加载后,输入:xbz
感谢分享,谢谢 这个批量标注,加载后,输入:xbz (defun c:dll( / rs n po px py rv ang1 ang2 angc cx cy tslst)
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(princ "\n 请选择标注对象: ")
(setq rs (ssget '((0 . "circle,arc,line"))))
(if rs
(progn
(setq n 0)
(repeat (sslength rs)
(setq rslst(entget(ssname rs n)))
(setq po (cdr (assoc 10 rslst)))
(setq px (car po))
(setq py (cadr po))
(setq rv (cdr (assoc 40 rslst)))
(cond
((= "ARC" (cdr (assoc 0 rslst)))
(setq ang1 (cdr (assoc 50 rslst)))
(setq ang2 (cdr (assoc 51 rslst)))
(setq angc (/ (+ ang2 ang1 ) 2.0))
(setq cx (+ px (* rv (cos angc))))
(setq cy (+ py (* rv (sin angc))))
(command"dimradius" (list (ssname rs n) (list cx cy 0)) "")
)
((= "CIRCLE" (cdr (assoc 0 rslst)))
(setq angc (/ pi 4.0))
(setq cx (+ px (* rv (cos angc))))
(setq cy (+ py (* rv (sin angc))))
(command "dimdiameter" (list (ssname rs n) (list cx cy 0)) "")
)
((= "LINE" (cdr (assoc 0 rslst)))
(setq po (cdr (assoc 10 rslst)))
(setq pn (cdr (assoc 11 rslst)))
(setq pox (car po)
poy (cadr po))
(setq pnx (car pn)
pny (cadr pn))
(setq pzx (/ (+ pox pnx) 2.0)
pzy (/ (+ poy pny) 2.0))
(setq pz (list (- pzx 2) (+ 2 pzy) 0))
(command "dimaligned" po pn pz )
)
)
(setq n (1+ n))
)
)
)
(setvar "osmode" os)
(princ)
) 谢谢分享,有可以自动计算cad图里每一条线长度的代码呀,我是做线束的 学习下好程序~ 程序不错啊 缘份呐 发表于 2012-6-20 17:38 static/image/common/back.gif
(defun c:dll( / rs n po px py rv ang1 ang2 angc cx cy tslst)
(setq os (getvar "osmode"))
(setv ...
谢谢分享 不错,支持一下 缘份呐 发表于 2012-6-20 17:38 static/image/common/back.gif
(defun c:dll( / rs n po px py rv ang1 ang2 angc cx cy tslst)
(setq os (getvar "osmode"))
(setv ...
标准的尺寸线与线段重合,请问如何处理 阳光动力 发表于 2012-6-20 15:21 static/image/common/back.gif
这个批量标注,加载后,输入:xbz
这个不错,谢谢分享
页:
[1]
2