找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 583|回复: 7

[编程申请]:申请一个减切命令

[复制链接]
发表于 2004-12-29 18:37:10 | 显示全部楼层 |阅读模式

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

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

×
我想要一个LSP命令。跟减切有关。一般的减切命令。选择减切物体以后,可以按F命令选择减切的一条直线,这条直线内的所有线段都可以减掉。但是只限于直线,用起来很受限制。能不能把直线选择变成框选。我想这样要灵活得多。不知道这样的命令以前有没有出现过,至少我没有找到过。如果有过,请大家帮忙在这里发给我,我实在是没找到,先谢谢了。如果没有,这个命令值得编辑啊.如图,把虚线直线改成框选。如果可以。更好的办法是不用选择物体,直接框选,就可以把框选内的所有线段全部自动减切。这样更好。呵呵
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-12-29 22:55:29 | 显示全部楼层
如果要又快又准,推荐你用CADMAP,以前我自己编过裁减程序,都不太好用,用别人写的也切的不完全,不是切多了就是压根没切!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-12-30 09:40:11 | 显示全部楼层
你这样形容很难让我想象得出来,如果可以,不管好不好用,我只是提供一种想法,与之类似的程序也传上来一个让我用一下吧,谢谢了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-12-30 22:56:39 | 显示全部楼层
试试:
[php]
;;;用于在某范围内对平面图进行修剪,分割平面图或删除平面图上的某一部分。
(defun c:cut (/ p1 p2 p3 p4 dst ang p1a p2a p3a p4a lst)
  (graphscr)
  (cmdla0)
  (setq        p1 (getpoint "\n选择矩形框的第一角:")
        p2 (getcorner p1 "\n选择矩形框的另一角:")
  )
  (setvar "osmode" 0)
  (command "undo" "be")
  (command "rectang" p1 p2)
  (setq lst (entlast))
  (setq        txt5 (ukword 1 "1 2" "\n请选择清除范围:1-外部/2-内部" txt5)
        p3   (list (car p2) (cadr p1))
        p4   (list (car p1) (cadr p2))
        dst  (/ (distance p1 p2) 100.0)
        ang  (angle p1 p2)
  )
  (if (= txt5 "1")
    (setq p1a (polar p1 ang (- 0 dst))
          p2a (polar p2 ang dst)
    )
    (setq p1a (polar p1 ang dst)
          p2a (polar p2 ang (- 0 dst))
    )
  )
  (setq        p3a (list (car p2a) (cadr p1a))
        p4a (list (car p1a) (cadr p2a))
  )
  (command "_.trim" lst "" "f" p1a p3a p2a p4a p1a "" "")
  (if (= txt5 "1")
    (command "_erase" "all" "_r" "_c" p1 p2 "")
    (command "_erase" "_w" p1 p2 "")
  )
  (command "undo" "e")
  (cmdla1)
)
(defun CMDLA0 ()
  (setq cmd (getvar "CMDECHO"))
  (setq oom (getvar "orthomode"))
  (setq osm (getvar "osmode"))
  (setq hlt (getvar "highlight"))
  (setq rmode (getvar "regenmode"))
  (setvar "regenmode" 0)
  (setvar "CMDECHO" 0)
  (princ)
)
(defun CMDLA1 ()
  (setvar "CMDECHO" cmd)
  (setvar "orthomode" oom)
  (setvar "osmode" osm)
  (setvar "highlight" hlt)
  (setvar "regenmode" rmode)
  (princ)
)
(defun ukword (bit kwd msg def / inp)
  (if (and def (/= def ""))
    (setq msg (strcat "\n" msg "<" def ">:")
          bit (* 2 (fix (/ bit 2)))
    )
    (setq msg (strcat "\n" msg ":"))
  )
  (initget bit kwd)
  (setq inp (getkword msg))
  (if inp
    inp
    def
  )
)
;;;END
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-12-31 11:00:17 | 显示全部楼层
谢谢xyp1964  ,我需要的就是这个命令,但是希望你能够在完善一下,我不会再加工,所以只能提提意见。麻烦你修改一下。首先要修改的就是不要选择内部或者外部的这个过程,应该默认内部就可以了。原因是如果图纸复杂的话,这个外部太难定义了,而且基本上所有的操作都是针对内部的,多一个选择步骤我觉得有点罗嗦。第二个要修改的是在定义出矩形的两个点,减切完成之后,应该自动创建这个矩形线框,这样在删除的时候不至于把范围线都删除,往往范围线都是有用的,这样对画景观图很有帮助(我试了一下命令,我用捕捉选择一个矩形,结果连这个矩形也被删除了)。第三个要修改的是在最开始加一个选项过程,可以默认为矩形(因为矩形最常用),但是应该加一个矩形和园的选者过程,因为围着园减切线段的情况时有发生。暂时只能想到这么多,但是不知道怎么修改,就只能在麻烦一下xyp1964兄啦,其他人看到也帮忙告知xyp1964兄弟一声。在下谢谢了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-31 11:23:14 | 显示全部楼层
一、二项已修改,三项偶不会,呵呵……
[php]
;;;修剪和删除平面图矩形框内的物体。
(defun c:cut1 (/ p1 p2 p3 p4 dst ang p1a p2a p3a p4a lst)
  (cmdla0)
  (setq        p1 (getpoint "\n选择矩形框的第一角:")
        p2 (getcorner p1 "\n选择矩形框的另一角:")
  )
  (setvar "osmode" 0)
  (command "undo" "be")
  (command "rectang" p1 p2)
  (setq lst (entlast))
  (setq        p3  (list (car p2) (cadr p1))
        p4  (list (car p1) (cadr p2))
        dst (/ (distance p1 p2) 100.0)
        ang (angle p1 p2)
        p1a (polar p1 ang dst)
        p2a (polar p2 ang (- 0 dst))
        p3a (list (car p2a) (cadr p1a))
        p4a (list (car p1a) (cadr p2a))
  )
  (command "_.trim" lst "" "f" p1a p3a p2a p4a p1a "" "")
  (if (= txt5 "1")
    (command "_erase" "all" "_r" "_c" p1 p2 "")
    (command "_erase" "_w" p1 p2 "")
  )
  (command "rectang" p1 p2)
  (command "undo" "e")
  (cmdla1)
)
(defun CMDLA0 ()
  (setq cmd (getvar "CMDECHO"))
  (setq oom (getvar "orthomode"))
  (setq osm (getvar "osmode"))
  (setq hlt (getvar "highlight"))
  (setq rmode (getvar "regenmode"))
  (setvar "regenmode" 0)
  (setvar "CMDECHO" 0)
  (princ)
)
(defun CMDLA1 ()
  (setvar "CMDECHO" cmd)
  (setvar "orthomode" oom)
  (setvar "osmode" osm)
  (setvar "highlight" hlt)
  (setvar "regenmode" rmode)
  (princ)
)
;;;END
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 19:19 , Processed in 0.198256 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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