onemax01 发表于 2025-4-14 11:15:06

为何用flatten转换spl为pline后无法复制为pline线

以下程序用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)
)

wzg356 发表于 2025-4-14 12:57:05

我帖子有取得各种线/曲线园椭圆弧spL等坐标—把坐标画pLiNe线就行

onemax01 发表于 2025-4-15 12:33:02

我帖子有取得各种线/曲线园椭圆弧spL等坐标—把坐标画pLiNe线就行
老大贴子里那个多段线处理程序我试用过,spl转换出来的pline线为折线而非圆弧多段线,而且折线点稍多,还是觉得ET工具里的flatten转换出的圆弧多段线较为理想,所以想用lisp调用flatten命令处理spl线并进行后续操作,只是不知为何转换后的pline线无法复制,程序认出的(entlast)对象仍旧是原来的spl线

统一网名 发表于 2025-4-16 07:45:09

我的是cad 2021测试复制后的类型是 LWPOLYLINE
页: [1]
查看完整版本: 为何用flatten转换spl为pline后无法复制为pline线