明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 986|回复: 7

[已解答] 请各位大侠给予帮助,修改一个导出复合线坐标的程序。

[复制链接]
发表于 2015-10-27 16:19:44 | 显示全部楼层 |阅读模式
(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
        no  0
    )
           (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 (car  pt) 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

以上是对修改程序的一个设想,还请各位大侠给予帮助,各种感激。。。。
发表于 2015-10-27 17:02:40 | 显示全部楼层
(strcat ;(itoa no) ","
       (rtos (car  pt) 2 3) ","
       (rtos (cadr pt) 2 3)
)

Try:
(strcat wjm ", "
       (rtos (car  pt) 2 3) ","
       (rtos (cadr pt) 2 3)
)
 楼主| 发表于 2015-10-27 20:10:35 | 显示全部楼层
这样改还是不行,结果是这样的:
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
 楼主| 发表于 2015-10-27 20:11:55 | 显示全部楼层
Andyhon 发表于 2015-10-27 17:02
(strcat ;(itoa no) ","
       (rtos (car  pt) 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 是被定义成了一个路径
发表于 2015-10-27 20:22:06 | 显示全部楼层
snight523 发表于 2015-10-27 20:11
你好 感谢你的回复。 修改后提取出的数据是这样的:
C:\Users\dawes\Desktop\120.5.txt,479.793,761.058 ...

(strcat (vl-filename-base wjm)", "
       (rtos (car  pt) 2 3) ","
       (rtos (cadr pt) 2 3)
)
发表于 2015-10-28 08:34:39 | 显示全部楼层
本帖最后由 菜卷鱼 于 2015-10-28 08:48 编辑

把 wjm 后缀处理掉


(strcat (vl-string-subst "," ".txt" wjm)
       (rtos (car  pt) 2 3) ","
       (rtos (cadr pt) 2 3)
)
 楼主| 发表于 2015-10-29 07:27:34 | 显示全部楼层
谢谢帮忙,终于解决了。 llsheng_73 的方法可行
 楼主| 发表于 2015-10-29 07:28:09 | 显示全部楼层
llsheng_73 发表于 2015-10-27 20:22
(strcat (vl-filename-base wjm)", "
       (rtos (car  pt) 2 3) ","
       (rtos (cadr pt) 2 3)

非常感谢!! 帮了大忙了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-7-16 04:20 , Processed in 0.174648 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表