找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1613|回复: 16

[求助] [求助]:有没有可以一次裁剪多个相交圆的LSP ?(见图)

[复制链接]
发表于 2004-12-5 16:30:34 | 显示全部楼层 |阅读模式

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

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

×
求可以一次裁剪多个相交的圆并将裁剪后的实体自动编组的LSP程序。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 6530个

财富等级: 富甲天下

发表于 2004-12-5 16:52:09 | 显示全部楼层
没有见过这样的程序,应该是没有通用性。如果太复杂,不想一点一点剪,可以试试“面域”“交集”,可能会快一点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-5 17:10:06 | 显示全部楼层

Re: [求助]:有没有可以一次裁剪多个相交圆的LSP ?(见图)

最初由 武陵山人 发布
[B]求可以一次裁剪多个相交的圆并将裁剪后的实体自动编组的LSP程序。 [/B]


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

使用道具 举报

发表于 2004-12-5 17:18:35 | 显示全部楼层
简单的可以,需改进:
[php];;;外轮廓
(defun c:test (/ pt1 pt2 ss e1 e2)
  (vl-load-com)
  (mkla "外轮廓" 1)
  (setq        pt1 (getpoint "\n窗口点1 : ")
        pt2 (getcorner pt1 "\n对角点 : ")
  )
  (setq ss(ssget"w" pt1 pt2 (list (cons 0 "CIRCLE"))))
  (vl-cmdf ".undo" "BE")
  (COMMAND "rectang" pt1 pt2)
  (setq e1 (entlast))
  (setq pt1 (getpoint "\n内部点 : "))
  (command "_boundary" pt1 "")
  (setq e2 (entlast))
  (vla-erase (vlax-ename->vla-object e1))
  (vla-erase (vlax-ename->vla-object e2))
  (command "erase" ss "")
  (vl-cmdf ".undo" "E")
  (princ)
)
(Defun MKLA (a b)
  (If (= (Tblsearch "layer" a) nil)
    (Command "layer" "m" a "c" b a "")
    (Command "layer" "t" a "s" a "c" b a "")
  )
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-5 17:25:39 | 显示全部楼层
程序不错,有3个问题:
1、建议不要增加“外轮廓”图层
2、不要改变用户的当前层
3、程序运行完后的外轮廓建议不要是个整体,由多个原对象保留下来的线组成?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-5 17:32:03 | 显示全部楼层
1、2、3基本解决,但不充分:
[php]
;;;外轮廓
(defun c:test (/ pt1 pt2 ss e1 e2)
  (vl-load-com)
  ;;(mkla "外轮廓" 1)
  (setq        pt1 (getpoint "\n窗口点1 : ")
        pt2 (getcorner pt1 "\n对角点 : ")
  )
  (setq ss (ssget "w" pt1 pt2 (list (cons 0 "CIRCLE"))))
  (vl-cmdf ".undo" "BE")
  (COMMAND "rectang" pt1 pt2)
  (setq e1 (entlast))
  (setq pt1 (getpoint "\n内部点 : "))
  (command "_boundary" pt1 "")
  (setq e2 (entlast))
  (vla-erase (vlax-ename->vla-object e1))
  (vla-erase (vlax-ename->vla-object e2))
  (command "erase" ss "")
  (command "explode" "l" "")
  (vl-cmdf ".undo" "E")
  (princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-6 03:46:17 | 显示全部楼层
xyp1064的基本思路不错,先建立一个临时的外轮廓,然后BOUNDARY。 但局限性很大:程序中很难确定角点, 且内部点附近有其他实体时容易出错, 删除原有的轮廓后会丢失数据如不同的图层等等?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-12-6 08:50:35 | 显示全部楼层
最初由 LUCAS 发布
[B]先把所有圓轉面域->union->再炸開即可 [/B]


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

使用道具 举报

发表于 2004-12-6 12:27:58 | 显示全部楼层
;;有需要就把它炸開,NO ERROR CHECK
(defun C:TT (/ SS)
  (setq SS (ssget "X"))
  (command "_.REGION" (ssget) "")
  (command "_.SELECT" (ssget "X") "R" SS "")
  (command "_.UNION" "P" "")
  (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

 楼主| 发表于 2004-12-6 17:07:34 | 显示全部楼层
谢谢各位,问题解决了。我依葫芦画瓢自己组合了一下。还有一个问题:每次转换后程序总会将 t3 设为当前图层,请问该如何设置才能保持原来的当前图层不变?
[PHP]
(defun C:trr (/ SS)
  (mkla "t3" 3)
  (setq SS (ssget "X"))
  (command "_.REGION" (ssget) "")
  (command "_.SELECT" (ssget "X") "R" SS "")
  (command "_.UNION" "P" "")
  (command "explode" "l" )
  (vl-cmdf "_.pedit" "m" "p" "" "y" "j" "0.1" "")
  (princ)
)
(Defun MKLA (a b)
  (If (= (Tblsearch "layer" a) nil)
    (Command "layer" "m" a "c" b a "")
    (Command "layer" "t" a "s" a "c" b a "")
  )
(princ)
) [/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-12-6 18:40:26 | 显示全部楼层

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 17:25 , Processed in 0.213541 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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