找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2676|回复: 13

[求助] 求程序,将直线突出的部分减掉

[复制链接]
发表于 2013-11-4 12:55:28 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 c961806787 于 2013-11-4 12:59 编辑

如题,自己也写了一个,但效果不理想。谢谢指正。下面的动图是我无意中发现的,感觉对我很有用,没找到作者。功能:减掉突出的线头
  1. ;;轴线裁剪
  2. (defun c:atr( / )
  3.   (vl-cmdf "undo" "be")
  4.   (CG:StoreSysVar)
  5.     ;主程序开始
  6.   (vl-load-com)
  7.   (setvar 'cmdecho 0)
  8.   (setvar 'osmode 0)
  9.   (princ "\n选择需裁剪的轴线:")
  10.   (setq ss (ssget) nn (sslength ss) i 0 sslist '())
  11.   (repeat nn
  12.     (setq en0 (ssname ss i))
  13.     (setq pta (Vlax-Get (Vlax-Ename->Vla-Object en0) 'EndPoint)
  14.     ptb (Vlax-Get (Vlax-Ename->Vla-Object en0) 'StartPoint)
  15.     sslist (append (list (list en0 pta) (list en0 ptb)) sslist);所有直线端点的集合
  16.     go t j 0 mm (- nn 2)
  17.     )
  18.     (ssdel en0 ss)
  19.     (while (and go (<= j mm))
  20.       (setq en1 (ssname ss j))
  21.       (setq ptc (Vlax-Get (Vlax-Ename->Vla-Object en1) 'EndPoint)
  22.       ptd (Vlax-Get (Vlax-Ename->Vla-Object en1) 'StartPoint)
  23.       )
  24. ;;;      (vl-cmdf "_.area" pta ptc ptd "")
  25. ;;;      (setq #area (getvar 'area))
  26.       (if (and (equal (+ (distance pta ptc) (distance pta ptd)) (distance ptc ptd) 10) (/= (inters pta ptb ptc ptd t) nil))
  27.   (progn (vl-remove (list en0 pta) sslist) (setq go nil))
  28.       )
  29.       (setq j (1+ j))
  30.     )
  31.     (setq go t j 0)
  32.     (while (and go (<= j mm))
  33.       (setq en1 (ssname ss j))
  34.       (setq ptc (Vlax-Get (Vlax-Ename->Vla-Object en1) 'EndPoint)
  35.       ptd (Vlax-Get (Vlax-Ename->Vla-Object en1) 'StartPoint)
  36.       )
  37. ;;;      (vl-cmdf "_.area" ptb ptc ptd "")
  38. ;;;      (setq #area (getvar 'area))
  39.       (if (and (equal (+ (distance ptb ptc) (distance ptb ptd)) (distance ptc ptd) 10) (/= (inters pta ptb ptc ptd t) nil))
  40.    (progn (vl-remove (list en0 ptb) sslist) (setq go nil))
  41.     )
  42.       (setq j (1+ j))
  43.     )
  44.     (ssadd en0 ss)
  45.     (setq i (1+ i))
  46.   )
  47.   (setq nn_list (length sslist) k 0)
  48.   (repeat nn_list
  49.     (setq pt_bas (nth k sslist))
  50.     (vl-cmdf "_.trim" ss "e" "n" pt_bas "")
  51.     (setq k (1+ k))
  52.   )
  53.     ;主程序结束
  54.   (vl-cmdf "_.undo" "e")
  55.   (princ "\n***完成!")
  56.   (CG:RestoreSysVar)
  57.   (prin1)
  58. )
  59. (prompt "\n***池工出品,精益求精!***")
  60. (prin1)

  61. ;存储系统变量
  62. (defun CG:StoreSysVar()
  63.   (setq vcmde (getvar "CMDECHO"))  ;普通命令的提示
  64.   (setq vblip (getvar "blipmode")) ;光标痕迹
  65.   (setq vclay (getvar "CLAYER"))   ;图层
  66.   (setq vosmo (getvar "osmode"))   ;捕捉模式
  67.   (setq vplwd (getvar "plinewid")) ;pl宽度
  68.   (setq vlupr (getvar "luprec"))   ;长度精度
  69. )
  70. ;还原系统变量
  71. (defun CG:RestoreSysVar()
  72.   (setvar "CMDECHO" vcmde)
  73.   (setvar "blipmode" vblip)
  74.   (setvar "CLAYER" vclay)
  75.   (setvar "osmode" vosmo)
  76.   (setvar "plinewid" vplwd)
  77.   (setvar "luprec" vlupr)
  78. )
  79. ;错误处理
  80. (defun *error* (msg)
  81.   (CG:RestoreSysVar)
  82.   (princ msg)
  83. )
lisp_-_明经CAD社区_-_Powered_by_Discuz!_adf5ea0f.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 19个

财富等级: 恭喜发财

发表于 2013-11-4 14:20:14 | 显示全部楼层
我想,肯定离不开排序了。

点评

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

使用道具 举报

已领礼包: 685个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 685个

财富等级: 财运亨通

发表于 2013-11-4 15:47:02 | 显示全部楼层
Lisphk 发表于 2013-11-4 14:20
我想,肯定离不开排序了。

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

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

使用道具 举报

发表于 2013-11-4 19:09:24 | 显示全部楼层
原帖地址:
http://bbs.mjtd.com/thread-107831-2-1.html
游客,本帖隐藏的内容需要积分高于 30 才可浏览,您当前积分为 0


点评

非常感谢,也在找这种程序。  详情 回复 发表于 2013-11-7 09:34
找的我好苦!谢谢大神!  详情 回复 发表于 2013-11-4 21:15
程式很精简,高手。  发表于 2013-11-4 20:02
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-4 21:15:38 | 显示全部楼层
Lisper 发表于 2013-11-4 19:09
原帖地址:
http://bbs.mjtd.com/thread-107831-2-1.html
**** 本内容被作者隐藏 ****

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

使用道具 举报

发表于 2013-11-7 09:34:48 | 显示全部楼层
Lisper 发表于 2013-11-4 19:09
原帖地址:
http://bbs.mjtd.com/thread-107831-2-1.html
**** 本内容被作者隐藏 ****

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

使用道具 举报

发表于 2013-11-7 12:37:47 | 显示全部楼层
延伸修剪08.gif

点评

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-7 12:50:45 来自手机 | 显示全部楼层
求每个线和其它所有线的交点,交点集在曲线上按param排序,和startpoint endpoint 比较,按条件用movestretchpoint修改
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

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

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

发表于 2013-11-9 13:48:50 | 显示全部楼层

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 04:19 , Processed in 0.405681 second(s), 63 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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