alwtyp 发表于 2013-5-16 23:35 
不好意思,还是不知道每一个顶点的组码中了(10)以外,还有哪些是必须的,固定的?难道(40)(41)(42)(91)这四 ...
给您写了一个去圆弧的,不标尺寸您自己可以搞定的 - (defun c:test1 (/ e en lst lstt ent x lsttt n)
- (setq en (entget (setq e(car (entsel "\n选择PL:")))))
- (setq lst nil
- lstt nil
- )
- (setq ent (vl-member-if
- '(lambda (x) (= 10 (car x)))
- (reverse (cdr (reverse en)))
- )
- )
- (repeat (/ (length ent) 4)
- (repeat 4
- (setq lst (cons (car ent) lst))
- (setq ent (cdr ent))
- )
- (setq lstt (cons (reverse lst) lstt)
- lst nil
- )
- )
- (setq lst (reverse lstt)
- lstt nil
- lsttt nil
- )
- (while lst
- (if (null
- (vl-remove-if-not
- (function (lambda (x) (and (/= 0 (cdr x)) (= 42 (car x)))))
- (car lst)
- )
- )
- (progn (setq lstt (cons (car lst) lstt))
- (setq lst (cdr lst))
- )
- (progn (setq
- lsttt
- (cons
- (cons (subst '(42 . 0) (assoc 42 (car lst)) (car lst))
- lstt
- )
- lsttt
- )
- )
- (setq lstt nil
- lst (cdr lst)
- )
- )
- )
- )
- (setq
- lsttt (mapcar '(lambda (x) (apply 'append x)) (cons lstt lsttt))
- )
- (foreach n lsttt
- (entmake (append (list (assoc 0 en)
- '(100 . "AcDbEntity")
- (assoc 8 en)
- '(100 . "AcDbPolyline")
- (cons 90 (1+ (/ (length n) 4)))
- '(70 . 0)
- )
- n
- )
- )
- )
- (entdel e)
- (princ)
- )
|