马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
1. 直线
[JavaScript] 纯文本查看 复制代码 ;; Reverse LINE - Marko Ribar, d.i.a.
(defun rli ( li / enx sp ep )
(if (= (cdr (assoc 0 (setq enx (entget li)))) "LINE")
(progn
(setq sp (cdr (assoc 10 enx)) ep (cdr (assoc 11 enx)))
(setq enx (subst (cons 10 ep) (assoc 10 enx) enx))
(setq enx (subst (cons 11 sp) (assoc 11 enx) enx))
(entmod enx)
(entupd li)
)
)
)
2.3DPOLYLINE
[JavaScript] 纯文本查看 复制代码 ;; Reverse 3DPOLYLINE - Marko Ribar, d.i.a.
(defun r3dp ( 3dp / v p pl sfa var )
(vl-load-com)
(if
(and
(= (cdr (assoc 0 (entget 3dp))) "POLYLINE")
(< 7 (cdr (assoc 70 (entget 3dp))) 10)
)
(progn
(setq v 3dp)
(while (= (cdr (assoc 0 (entget (setq v (entnext v))))) "VERTEX")
(setq p (cdr (assoc 10 (entget v))))
(setq pl (cons p pl))
)
(setq pl (apply 'append pl))
(setq sfa (vlax-make-safearray vlax-vbdouble (cons 0 (1- (length pl)))))
(vlax-safearray-fill sfa pl)
(setq var (vlax-make-variant sfa))
(vla-put-coordinates (vlax-ename->vla-object 3dp) var)
(entupd 3dp)
)
)
)
3. SPLINE
[JavaScript] 纯文本查看 复制代码 ;; Reverse SPLINE - Marko Ribar, d.i.a.
(defun rspl ( spl / enx x12 x13 x1 x2 x3 x4 x5 )
(if (= (cdr (assoc 0 (setq enx (entget spl)))) "SPLINE")
(progn
(foreach a1 enx
(cond
( (= (car a1) 12) (setq x13 (cons (cons 13 (mapcar '- (cdr a1))) x13)) )
( (= (car a1) 13) (setq x12 (cons (cons 12 (mapcar '- (cdr a1))) x12)) )
( (= (car a1) 40) (setq x2 (cons a1 x2)) )
( (= (car a1) 10) (setq x3 (cons a1 x3)) )
( (= (car a1) 41) (setq x4 (cons a1 x4)) )
( (= (car a1) 11) (setq x5 (cons a1 x5)) )
( t (setq x1 (cons a1 x1)) )
)
)
(entmod
(append
(reverse x1)
x12
x13
(mapcar '(lambda ( x ) (cons 40 (- (cdar x2) (cdr x)))) x2)
(if x4
(apply 'append (mapcar '(lambda ( a b ) (list a b)) x3 x4))
x3
)
x5
)
)
(entupd spl)
)
)
)
4.LWPOLYLINE
[JavaScript] 纯文本查看 复制代码 (defun rlw ( LW / E X1 X2 X3 X4 X5 X6 )
;; by ElpanovEvgeniy
;; reverse lwpolyline
(if (= (cdr (assoc 0 (setq e (entget lw)))) "LWPOLYLINE")
(progn (foreach a1 e
(cond ((= (car a1) 10) (setq x2 (cons a1 x2)))
((= (car a1) 40) (setq x4 (cons (cons 41 (cdr a1)) x4)))
((= (car a1) 41) (setq x3 (cons (cons 40 (cdr a1)) x3)))
((= (car a1) 42) (setq x5 (cons (cons 42 (- (cdr a1))) x5)))
((= (car a1) 210) (setq x6 (cons a1 x6)))
(t (setq x1 (cons a1 x1)))
)
)
(entmod (append (reverse x1)
(append (apply (function append)
(apply (function mapcar)
(cons 'list
(list x2
(cdr (reverse (cons (car x3) (reverse x3))))
(cdr (reverse (cons (car x4) (reverse x4))))
(cdr (reverse (cons (car x5) (reverse x5))))
)
)
)
)
x6
)
)
)
(entupd lw)
)
)
)
5.HELIX
[JavaScript] 纯文本查看 复制代码 ;; Reverse HELIX - Marko Ribar, d.i.a.
(defun rhel ( hel / enx enx1 enx2 v x1 x2 x3 )
(if (= (cdr (assoc 0 (setq enx (entget hel)))) "HELIX")
(progn
(setq enx1 (reverse (cdr (member '(100 . "AcDbHelix") (reverse enx)))))
(setq enx2 (member '(100 . "AcDbHelix") enx))
(foreach a1 enx1
(cond
( (= (car a1) 40) (setq x2 (cons a1 x2)) )
( (= (car a1) 10) (setq x3 (cons a1 x3)) )
( t (setq x1 (cons a1 x1)) )
)
)
(setq enx2 (subst (cons 40 (distance (cdr (assoc 10 enx2)) (cdr (assoc 11 enx2)))) (assoc 40 enx2) enx2))
(setq enx2 (subst (cons 10 (mapcar '+ (cdr (assoc 10 enx2)) (mapcar '* (cdr (assoc 12 enx2)) (list (* (cdr (assoc 41 enx2)) (cdr (assoc 42 enx2))) (* (cdr (assoc 41 enx2)) (cdr (assoc 42 enx2))) (* (cdr (assoc 41 enx2)) (cdr (assoc 42 enx2))))))) (assoc 10 enx2) enx2))
(setq enx2 (subst (cons 11 (cdr (car x3))) (assoc 11 enx2) enx2))
(setq enx2 (subst (cons 12 (mapcar '- (cdr (assoc 12 enx2)))) (assoc 12 enx2) enx2))
(entmod
(append
(reverse x1)
(mapcar '(lambda ( x ) (cons 40 (- (cdar x2) (cdr x)))) x2)
x3
enx2
)
)
(entupd hel)
)
)
)
6.2d POLYLINE
|