求助能否帮忙修改一下lisp,使得导出数据前加一列文字。
(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)
)
以上是找的导出复合线坐标的命令,能否在导出的txt文件前加一列相同的数字,就是输入的文件名。
例如 使用命令后输入了该断面的里程 导出数据为: 偏距,高程 能否修改后使得导出数据为 里程,偏距,高程
求助各位大神。谢谢
写得不是很清楚,不知道下面的效果是不是你要的
(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 0no 0)
(write-line"该断面的里程"fff)
(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)
)
本帖最后由 llsheng_73 于 2015-8-13 22:29 编辑
feng83 发表于 2015-8-12 22:12 http://bbs.mjtd.com/static/image/common/back.gif
写得不是很清楚,不知道下面的效果是不是你要的
(defun c:tqzb (/)
估计理解错了楼主的意思
按楼主的说法是希望点一条线,然后输入这条线的里程
然后文件里边在原来输出数据基础上,每一个开始都写上刚才输入的那个数值
文件名以里程来命名
这样楼主或者他的同事才知道哪个文件是哪条断面,所以文件中里程位置是同一个,不需要进行计数
另外这种断面数据文件一般都会有专门的断面绘制程序来处理,所以数据格式及内容都得严格按程序所规定的来 llsheng_73 发表于 2015-8-13 21:16 static/image/common/back.gif
估计理解错了楼主的意思
按楼主的说法是希望点一条线,然后输入这条线的里程
然后文件里边在原来输出 ...
还是不明白,,,什么叫里程,量程什么的 楼主把要表达的意思说明白点啊,这里面很多人不是从事你那个行业的,都不明白你说什么,如果说不清,可以上张图表达一下,你想要得到的效果 feng83 发表于 2015-8-13 21:39 static/image/common/back.gif
还是不明白,,,什么叫里程,量程什么的
打字打错了回去我问下是哪个手指乱打的。。。。。 llsheng_73 发表于 2015-8-13 22:30 static/image/common/back.gif
打字打错了回去我问下是哪个手指乱打的。。。。。
呵呵,,,, 谢谢各位大侠的帮助,怪我没说的清楚,这个lisp启动后需要输入保存的文件名 这个文件名就输成里程桩号,然后输出的数据前面就添加这个固定的里程桩号。如下图
本帖最后由 feng83 于 2015-8-25 21:00 编辑
snight523 发表于 2015-8-25 13:44 static/image/common/back.gif
谢谢各位大侠的帮助,怪我没说的清楚,这个lisp启动后需要输入保存的文件名 这个文件名就输成里程桩号,然后 ...
里程桩号是多线段的长度还是什么?
你的文件名是1206,前面固定的里程桩号是150?
你给一个要导出的CAD图档,然后指明要导出哪个,然后附上一个你想要的结果,这样大家即使看不懂你说的,也可以从图形中找答案的 snight523 发表于 2015-8-25 13:44 static/image/common/back.gif
谢谢各位大侠的帮助,怪我没说的清楚,这个lisp启动后需要输入保存的文件名 这个文件名就输成里程桩号,然后 ...
我也觉得你没说清楚。你应该上2张图,1张是现在的图。另1张是你希望改造后的效果图。
2个对比就能看清楚了。否则光说专业术语,听不懂。
页:
[1]