[求助]选择几个块,自动PL线连接块的插入点
<p>选择几个块,自动PL线连接块的插入点</p><p>做植物设计时,标注乔木会花费大量的时间。</p><p>一般来说,乔木都会定义为块,框选几个块后,生成PL线连接这些块的插入点呢?</p> 这是个好程序我也想要看看源码太666666了这是现在急需的呀…… 关注中 <p>传一个例图上来看看,另外用pl线连接插入点是否有顺序要求?</p> <p></p><p>例图已传上来了,顺便从最近的一个一个连接吧,到最后生成一根水平的线及图名和数量</p> <p></p><p>JPG图像已上传,连接顺序挺不好确定的!这个程序还要考虑出图比例,分层之类。还是挺麻烦的,对于我来说</p>
;同名块连线 明经 ZZXXQQ 2008.8.23 2009.5.22
(defun c:tt ()
(setvar "CMDECHO" 0)
(if (and (setq s1 (entsel "\nSelect a block :"))
(setq ent (entget(car S1)))
(= (cdr(assoc 0 ent)) "INSERT"))
(if (setq ss (ssget (list '(0 . "INSERT") (assoc 2 ent)))) (progn
(setq j -1 ptlst (list) nn (sslength ss)
bnm (strcat (cdr(assoc 2 ent)) " (" (itoa nn) ")"))
(repeat nn
(setq ent (entget(ssname ss (setq J (1+ J))))
ptlst (cons (cdr(assoc 10 ent)) ptlst))
)
(setq pt (getpoint "\nNear Start Point :") pt0 pt i 1 k nil
dst (distance pt0 (car ptlst)) ln (length ptlst))
(repeat (1- ln)
(setq pt1 (nth i ptlst))
(if (< (distance pt0 pt1) dst) (setq dst (distance pt0 pt1) k i))
(setq i (1+ i))
)
; (print ptlst) (princ k)
(if k
(setq pt0 (nth k ptlst)
ptmp (list pt0)
ptlst (append
(reverse (cdr(member pt0 (reverse ptlst)))) (cdr(member pt0 ptlst))))
)
; (print ptmp) (print ptlst)
(while (> (length ptlst) 1)
(setq dst (distance (car ptlst) pt0) j 1 k nil)
(while (< j (1- (length ptlst)))
(setq pt1 (nth j ptlst))
(if (< (distance pt0 pt1) dst) (setq dst (distance pt0 pt1) k j))
(setq j (1+ j))
)
(if k
(setq pt0 (nth k ptlst) ptmp (append ptmp (list pt0))
ptlst (append
(reverse(cdr(member pt0 (reverse ptlst)))) (cdr(member pt0 ptlst))))
(setq pt0 (car ptlst) ptmp (append ptmp (list pt0)) ptlst (cdr ptlst))
)
; (print ptmp) (print ptlst)
)
(setq ptlst (append ptmp ptlst))
(setq i 0)
(command ".TEXT" "S" "STYLE1" (polar (polar (car ptlst) 0 5) (/ pi 2) 1) 3 0 bnm)
(command ".PLINE" (polar (car ptlst) 0 35) (car ptlst))
(repeat (1- (length ptlst))
(command (nth (setq i (1+ i)) ptlst))
)
(command "")
))
)
(setvar "CMDECHO" 1)
(princ)
)
高!學習中 <p><strong><font face="Verdana" color="#da2549">ZZXXQQ的程序试用了,块的插入点能联结。但生成的PL线在某些时候有交点,如果生成的PL线没有交点就好了。这也是标注的标准之一</font></strong></p><p><strong><font face="Verdana" color="#da2549">非常感谢ZZXXQQ</font></strong></p> <p>程序演示:</p><p></p> wo ye kan kan