以下程序用ET的flatten将spl转换为pline,但转换后的的线条复制后仍为spl线,不知为何
 - (defun C:tt (/ en0 pt1 pt2 o_s acadObj doc)
- (command "undo" "be")
- (setvar "cmdecho" 0)
- (setq o_s (getvar "osmode"))
- (prompt "\n 选取spl线:")
- (setq en0 (ssname (ssget ":S" '((0 . "SPLINE"))) 0))
- (setq pt1 (getpoint "\n拾取基点:") pt2 (getpoint "\n拾取目标点:") )
- (setvar "osmode" 0)
- (if en0
- (progn
- (setq acadObj (vlax-get-acad-object))
- (setq doc (vla-get-ActiveDocument acadObj))
- (vla-sendcommand doc "flatten p ")
- (setq en1 (entlast))
- (command "copy" en1 "" pt1 pt2 "")
- )
- )
- (setvar "osmode" o_s)
- (command "undo" "e")
- (prin1)
- )
|