请各位大侠给予帮助,修改一个导出复合线坐标的程序。
(defun c:tqzb (/)(setq cm (getvar "cmdecho"))
(setvar "cmdecho" 0)
(if (setq wjm (getfiled "请指定要保存的坐标文件" "e:\\" "txt" 1))
(if (setq ssa (ssget '((0 . "LWPOLYLINE"))))
(progn
(setq fff (open wjm "w")
n (sslength ssa)
i 0
no0
)
(repeat n
(setq dxf (entget (ssname ssa i))
i (1+ i)
ptb (mapcar 'cdr (vl-remove-if-not '(lambda(x)(= (car x) 10)) dxf))
ptb (mapcar '(lambda(x)(trans x 0 1)) ptb)
)
(foreach pt ptb
(setq no (1+ no))
(write-line
(strcat ;(itoa no) ","
(rtos (carpt) 2 3) ","
(rtos (cadr pt) 2 3)
)
fff
)
)
)
(close fff)
(princ (strcat "\n坐标已存入\"" wjm "\"中"))
)
)
)
(setvar "cmdecho" cm)
(princ)
)
以上摘抄别人的导出复合线坐标的命令,能否帮忙在导出数据前加一列数据。
现在的操作步骤如下:
1使用tqzb命令后弹出对话框--请指定要保存的坐标文件 这时候要输入文件名比如文件名120.5
2然后要选择对象(要提取坐标的复合线) 右键后 坐标已存入"C:\Users\dawes\Desktop\120.5.txt"中
这时候保存的txt文件 120.5中数据如下:(数据为复合线的结点坐标)
368.173,-96.282
495.815,-154.367
539.254,-100.955
595.390,-76.920
可否修改一下程序,使导出的数据前增加一列固定的数据 数值即120.5 使得生成的txt文件数据为
120.5,368.173,-96.282
120.5,495.815,-154.367
120.5,539.254,-100.955
120.5,595.390,-76.920
以上是对修改程序的一个设想,还请各位大侠给予帮助,各种感激。。。。
(strcat ;(itoa no) ","
(rtos (carpt) 2 3) ","
(rtos (cadr pt) 2 3)
)
Try:
(strcat wjm ", "
(rtos (carpt) 2 3) ","
(rtos (cadr pt) 2 3)
)
这样改还是不行,结果是这样的:
C:\Users\dawes\Desktop\120.5.txt,479.793,761.058
C:\Users\dawes\Desktop\120.5.txt,684.694,659.718
C:\Users\dawes\Desktop\120.5.txt,926.112,564.46
C:\Users\dawes\Desktop\120.5.txt,1086.382,536.085
C:\Users\dawes\Desktop\120.5.txt,1315.627,511.763
C:\Users\dawes\Desktop\120.5.txt,1709.2,444.879
Andyhon 发表于 2015-10-27 17:02 static/image/common/back.gif
(strcat ;(itoa no) ","
(rtos (carpt) 2 3) ","
(rtos (cadr pt) 2 3)
你好 感谢你的回复。 修改后提取出的数据是这样的:
C:\Users\dawes\Desktop\120.5.txt,479.793,761.058
C:\Users\dawes\Desktop\120.5.txt,684.694,659.718
C:\Users\dawes\Desktop\120.5.txt,926.112,564.46
C:\Users\dawes\Desktop\120.5.txt,1086.382,536.085
C:\Users\dawes\Desktop\120.5.txt,1315.627,511.763
C:\Users\dawes\Desktop\120.5.txt,1709.2,444.879
wjm 是被定义成了一个路径 snight523 发表于 2015-10-27 20:11 static/image/common/back.gif
你好 感谢你的回复。 修改后提取出的数据是这样的:
C:\Users\dawes\Desktop\120.5.txt,479.793,761.058 ...
(strcat (vl-filename-base wjm)", "
(rtos (carpt) 2 3) ","
(rtos (cadr pt) 2 3)
) 本帖最后由 菜卷鱼 于 2015-10-28 08:48 编辑
把 wjm 后缀处理掉
(strcat (vl-string-subst "," ".txt" wjm)
(rtos (carpt) 2 3) ","
(rtos (cadr pt) 2 3)
) 谢谢帮忙,终于解决了。 llsheng_73 的方法可行 llsheng_73 发表于 2015-10-27 20:22 static/image/common/back.gif
(strcat (vl-filename-base wjm)", "
(rtos (carpt) 2 3) ","
(rtos (cadr pt) 2 3)
非常感谢!! 帮了大忙了
页:
[1]