- UID
- 1776
- 积分
- 386
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-1-24
- 最后登录
- 1970-1-1
|
发表于 2004-7-14 14:15:04
|
显示全部楼层
前提:“这些线段的端头是互相连接的,线段的端头几乎不与其他线段相连”
[php]
(defun c:pl-test (/ ename elist layname pt10 pt11 ss num pl-list pl_list_1 pl_list_3 p10 p11)
(if (and (setq ename (entsel))
(setq ename (car ename))
(setq elist (entget ename))
(member '(0 . "LINE") elist)
)
(progn
(command "zoom" "e")
(setq layname (cdr (assoc 8 elist))
pt10 (cdr (assoc 10 elist))
pt11 (cdr (assoc 11 elist))
)
(setq pl-list (list (cons 10 (list (car pt10) (cadr pt10)))
'(40 . 0.0)
'(41 . 0.0)
'(42 . 0.0)
(cons 10 (list (car pt11) (cadr pt11)))
'(40 . 0.0)
'(41 . 0.0)
'(42 . 0.0)
)
)
(entdel ename)
(while (and (setq ss (ssget "c"
(mapcar '+ pt10 '(1e-3 1e-3 0.0))
(mapcar '- pt10 '(1e-3 1e-3 0.0))
(list '(0 . "LINE")
(cons 8 layname)
'(-4 . "<OR")
'(-4 . "=,=,=")
(cons 10 pt10)
'(-4 . "=,=,=")
(cons 11 pt10)
'(-4 . "OR>")
)
)
)
(= (sslength ss) 1)
(setq ename (ssname ss 0))
)
(if (member (cons 10 pt10) (entget ename))
(setq pt10 (cdr (assoc 11 (entget ename))))
(setq pt10 (cdr (assoc 10 (entget ename))))
)
(setq pl-list (append (list (cons 10 (list (car pt10) (cadr pt10)))
'(40 . 0.0)
'(41 . 0.0)
'(42 . 0.0)
)
pl-list
)
)
(entdel ename)
)
;(setq ename (cdr (assoc -1 elist)))
(while (and (setq ss (ssget "c"
(mapcar '+ pt11 '(1e-3 1e-3 0.0))
(mapcar '- pt11 '(1e-3 1e-3 0.0))
(list '(0 . "LINE")
(cons 8 layname)
'(-4 . "<OR")
'(-4 . "=,=,=")
(cons 10 pt11)
'(-4 . "=,=,=")
(cons 11 pt11)
'(-4 . "OR>")
)
)
)
(= (sslength ss) 1)
(setq ename (ssname ss 0))
)
(if (member (cons 10 pt11) (entget ename))
(setq pt11 (cdr (assoc 11 (entget ename))))
(setq pt11 (cdr (assoc 10 (entget ename))))
)
(setq pl-list (append pl-list
(list (cons 10 (list (car pt11) (cadr pt11)))
'(40 . 0.0)
'(41 . 0.0)
'(42 . 0.0)
)
)
)
(entdel ename)
)
(setq num (/ (length pl-list) 4)
pl_list_1 (list '(0 . "LWPOLYLINE")
'(100 . "AcDbEntity")
'(67 . 0)
(cons 8 layname)
'(100 . "AcDbPolyline")
(cons 90 num)
'(70 . 0)
'(43 . 0.0)
'(38 . 0.0)
'(39 . 0.0)
)
pl_list_3 '((210 0.0 0.0 1.0))
)
(entmake (append (append pl_list_1 pl-list) pl_list_3))
(princ)
)
)
)
[/php] |
|