如何自动画线?
一根桥架(L或PL线构成),周围许多一样的图块(如摄像机等),我想一次性选择桥架旁边的图块,然后图块可以自动以基点连至桥架,请教高手如何实现? 没有高手回应吗?自己顶一下! 本帖最后由 mandala 于 2011-6-26 09:19 编辑没看明白你的意思。最好发个图,把你的欲望表达得强烈点、清楚点。比如如何连到桥梁?垂足?还有基点是指块插入的基点,还是指块中心?等等。 谢谢Mandala的提醒,因初次发帖,所以不是很懂。画了个图贴上来,请高手指点。 本帖最后由 yjr111 于 2011-10-5 02:20 编辑
版主到哪里去了?帮忙! 通过学习,自己写了个程序,希望可以帮助到同样需要的朋友!
;;;选择对象(各类实体均可)快速自动连接到所选直线、多段线、曲线、甚至多线!
;;;可用于物体快速连接桥架或管道
;;;BY yjr 2011.8.2
(defun c:btol()
(DEFUN *ERROR* (msg)
(COMMAND) (COMMAND)
(PRINC (STRCAT "\n 警告! " "程序已经退出!"))
(PRINC)
)
(setvar "cmdecho" 0)
(setvar "orthomode" 1)
(setq e1(entsel "\n 请选择要联接的线: "))
(if (= "MLINE" (cdr(assoc 0 (entget(car e1)))))
(progn
(command "explode" e1 )
(command)
(setq ssa (ssget "x" '((0 . "line" )(410 . "MODEL"))))
;;;以下LINE转PLINE程序为网络提供,在此感谢原作者
(setq n 0)
(while (< n (sslength ssa))
(setq ssa-ent (ssname ssa i)) (setq ent-p (cdr(assoc 0 (entget ssa-ent))))
(if (not (null ent-p))
(if (or (= ent-p "LWPOLYLINE") (= ent-p "POLYLINE"))
(command "pedit" ssa-ent "j" ssa "" "")
(command "pedit" ssa-ent "y" "j" ssa "" "")
))
(setq n (1+ n))
)
;;;以上LINE转PLINE程序为网络提供,在此感谢原作者
(setq e1(entsel "\n 请选择多线转换的多段线: "))
)
)
(setq lll (vlax-ename->vla-object (car e1)))
(setq i 0)
(setq ssb(ssget))
(while lll
(setq aa (ssname ssb i))
(setq s1(entget aa))
(command "layer" "S" "" '(entlast) )
(command)
(setq pt1 (cdr(assoc 10 s1)))
(setq pt2 (vlax-curve-getClosestPointTo lll pt1))
(command "line"pt1pt2 "")
(setq i (1+ i ))
)
(command)
(princ)
)
涔辩爜luanma 好思路,赞 楼主牛X看来是同行噢,前辈噢 2个月时间就写出这么好的程序了,麻烦都发点 方便工作的~~~
设备相关画图的 弱电的同行,找这个找了好久, 非常感谢
页:
[1]