找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 690|回复: 7

[研讨] 剪切trim与延伸extend

[复制链接]

已领礼包: 604个

财富等级: 财运亨通

发表于 2017-6-30 11:22:13 | 显示全部楼层 |阅读模式

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

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

×
以前见过他们讨论剪切trim与延伸extend,但没留意。最近拆图,一个多月了,第天就是从总图中拆出零件来,为标注和计算重量
下面提供主要方法,不提供子程序,供大家参考
  1. (defun C:DDX (/ HH:member A E E0 FIL FUZZ L N PDS PE PS PT PTS PTS0 PTS1 PX SS SS0 X)
  2.   ;;(HH:member '(-1578.29 235) '((-1578.29 2350) (-1512.91 2377)) 0.1)
  3.   (defun HH:member (p Lst Fuzz / A FLAG)
  4.     (setq Flag T)
  5.     (while (and (setq a (car Lst)) Flag)
  6.       (if (equal a p Fuzz)
  7.         (setq Flag nil)
  8.       )
  9.       (setq Lst (cdr Lst))
  10.     )
  11.     (or Lst (not Flag))
  12.   )
  13.   (setq        fil '((-4 . "<or")
  14.               (0 . "ARC,LINE")
  15.               (-4 . "<AND")
  16.               (0 . "*POLYLINE")
  17.               (70 . 0)
  18.               (-4 . "AND>")
  19.               (-4 . "or>")
  20.              )
  21.   )
  22.   (setq fuzz (/ (getvar 'viewsize) 100000))
  23.   (setvar "PEDITACCEPT" 1)
  24.   (setvar "qaflags" 1)

  25.   (while (setq ss (ssget fil))
  26.     (if        (setq ss0 (ssget "p" '((0 . "LWPOLYLINE"))))
  27.       (progn
  28.         (command "_.explode" ss0 "")
  29.         (setq ss (lst->ss (list ss (ssget "p"))))
  30.       )
  31.     )                                                            ;选择集相加
  32.     (repeat (setq n (sslength ss))
  33.       (setq e (ssname ss (setq n (1- n))))
  34.       (setq L (cons e L))
  35.       (_HH:Z0 (vlax-ename->vla-object e))                    ;归0
  36.       (setq ps (vlax-curve-getStartPoint e))
  37.       (setq pts (cons (list e ps) pts))
  38.       (setq pe (vlax-curve-getEndPoint e))
  39.       (setq pts (cons (list e pe) pts))                            ;对像+端点
  40.       (setq pds (cons (list ps pe) pds))                    ;((点 点)()
  41.     )
  42.     ;;求交点集合
  43.     (while (setq a   (car pds)
  44.                  pds (cdr pds)
  45.            )
  46.       (foreach x pds
  47.         (setq pt (apply 'inters (append a x '(nil))))
  48.         (if (and pt (not (member pt px)))
  49.           (setq px (cons pt px))                            ;交点集合
  50.         )
  51.       )
  52.     )
  53.     ;;延长不是交点的端点,
  54.     (while (setq a (car pts))
  55.       (setq pts (cdr pts))
  56.       (if (not (HH:member (cadr a) px fuzz))
  57.         (setq pts0 (cons a pts0))
  58.       )
  59.     )
  60.     (APPLY 'command (append (list "_.extend" ss "") pts0 '("")))

  61.     ;;剪切不是交点的端点,问题是:如果延长后点在屏幕之外??
  62.     (HH:ZoomEnt ss)   
  63.     (repeat (setq n (sslength ss))
  64.       (setq e (ssname ss (setq n (1- n))))
  65.       (setq ps (vlax-curve-getStartPoint e))
  66.       (if (not (= (sslength (ssget "c" ps ps fil)) 2))
  67.         (setq pts1 (cons ps pts1))
  68.       )
  69.       (setq ps (vlax-curve-getEndPoint e))
  70.       (if (not (= (sslength (ssget "c" ps ps fil)) 2))
  71.         (setq pts1 (cons ps pts1))
  72.       )
  73.     )
  74.     (APPLY 'command (append (list "_.trim" ss "") pts1 '("")))
  75.     (command "_.zoom" "_P")

  76.     ;;下面合成多段线
  77.     (setq L nil)
  78.     (repeat (setq n (sslength ss))
  79.       (setq e (ssname ss (setq n (1- n))))
  80.       (if (entget e)
  81.         (setq L (cons e L))
  82.       )
  83.     )
  84.     (setq e0 (entlast))
  85.     (if        (>= (atof (getvar 'acadver)) 16.1)                    ;05版及以上
  86.       (progn
  87.         (setq x (VL-PRINC-TO-STRING fuzz))
  88.         (APPLY 'command (list ".pedit" "m" ss "" "j" "j" "b" x ""))
  89.       )
  90.       (foreach x L
  91.         (APPLY 'command (list "_pedit" (ssname ss 0) "_j" ss "" ""))
  92.       )
  93.     )
  94.     (setq ss0 (lt:ss-entnext e0))
  95.     (vl-cmdf "_.select" ss0 "")
  96.     (setq ss0 (ssget "p" '((0 . "LWPOLYLINE") (70 . 1))))
  97.     (if        ss0
  98.       (princ (strcat "\n...生成封闭多段线" (itoa (sslength ss0)) "个,继续?..."))
  99.       (princ "\n...已连接但未生成封闭多段线,继续?......")
  100.     )
  101.   )
  102.   (princ)
  103. )
1.png
1.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1304个

财富等级: 财源广进

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

使用道具 举报

已领礼包: 8710个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 812个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 137个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 914个

财富等级: 财运亨通

发表于 2020-5-6 07:52:10 | 显示全部楼层
哇,好方便的工具

点评

剪切trim与延伸extend,你实际使用成功了吗?  详情 回复 发表于 2020-5-6 09:19
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 137个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 137个

财富等级: 日进斗金

发表于 2020-5-6 09:19:03 | 显示全部楼层
xk15c 发表于 2020-5-6 07:52
哇,好方便的工具

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 01:16 , Processed in 0.188802 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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