求助lsp修改输出结果方式
本帖最后由 iszc 于 2022-8-29 00:21 编辑求助怎样将保存到txt文件修改为创建临时txt文件输出值 vl-filename-mktemp
(defun c:tt1()
(setvar "cmdecho" 0)
(setq ffn (getfiled "选取文件" "D:/Downloads/" "txt" 1))
(setq ff (open ffn "w"))
(close ff)
(princ "\n选取PLINE多义线...")
(setq ss (ssget))
(setq i 0)
(setq ii 1) ;;输出点号
(setvar "pdmode" 33)
(repeat (sslength ss)
(setq ssn (ssname ss i))
(setq endata (entget ssn))
(setq n 0)
(repeat (length endata)
(setq pp (nth n endata))
(setq key (car pp))
(if (= key 10)
(progn
(setq x_temp (cadr pp))
(setq y_temp (caddr pp))
(setq x (rtos x_temp 2 4)) ;;把x后小数点变为四位输出
(setq y (rtos y_temp 2 4)) ;;把y后小数点变为四位输出
(setq iii (itoa ii))
(setq ff (open ffn "a"))
(princ iii ff)
(princ "," ff)
(princ x ff)
(princ "," ff)
(princ y ff)
(princ "\n" ff)
(close ff)
(setq ii (1+ ii))
)
)
(setq n (1+ n))
)
(setq ii ii)
(setq i (1+ i))
)
)
本帖最后由 llsheng_73 于 2022-8-30 00:21 编辑
iszc 发表于 2022-8-29 23:52
改了不成功,运行没反应
查清楚函数用法,确定没用错,程序其它地方无错
逛明经快11年了,这个还不会改,确定不是故意抹黑明经的
(defun c:tt1( / ffn ff ss i ii ssn endata n pp key x_temp y_temp x y iii )
(setvar "cmdecho" 0)
(setq ffn (vl-filename-mktemp "d:\\$.txt"))
(princ "\n选取PLINE多义线...")
(setq ss (ssget))
(setq i 0)
(setq ii 1) ;;输出点号
(setvar "pdmode" 33)
(repeat (sslength ss)
(setq ssn (ssname ss i))
(setq endata (entget ssn))
(setq n 0)
(repeat (length endata)
(setq pp (nth n endata))
(setq key (car pp))
(if (= key 10)
(progn
(setq x_temp (cadr pp))
(setq y_temp (caddr pp))
(setq x (rtos x_temp 2 4)) ;;把x后小数点变为四位输出
(setq y (rtos y_temp 2 4)) ;;把y后小数点变为四位输出
(setq iii (itoa ii))
(setq ff (open ffn "a"))
(princ iii ff)
(princ "," ff)
(princ x ff)
(princ "," ff)
(princ y ff)
(princ "\n" ff)
(close ff)
(setq ii (1+ ii))
)
)
(setq n (1+ n))
)
(setq ii ii)
(setq i (1+ i))
)
(princ)
)
Sonnenblumen 发表于 2022-9-1 09:58
已经输出了,D盘下txt文件,你先看看!
(defun c:tt1( / ffn ff ss i ii ssn endata n pp key x_temp y_temp x y iii )
(setvar "cmdecho" 0)
(setq ffn (vl-filename-mktemp "d:\\$.txt"))
(princ "\n选取PLINE多义线...")
(setq ss (ssget))
(setq i 0)
(setq ii 1) ;;输出点号
(setvar "pdmode" 33)
(repeat (sslength ss)
(setq ssn (ssname ss i))
(setq endata (entget ssn))
(setq n 0)
(repeat (length endata)
(setq pp (nth n endata))
(setq key (car pp))
(if (= key 10)
(progn
(setq x_temp (cadr pp))
(setq y_temp (caddr pp))
(setq x (rtos x_temp 2 4)) ;;把x后小数点变为四位输出
(setq y (rtos y_temp 2 4)) ;;把y后小数点变为四位输出
(setq iii (itoa ii))
(setq ff (open ffn "a"))
(princ iii ff)
(princ "," ff)
(princ x ff)
(princ "," ff)
(princ y ff)
(princ "\n" ff)
(close ff)
(setq ii (1+ ii))
)
)
(setq n (1+ n))
)
(setq ii ii)
(setq i (1+ i))
)
(startapp "notepad.exe" (findfile ffn))
(princ)
)
vl-filename-mktemp这不是你自己已经找到答案了么,把获取文件名的那句改为用它就行了呗 llsheng_73 发表于 2022-8-29 10:29
vl-filename-mktemp这不是你自己已经找到答案了么,把获取文件名的那句改为用它就行了呗
改了不成功,运行没反应 本帖最后由 iszc 于 2022-8-31 19:42 编辑
Sonnenblumen 发表于 2022-8-30 16:29
运行选取多义线后,不能输出结果
选取PLINE多义线...
选择对象: 找到 1 个
选择对象:正在重生成模型。
已经输出了,D盘下txt文件,你先看看! Sonnenblumen 发表于 2022-9-1 10:05
测试成功,非常感谢! Sonnenblumen 发表于 2022-8-30 16:29
带XY,定0位,怎么修改?:handshake
页:
[1]