删除爆破后的尺寸
本帖最后由 自贡黄明儒 于 2011-6-28 15:37 编辑;;;想删除爆破后的尺寸,但一直找不到好的方法,搞一个试试,求助各位有没有好的办法
;;;通只针对实心箭头这一个情况
(defun C:Te (/ E1 E1LIST N P10 P1011 P11 P12 P1P2 SS SS12 SSS X Y)
;;求两点之中点
(defun MJ:MIDPOINT (P1 P2 / X Y)
(mapcar '(lambda (X Y) (/ (+ X Y) 2.0)) P1 P2)
)
;;求得一点周围两点
(defun grbox1 (pt / H P1 P2)
;;copy from eachy
(setq h(* (/ (getvar "viewsize") (cadr (getvar "screensize")))
(getvar "pickbox")
)
p1 (mapcar '- pt (list h h 0.))
p2 (mapcar '+ pt (list h h 0.))
)
(list p1 p2)
)
(command "undo" "be")
(command "zoom" "e")
;;实心箭头选择集sss
(setq ss (ssget "X" '((0 . "SOLID"))))
(setq n 0)
(setq sss (ssadd))
(repeat (sslength ss)
(setq e1 (ssname ss n))
(setq e1list (entget e1))
(if (equal (Li_item 12 e1list) (Li_item 13 e1list))
(ssadd e1 sss)
)
(setq n (1+ n))
)
(setq n 0)
(while (/= (sslength sss) 0)
(setq e1 (ssname sss n))
(setq e1list (entget e1))
(setq p10 (Li_item 10 e1list))
(setq p11 (Li_item 11 e1list))
(setq p1011 (MJ:MIDPOINT p10 p11))
(setq p12 (Li_item 12 e1list))
;;ss12箭头尖角处直线e12选择集
(setq p1p2 (grbox1 p12))
(setq ss12 (ssget "C" (car p1p2) (cadr p1p2) '((0 . "LINE"))))
(command "erase" ss12 "")
;;ss12箭头后部中点处直线ss1011选择集
(setq p1p2 (grbox1 p1011))
(setq ss12 (ssget "C" (car p1p2) (cadr p1p2) '((0 . "LINE"))))
(command "erase" ss12 "")
(setq n (1+ n))
)
(command "erase" sss "")
(command "undo" "e")
(princ)
)
;;;删除爆破后的尺寸
(Defun LI_item (N E) (CDR (Assoc N E)))
研究下实体生成顺序,试试entnext,不过总之不安全。
页:
[1]