找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1015|回复: 13

[求助] [求助]:框选延长的程序

[复制链接]
发表于 2007-10-6 11:22:31 | 显示全部楼层 |阅读模式

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

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

×
既然能做一个框选剪切,可否做一个框选延长的程序,以框选的第二点的x坐标或y坐标为准作为延长边界,有些延长本来就不需要很准确的,还要画一条线作为延长边界,然后还要删除,很麻烦。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 9810个

财富等级: 富甲天下

发表于 2007-10-7 02:00:38 | 显示全部楼层
[php]
;晓东 zxq0220 框选延长 2007.10.7
(DEFUN C:TT ()
(SETVAR "CMDECHO" 0)
(SETQ OLDOS (GETVAR "OSMODE"))
(IF (AND (SETQ P1 (GETPOINT "\nNear Line Point 近线一点 :"))
          (SETQ P2 (GETCORNER P1 "\nNext Point  下一点 :"))) (PROGN
  (SETVAR "OSMODE" 0)
  (COMMAND "LENGTHEN" "DY" P1 P2 "")
  (SETVAR "OSMODE" OLDOS)
))
(SETVAR "CMDECHO" 1)
(PRINC)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-10-7 12:23:42 | 显示全部楼层
(defun C:DDED()  (command "_lengthen" "dy"))
这样行不?不过只能单选一根线,该不会几根线一起延长吧!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2007-10-8 22:53:36 | 显示全部楼层
程序非常好,可是有局限性,二个程序都只能每次延长一根,而且先选定直线的端点,否则无法延长,可否改为先框选一下,构成一个虚拟的边界,然后选择要延长的线,将选择的线延长到以框选的虚拟边界的结束点的X坐标或Y坐标为准的虚拟边界线上.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-10-9 13:35:52 | 显示全部楼层
[php]
;;;功能:矩形边界内对象的延伸
(vl-load-com)
(defun C:TT (/ PT1 PT2 SS I EN PT)
    (setvar "CMDECHO" 0)
    (if        (and (setq PT1 (getpoint "\n指定第一个角点: "))
             (setq PT2 (getcorner PT1 ">>对角点: "))
             (setq SS (ssget "w" PT1 PT2))
        )
        (progn
            ;;
            (command "_.rectang" "non" PT1 "non" PT2)
            ;;
            (command "_.EXTEND" (entlast) "")
            (setq I 0)
            (repeat (sslength SS)
                (setq EN (ssname SS I))
                (if (setq PT (vlax-curve-getstartpoint EN))
                    (command (list EN PT))
                )
                (if (setq PT (vlax-curve-getendpoint EN))
                    (command (list EN PT))
                )
                (setq I (1+ I))
            )
            (command "")
        )
    )
    (setvar "CMDECHO" 1)
    (princ)
) ;_结束 defun
[/php]
http://www.acad.net.cn/viewthrea ... &extra=page%3D1
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 9810个

财富等级: 富甲天下

发表于 2007-10-9 15:18:48 | 显示全部楼层
这样试试
[php]
;晓东 zxq0220 框选延长 2007.10.9
(DEFUN C:TT ()
(SETVAR "CMDECHO" 0)
(SETQ OLDOS (GETVAR "OSMODE"))
(IF (AND (SETQ P1 (GETPOINT "\nFirst Point 第一点 :"))
          (SETQ P2 (GETCORNER P1 "\nNext Point  下一点 :"))
                  (SETQ SS (SSGET "c" P1 P2))) (PROGN
  (SETVAR "OSMODE" 0)
  (COMMAND "_.RECTANG" P1 P2)
  (SETQ S1 (ENTLAST))
  (COMMAND "_.EXTEND" S1 "")
  (REDRAW S1 3)
  (IF (> (CAR P1) (CAR P2))
   (SETQ XMIN (CAR P2) XMAX (CAR P1))
   (SETQ XMIN (CAR P1) XMAX (CAR P2))
  )
  (IF (> (CADR P1) (CADR P2))
   (SETQ YMIN (CADR P2) YMAX (CADR P1))
   (SETQ YMIN (CADR P1) YMAX (CADR P2))
  )
  (SETQ I -1)
  (REPEAT (SSLENGTH SS)
   (SETQ EN (SSNAME SS (SETQ I (1+ I)))
         PT1 (CDR (ASSOC 10 (ENTGET EN)))
                 PT2 (CDR (ASSOC 11 (ENTGET EN))))
   (IF (< XMIN (CAR PT1) XMAX) (COMMAND (LIST EN PT1))
    (IF (< XMIN (CAR PT2) XMAX) (COMMAND (LIST EN PT2))
     (IF (< YMIN (CADR PT1) YMAX) (COMMAND (LIST EN PT1))
      (IF (< YMIN (CADR PT2) YMAX) (COMMAND (LIST EN PT2)))
         )
    )
   )
  )
  (COMMAND "")
  (COMMAND "ERASE" S1 "")
  (SETVAR "OSMODE" OLDOS)
))
(SETVAR "CMDECHO" 1)
(PRINC)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-10 23:26:29 | 显示全部楼层
程序还需要改进,都只能框选着实体才可延长,这样的话在整幅图面上,大量的实体的情况下,要延长其中的极小部分,根本无法选择,所以没法用.需要做成先框选一个虚拟边界,然后点选或框选需要延长的实体,这样才有用.此程序的目的只是避免延长时去先画并不严格要求的边界,然后延长.再删除边界线,省点功夫,如此程序则一点功夫也没有省.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-10-11 08:36:29 | 显示全部楼层
[php]
;;;以横竖相交的xline为边界
(defun C:TT3 (/ PT1 S0 S1 S2)
    (setvar "CMDECHO" 0)
    (if        (setq PT1 (getpoint "\n指定点位: "))
        (progn
            ;;
            (command "_.xline" "h" "non" PT1 "")
            (setq S0 (entlast))
            (command "_.xline" "v" "non" PT1 "")
            (setq S1 (entlast))
            ;;
            (command "_.EXTEND" S0 S1 "")
            (while (setq S2 (entsel "\n点取对象: "))
                (command S2)
            )
            (command "")
            (command "_erase" S0 S1 "")
        )
    )
    (setvar "CMDECHO" 1)
    (princ)
) ;_结束 defun
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-10-11 09:01:52 | 显示全部楼层
[php]
;;;以横竖相交的xline为边界
(defun C:TT3 (/ PT1 S0 S1 S2)
    (setvar "CMDECHO" 0)
    (if        (setq PT1 (getpoint "\n指定点位: "))
        (progn
            ;;
            (command "_.xline" "h" "non" PT1 "")
            (setq S0 (entlast))
            (command "_.xline" "v" "non" PT1 "")
            (setq S1 (entlast))
            ;;
            (command "_.EXTEND" S0 S1 "")
            (while (setq S2 (entsel "\n点取对象: "))
                (command S2)
            )
            (command "")
            (command "_erase" S0 S1 "")
        )
    )
    (setvar "CMDECHO" 1)
    (princ)
) ;_结束 defun
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-11 21:03:31 | 显示全部楼层
我所提到的问题任未得到解决,一是对实体的选择不方便,第二是选点后中途退出时的边界会保留,希望解决这二个问题。




提了好几些天了,很好的程序,每次都只是搞到一半就不管了,不管求助人的需要,弄的不知道用好还是不用好,还是要对程序负责到底才是好程序呀。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 137个

财富等级: 日进斗金

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 22:31 , Processed in 0.440866 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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