找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3115|回复: 4

[多段线] 读取LIST命令生成的多段线文件重新绘出多段线

[复制链接]

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-5-9 15:49:19 | 显示全部楼层 |阅读模式
  • 插件名称 : 文件生成
  • 作  者 : Newer
  • 运行环境 :XDRX API 
  • 发布时间 :2016-05-09
  • 命令名称 :XDTB_PolyFileRead
  • 插件介绍 :LIST命令列出LWPOLYLINE信息保存文件后,根据这个文件的信息重新画出多段线
  • 备  注 : (点击图片可以放大)
    LWPOLYLINE 图层: 0
    空间: 模型空间
    颜色: 1 (红) 线型: BYLAYER
    句柄 = 1e4
    闭合
    面积 780964.8950
    周长 3246.5184

    于端点 X=1447.4090 Y= 291.7655 Z= 0.0000
    起点宽度 30.0000
    端点宽度 3.0000
    于端点 X=1750.9345 Y= 906.9609 Z= 0.0000
    起点宽度 0.0000
    端点宽度 0.0000
    凸度 0.6649
    圆心 X=1421.7274 Y=1069.4078 Z= 0.0000
    半径 367.1053
    起点角度 334
    端点角度 108
    于端点 X=1306.9718 Y=1418.1160 Z= 0.0000
    起点宽度 0.0000
    按 ENTER 键继续:
    端点宽度 0.0000
    凸度 0.2954
    圆心 X=1512.5144 Y= 793.4781 Z= 0.0000
    半径 657.5867
    起点角度 108
    端点角度 174
    于端点 X= 858.4789 Y= 861.7260 Z= 0.0000
    起点宽度 0.0000
    端点宽度 0.0000
    凸度 0.4866
    圆心 X=1376.4363 Y= 807.6764 Z= 0.0000
    半径 520.7698
    起点角度 174
    端点角度 278
(点击图片可以放大)

晓东温馨提示 1、运行环境为 晓东工具箱XDRX API 的插件,请下载最新版本的 晓东工具箱XDRX API开发环境 一键安装
2、在ACAD中如何加载插件,请看 论坛插件使用方法
3、如果您有要求需要定制插件,请到 编程申请 论坛发帖求助

插件详细内容

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

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

×
本帖最后由 newer 于 2016-5-9 15:52 编辑

根据这个帖子的申请整理后提供个插件。http://bbs.xdcad.net/thread-704143-1-1.html

[sell=3]
  1. (defun c:XDTB_PolyFileRead ( / bulge bulges clr clr1 cw e ews f ff fn isclosed lyr lyr1 new nums old px py sw sws x)
  2.   (if (setq fn (xdrx_system_selectFiles "选取POLYLINE信息文件名" "" "txt" 0))
  3.     (progn
  4.       (setq ff nil
  5.             bulges nil
  6.             sws nil
  7.             ews nil
  8.       )
  9.       (if (setq f (XD::List:FromFile (car fn)))
  10.         (progn
  11.           (setq nums 0)
  12.           (mapcar
  13.             '(lambda (x)
  14.                (if (xdrx_string_find x "闭合")
  15.                  (setq isclosed t)
  16.                )
  17.                (if (setq lyr (XD::String:MatchNumAfter x "图层:" nil))
  18.                  (setq lyr1 (car lyr))
  19.                )
  20.                (if (setq clr (XD::String:MatchNumAfter x "颜色:" nil))
  21.                  (setq clr1 (car clr))
  22.                )
  23.                (if (setq cw (XD::String:MatchNumAfter x "固定宽度" nil))
  24.                  (setq cw (car cw))
  25.                )
  26.                (if (and
  27.                      (xdrx_string_find x "于端点")
  28.                      (setq px (XD::String:MatchNumAfter x "x=" nil))
  29.                      (setq py (XD::String:MatchNumAfter x "y=" nil))
  30.                    )
  31.                  (setq ff (cons (list (atof (car px)) (atof (car py))) ff)
  32.                        nums (1+ nums)
  33.                  )
  34.                )
  35.                (if (setq sw (XD::String:MatchNumAfter x "起点宽度" nil))
  36.                  (setq sws (cons (list (- nums 1) (atof (car sw))) sws))
  37.                )
  38.                (if (setq sw (XD::String:MatchNumAfter x "端点宽度" nil))
  39.                  (progn
  40.                    (setq old (assoc (- nums 1) sws)
  41.                          new (append
  42.                                old
  43.                                (list (atof (car sw)))
  44.                              )
  45.                          sws (subst
  46.                                new
  47.                                old
  48.                                sws
  49.                              )
  50.                    )
  51.                  )
  52.                )
  53.                (if (setq bulge (XD::String:MatchNumAfter x "凸度" nil))
  54.                  (setq bulges (cons (list (- nums 1) (atof (car bulge)))
  55.                                     bulges
  56.                               )
  57.                  )
  58.                )
  59.              )
  60.             f
  61.           )
  62.           (setq ff (reverse ff))
  63.           (setq e (xdrx_polyline_make ff))
  64.           (mapcar
  65.             '(lambda (x)
  66.                (xdrx_setpropertyvalue e "bulgeat" x)
  67.              )
  68.             bulges
  69.           )
  70.           (mapcar
  71.             '(lambda (x)
  72.                (xdrx_setpropertyvalue e "widthat" x)
  73.              )
  74.             sws
  75.           )
  76.           (if isclosed
  77.             (xdrx_setpropertyvalue e "isclosed" t)
  78.           )
  79.           (if cw
  80.             (xdrx_setpropertyvalue e "ConstantWidth" cw)
  81.           )
  82.           (xdrx_setpropertyvalue e "layer" lyr1)
  83.           (xdrx_setpropertyvalue e "color" (atoi clr1))
  84.         )
  85.       )
  86.     )
  87.   )
  88.   (princ)
  89. )


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

使用道具 举报

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

使用道具 举报

已领礼包: 13个

财富等级: 恭喜发财

发表于 2017-7-19 02:04:45 来自手机 | 显示全部楼层
如何购买?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 216个

财富等级: 日进斗金

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 03:12 , Processed in 0.417702 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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