思路:
将所选物体打上水平剖面线后炸开;
在每个物体内的最长直线中点画小圆。
;在最大位置画小圆 明经 ZZXXQQ 2011.5.7
(defun c:tt ()
(setvar "CMDECHO" 0)
(command ".UNDO" "BE")
(if (setq ss (ssget '((0 . "LWPOLYLINE")))) (progn
(setq i 0)
(command "HATCH" "U" 0 1 "" ss "" ".EXPLODE" "L")
(repeat (sslength ss)
(setq ent (entget(ssname ss i)))
(setq plst (list))
(foreach x ent (if (= (car x) 10) (setq plst (cons (cdr x) plst))))
(setq ss1 (ssget "CP" plst '((0 . "LINE"))))
(setq j 0 maxdst -1e10)
(repeat (sslength ss1)
(setq ent (entget(ssname ss1 j))
pt1 (cdr(assoc 10 ent))
pt2 (cdr(assoc 11 ent))
dst (distance pt1 pt2))
(if (> dst maxdst)
(setq maxdst dst ptm (polar pt1 (angle pt1 pt2) (/ dst 2)))
)
(setq j (1+ j))
)
(command ".ERASE" ss1 "" ".CIRCLE" ptm 1)
(setq i (1+ i))
)
))
(command ".UNDO" "E")
(setvar "CMDECHO" 1)
(princ)
)
终于有人出招啦 呵呵···试了下程序上图。 这个程序应该需要算法才能出来的 闭合轮廓然后往中间偏移行不行!
将外围轮廓闭合,然后往中间一层层偏移,最后会在里面形成几处中心,然后那一处偏移的层数最多,就以那一处为中心画圆。 本帖最后由 3527188 于 2011-5-8 00:17 编辑
panliang9 发表于 2011-5-7 19:45 http://space.mjtd.com/static/image/common/back.gif
闭合轮廓然后往中间偏移行不行!
将外围轮廓闭合,然后往中间一层层偏移,最后会在里面形成几处中心,然后 ...
呵呵···开贴我就说明了是闭合的多段线,这个办法可以试试
页:
1
[2]