找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: newer

[曲线] 超强的批量的“融合线段”工具

 火... [复制链接]

已领礼包: 58个

财富等级: 招财进宝

发表于 2017-8-22 09:55:52 | 显示全部楼层
增加了对话框,支持量取距离作为融合精度
当直线为水平线时,(XD::Pickset:TableSortAtEcs (cdr x) xdir 0 0 '< '<) 出现除数
为0的错误提示
xdtb_linejoin.gif

  1. (defun c:XDTB_LineJoin
  2.                        (/                   ang
  3.                         dis                   e
  4.                         el                   el1
  5.                         new                   old
  6.                         p1                   p2
  7.                         pts                   ss
  8.                         tf                   x
  9.                         xdir                   y
  10.                         z                   box
  11.                         *error*
  12.                         c:XDTB_LineJoin/Form1/TextButton1#OnClicked
  13.                         c:XDTB_LineJoin/Form1#OnCancelClose
  14.                        )


  15.   (defun *error* (msg)
  16.     (if        (dcl-form-isactive xdtb_linejoin_form1)
  17.       (dcl-form-close xdtb_linejoin_form1)
  18.     )
  19.   )
  20.   (defun c:XDTB_LineJoin/Form1/TextButton1#OnClicked (/)
  21.     (if        (setq dis
  22.                (getdist
  23.                  (strcat "\n线合并距离精度<"
  24.                          (vl-princ-to-string #XDTB_GLOBAL_VAR_CURVE_SHORTLINE)
  25.                          ">:"
  26.                  )
  27.                )
  28.         )
  29.       (setq #XDTB_GLOBAL_VAR_CURVE_SHORTLINE dis)
  30.       (setq dis #XDTB_GLOBAL_VAR_CURVE_SHORTLINE)
  31.     )
  32.     (dcl-control-settext
  33.       xdtb_linejoin_form1_textbox1
  34.       (VL-PRINC-TO-STRING #XDTB_GLOBAL_VAR_CURVE_SHORTLINE)
  35.     )
  36.     (prompt "\n选择要融合的直线:")
  37.   )
  38.   (defun c:XDTB_LineJoin/Form1#OnCancelClose (Reason /)
  39.     t
  40.   )



  41.   (if (not #XDTB_GLOBAL_VAR_CURVE_SHORTLINE)
  42.     (setq #XDTB_GLOBAL_VAR_CURVE_SHORTLINE 0.5)
  43.   )
  44.   (setq box (last (xdrx_document_pixelbox)))



  45.   (command "_opendcl")
  46.   (if (not #XDTB_GLOBAL_VAR_odclProject_imported)
  47.     (progn
  48.       (dcl-project-import
  49.         '("YWt6A4YNAAAAlUzZBuKT6LUxLT9quME8V23GbltPD598fThc6ig038ZOOvdPdtw8XHXd/ywCLvQv"
  50.           "KhwyJjT8WMSv+1Aix4znhjYizr7z0BqbtEG+Oq/jT0DWGfislwJ0e/PMD+ygRcFHGbDCsEnJFawN"
  51.           "FxoAG8MWPXEInnZEDmJXWq7wby2Nf+ZXeDQKOyLVHRY4clMWPu1CeW464cpKXVLLOAeIN5nez0ne"
  52.           "IRRPErtenPZ2Obpka6FYz+bfrUTcmM7KOZujWoA/j2FKg5hdFMXwplLT8yytoHfXO1skOqTdLPH1"
  53.           "wWHg4BpXCqd+mz1/TDv4V6RbVUT7H3fVIN4cv+wPL3naBdiWXhSiwjIHVa0qrVY8MC9rqCDdx66Z"
  54.           "CZIx06OOHZxZuvH2wa8C1OK7htnFMVjYWC2dlNutcCsdnbKWAKFvJnYdkklj0PQdZWhBgm6S2Cvf"
  55.           "NSQItODZGsltNjRDV6itLCkZF+qNuhecSbqZ9tFtIVxwhiKANIhPHJuEBfssVU0iuQcspF11ZL3W"
  56.           "ErZnB/C0bC31mjJ/KojCxJLAlThrDvxows**CVD/uVdcfc1lrJHmSwwMtFto9bqoU8NZDfXybeN"
  57.           "1u3llQvBFWoJ48uhrMKxDCaNACS1RbTPMxqhFccsjWC0m3CcMJwIHIaihwzwEdiLqu5oQ5mKFenh"
  58.           "nV+ChI5pDEFXQ5xmbOF/1ly0v4XqDQn3kW+hXzAYKRso3fj2+c3VigOsSax2pzFuMSyCp5JQsI3i"
  59.           "i0nFhv+EwTnPvauqgd3j8QAGBEqxjgio6sylRFyRghR0r3f5acHjwZbDjiXbZkXVD3ebZ4ECtCUV"
  60.           "JyFjtSicTUXxJ0OxZrNd4SwVF2BHtKNzKcdt5JU2Nz+cU0qADZxim8kUoJbSzU7yBIek1ASViwcC"
  61.           "a5D5aOSLdJB5zRXSogI0U4G1NJPZhm26efdtutKKZbr5gJMz3nijj0KTIxDG4BH4PvmC35ZJzLcB"
  62.           "VY4BTEHXHZcRzoGMO6tNC5+In0HAcwApg9KIW6oTRjmjmMEi8ETRHmsKyXzjy5zZkY6BUViXOulh"
  63.           "dzbaYg=="
  64.          )
  65.       )
  66.       (setq #XDTB_GLOBAL_VAR_odclProject_imported t)
  67.     )
  68.   )
  69.   (dcl-form-show xdtb_linejoin/form1)
  70.   (dcl-control-settext
  71.     xdtb_linejoin_form1_textbox1
  72.     (VL-PRINC-TO-STRING #XDTB_GLOBAL_VAR_CURVE_SHORTLINE)
  73.   )
  74.   (dcl-form-setpos xdtb_linejoin/form1 (car box) (cadr box))


  75.   (prompt "\n选择要融合的直线:")
  76.   (while (setq ss (ssget '((0 . "LINE"))))
  77.     (progn
  78.       (XD::Begin)
  79.       (xdrx_sysvar_push "ucsicon" 0)
  80.       (if (not (xdrx_document_iswcs))
  81.         (progn (setq tf t) (vl-cmdf "ucs" "w"))
  82.       )

  83.       (if (and
  84.             (setq
  85.               dis (dcl-control-gettext xdtb_linejoin_form1_textbox1)
  86.             )
  87.             (not (eq dis ""))
  88.           )
  89.         (setq dis (atof dis))
  90.         (progn
  91.           (dcl-control-settext
  92.             xdtb_linejoin_form1_textbox1
  93.             (VL-PRINC-TO-STRING #XDTB_GLOBAL_VAR_CURVE_SHORTLINE)
  94.           )
  95.           (setq dis #XDTB_GLOBAL_VAR_CURVE_SHORTLINE)
  96.         )
  97.       )

  98.       (xdrx_document_setprec dis 1)
  99.       (xdrx_setsstodb ss 0)
  100.       (setq el nil)
  101.       (while (setq e (xdrx_getentdata 0))
  102.         (setq p1  (xdrx_getpropertyvalue e "StartPoint")
  103.               p2  (xdrx_getpropertyvalue e "EndPoint")
  104.               ang (angle p1 p2)
  105.               ang (XD::Geom:AngleFormat ang)
  106.               ang (rtos ang 2 4)
  107.         )
  108.         (if (setq old (assoc ang el))
  109.           (progn (setq new (cons ang (cons e (cdr old))))
  110.                  (setq el (subst new old el))
  111.           )
  112.           (progn (setq el (cons (list ang e) el)))
  113.         )
  114.       )
  115.       (setq
  116.         el1 (mapcar
  117.               '(lambda (x)
  118.                  (setq xdir (xdrx_vector_Rotate
  119.                               '(1 0 0)
  120.                               (atof (car x))
  121.                               '(0 0 1)
  122.                             )
  123.                  )
  124.                  (XD::Pickset:TableSortAtEcs (cdr x) xdir 0 0 '< '<)
  125.                )
  126.               el
  127.             )
  128.       )
  129.       (mapcar
  130.         '(lambda (x)
  131.            (mapcar
  132.              '(lambda (y)
  133.                 (setq p1 (xdrx_getpropertyvalue (car y) "StartPoint")
  134.                       p2 (xdrx_getpropertyvalue (car y) "EndPoint")
  135.                 )
  136.                 (setq
  137.                   pts (apply
  138.                         'append
  139.                         (mapcar
  140.                           '(lambda (z)
  141.                              (xdrx_getpropertyvalue z "StretchPoint")
  142.                            )
  143.                           y
  144.                         )
  145.                       )
  146.                 )
  147.                 (setq
  148.                   pts (mapcar
  149.                         'car
  150.                         (xdrx_points_sortOnCurve (list p1 p2) pts t)
  151.                       )
  152.                 )
  153.                 (xdrx_line_make (car pts) (last pts))
  154.                 (xdrx_entity_setPropertiesFrom (entlast) (car y))
  155.                 (xdrx_entity_delete y)
  156.               )
  157.              x
  158.            )
  159.          )
  160.         el1
  161.       )
  162.       (if tf
  163.         (vl-cmdf "ucs" "p")
  164.       )
  165.       (xdrx_sysvar_pop)
  166.       (XD::End)
  167.       (prompt "\n选择要融合的直线:")
  168.     )
  169.   )
  170.   (if (dcl-form-isactive xdtb_linejoin_form1)
  171.     (dcl-form-close xdtb_linejoin_form1)
  172.   )
  173.   (princ)
  174. )





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

使用道具 举报

已领礼包: 4个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 3个

财富等级: 恭喜发财

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 215个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 7个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 3个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 9个

财富等级: 恭喜发财

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

使用道具 举报

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

使用道具 举报

已领礼包: 8个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 233个

财富等级: 日进斗金

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-23 23:04 , Processed in 0.440421 second(s), 58 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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