马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
程序写的比较简单,还可以增加在起点处显示一个方向箭头就更明显了

- ;;reverse Lwpolyline
- (defun c:t1 (/ e el el1 el2 el3 el4 el5)
- (if (and (setq e (car (entsel "\nSelect Lwpolyline: ")))
- (= (cdr (assoc 0 (setq el (entget e)))) "LWPOLYLINE")
- )
- (progn
- (setq el1 (vl-remove-if-not
- '(lambda (x) (vl-position (car x) '(10 40 41 42)))
- (member (assoc 10 el) el)
- );_ property of coordinate (point startwidth endwidth bulge ...)
- el4 (mapcar '(lambda (x) (cons (car x) (- (cdr x))))
- (reverse (vl-remove-if-not
- '(lambda (x) (= (car x) 42))
- el1
- )
- )
- );_ Bulge of every coordinate
- el2 (reverse (cdr (member (assoc 10 el) (reverse el))));_ header dxf of lwpline
- )
- (setq el4 (append (cdr el4) (list (car el4))));_ reset bulge of coordinates
- (while (> (length el1) 3)
- (if el3
- (setq el3
- (append
- (list
- (list (car el1) (cadr el1) (caddr el1) (cadddr el1))
- )
- el3
- )
- )
- (setq
- el3 (list
- (list (car el1) (cadr el1) (caddr el1) (cadddr el1))
- )
- )
- );_ ((point startwidth endwidth bulge) ...)
- (setq el1 (cddddr el1))
- )
- (setq el5 (mapcar
- '(lambda (a b)
- (append (list (car a) (cadr a) (caddr a) b))
- )
- el3
- el4
- )
- );_ reset coordinates
- (entmod (append el2 (apply 'append el5)));_ updata pline
- )
- )
- (princ)
- )
|