我这里有一个导出XYZ长度角度的列表
但是现在我只想导出每条线的中点,有人能帮我吗?
- (defun c:LINEEXTRACTION ( / d e f i s spt ept)
- (if (and (setq s (ssget '((0 . "LINE"))))
- (setq f (getfiled "" "" "CSV" 1))
- (setq d (open f "w"))
- )
- (progn
- (write-line "Start X,Start Y,Start Z,End X,End Y, End Z,Group,Length,Angle" d)
- (repeat (setq i (sslength s))
- (setq e (entget (ssname s (setq i (1- i))))
- spt (cdr (assoc 10 e))
- ept (cdr (assoc 11 e))
- )
- (write-line
- (LM:lst->str
- (append
- (mapcar 'rtos (cdr (assoc 10 e)))
- (mapcar 'rtos (cdr (assoc 11 e)))
- (if (and (setq e (member '(102 . "{ACAD_REACTORS") e))
- (setq e (member '(102 . "{ACAD_REACTORS") (entget (setq x (cdr (assoc 330 e))))))
- (setq e (cdr (assoc 3 (member (cons 350 x) (reverse (entget (cdr (assoc 330 e))))))))
- )
- (list e)
- )
- )
- ","
- )
- d
- )
- )
- (close d)
- )
- )
- (prompt "DONE!")
- (princ)
- )
- (defun LM:lst->str ( lst del )
- (if (cdr lst)
- (strcat (car lst) del (LM:lst->str (cdr lst) del)
- ","
- (rtos (distance spt ept)) ","
- (angtos (angle spt ept))
- )
- (car lst)
- )
- )
- (princ)
|