找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2987|回复: 7

[编程申请] 请求一个根据多段线顶点的信息生成多段线的程序。

[复制链接]

已领礼包: 19个

财富等级: 恭喜发财

发表于 2013-5-9 10:41:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
工作中,相关部门总是提供一个文本文件里面记录着多段线的顶点坐标表,从来不给我们电子文档。我们都要根据坐标一个一个的把多段线画出来,能不能给写一个工具,自动生成多段线呢?

谢谢!

数据如下,就是用LIST命令列出的多段线信息:

  1.             LWPOLYLINE  图层: 竣工落图地形
  2.                             空间: 模型空间
  3.                    句柄 = E70A
  4.             闭合
  5.     固定宽度    0.0000
  6.               面积   948.8353
  7.          周长   143.2095

  8.           于端点  X=89145.7383  Y=42547.7105  Z=   0.0000
  9.           于端点  X=89163.3181  Y=42566.5083  Z=   0.0000
  10.           于端点  X=89168.9188  Y=42558.2746  Z=   0.0000
  11.           于端点  X=89185.8763  Y=42566.3530  Z=   0.0000
  12.           于端点  X=89200.3447  Y=42550.8176  Z=   0.0000
  13.           于端点  X=89186.8097  Y=42547.8659  Z=   0.0000
  14.           于端点  X=89182.9204  Y=42537.1465  Z=   0.0000
  15.           于端点  X=89175.6084  Y=42539.9429  Z=   0.0000
  16.           于端点  X=89162.0736  Y=42535.7483  Z=   0.0000
复制代码
QQ截图20130509104117.png
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-5-9 10:53:21 | 显示全部楼层
提供文本格式
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

 楼主| 发表于 2013-5-9 11:20:02 | 显示全部楼层

谢eachy大师,来了。

请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

文件名称:tt.txt 
下载次数:20  文件大小:738 Bytes 
下载权限: 不限 以上  [免费赚D豆]

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-5-9 11:54:18 | 显示全部楼层
Lisphk 发表于 2013-5-9 11:20
谢eachy大师,来了。

要的是给你的那个表,不是 List
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

 楼主| 发表于 2013-5-9 12:05:55 | 显示全部楼层
eachy 发表于 2013-5-9 11:54
要的是给你的那个表,不是 List

eachy大师,他们经常给我们两种格式,一种是上面我贴的,就是多段线的直接LIST,另外一个是下面我贴的,就是X,Y坐标呼唤的,这两种都帮我写一个吧,谢谢!
下面这个其实画图的时候X是Y,Y是X。

  1.           X=42547.7105  Y=89145.7383    Z=   0.0000
  2.           X=42566.5083  Y=89163.3181    Z=   0.0000
  3.           X=42558.2746  Y=89168.9188    Z=   0.0000
  4.           X=42566.3530  Y=89185.8763    Z=   0.0000
  5.           X=42550.8176  Y=89200.3447    Z=   0.0000
  6.           X=42547.8659  Y=89186.8097    Z=   0.0000
  7.           X=42537.1465  Y=89182.9204    Z=   0.0000
  8.           X=42539.9429  Y=89175.6084    Z=   0.0000
  9.           X=42535.7483  Y=89162.0736    Z=   0.0000
复制代码
对,有时候还给我们提供界址点坐标的,就是WORD的表格,X,Y也是反的,那个现在手头一时找不到,那个我找出后,再帮我写个。:kiss:
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-5-9 12:21:49 | 显示全部楼层
呵呵,这东西我一般这么做,直接给你做个X和Y呼唤的演示吧。不过,期待EACHY大师的程序,我这个方法不一定什么时候都通用。

tt8.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-5-9 13:34:55 | 显示全部楼层
TXT 格式的,DOC文件请提供样本
声明:本程序仅对特定格式,请仔细查看后再行使用![pcode=lisp,true](defun c:tt (/ fl fn )
  (if (setq fl (getfiled "Select Coordinates File" "" "txt" 8))
    (progn
      (setq fn (open fl "r"))
      (vl-catch-all-apply
        (function
          (lambda (/ n lst)
            (while (setq n (read-line fn))
              (setq n (vl-string-trim " " (strcase n)))
              (if (wcmatch n "*X=*Y=*")
                (setq lst (cons (strcat n ")") lst))
              )
            )
            (if        lst
              (progn
                (setq lst
                       (mapcar
                         '(lambda (x)
                            (strcat
                              "("
                              (vl-string-trim
                                " "
                                (vl-string-translate
                                  "XYZ="
                                  "    "
                                  (substr x (1+ (vl-string-search "X" x)))
                                )
                              )
                            )
                          )
                         lst
                       )
                )
              )
            )            
            (apply 'vl-cmdf (cons ".pline" (mapcar 'read lst)))
            (vl-cmdf "c")
            (vl-cmdf ".zoom" "e")
          )
        )
      )
      (close fn)
    )
  )
  (princ)
)[/pcode]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-5-9 13:40:28 | 显示全部楼层
忘了换 XY[pcode=lisp,true](apply 'vl-cmdf (cons ".pline" (reverse (vl-remove 0. (mapcar 'read lst)))))[/pcode]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-22 12:16 , Processed in 0.472804 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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