找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2415|回复: 12

[编程申请]:狂刀这个程序,能不能把trim和e结合起来

[复制链接]
发表于 2008-11-20 08:21:50 | 显示全部楼层 |阅读模式

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

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

×
(defun c:xx (/ cmde os ocs roop dis ss gr ga gb sel pt pt2 pts eg cmd)
  (princ "\n自由剪切---修改by狂刀.2005.3")
  (setq        cmde  (getvar "cmdecho")
        os   (getvar "osmode")
        roop T
        dis  (* 0.01 (getvar "viewsize"))
        cmd ".trim"
  )
  (setvar "cmdecho" 0)
  (setvar "osmode" 0)
  (setq ss (ssget "all"))
  (while roop
    (princ "\n shift+右键=选边界 / 右键=切换剪切延伸模式 / 左键=选实体 / 空格;回车=退出:")
    (setq gr (grread nil 4 2)
          ga (car gr)
          gb (cadr gr))
    (cond
      ((= ga 3)
       (princ "\n选剪切实体:")
       (cond
         ((setq sel (nentselp gb))(command cmd ss "" sel ""));;单选.
         (T (setq pts (getpts dis))
          (if (setq pts2(cdr pts))
            (progn (command cmd ss "")
              (mapcar '(lambda(x y)(command "f" x y "")) pts pts2)
              (command "")
            )
           )
          )
       )
      )
      ((member gr '((11 0)(2 32))) ;; "" or enter
        (setq roop nil))
      ((= 25 ga)(if (= cmd ".trim") ;;切换.
         (progn (princ "\n 模式: 延伸\n选实体:")(setq cmd ".extend"))
        (progn (princ "\n 模式: 剪切\n选实体:")(setq cmd ".trim"))
        )
      )
      ((member gr '((11 1000)))
       (princ "\n 重选边界< all > :")
       (or(setq ss (ssget))(setq ss  (ssget "all"))))
   )
  )
  (setvar "cmdecho" cmde)
  (setvar "osmode" os)
  (setq *error* oe)
  (princ)
)
(defun getpts (dis / gr pt pt0 pts)
   (setq ocs (getvar "CURSORSIZE"))
   (setvar "CURSORSIZE" 1)
   (while (= 5 (car (setq gr (grread t 4 0))))
     (setq pt (cadr gr))
     (if (not pt0)(setq pt0 pt pts (cons pt0 pts)))
     (if (> (distance pt pt0) dis)
       (progn
         (grdraw pt pt0 1 1)
         (setq pts (cons pt pts)
               pt0 pt)
       )
     )
   )
  (redraw)
  (setvar "CURSORSIZE" ocs)
  (reverse pts)
)
狂刀这个程序,用着很爽,能不能把trimt和e结合起来,不能trim就删除。感觉这样好多。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2008-11-23 14:39:57 | 显示全部楼层

Re: [编程申请]:狂刀这个程序,能不能把trim和e结合起来

最初由 zhaozwf 发布
[B](defun c:xx (/ cmde os ocs roop dis ss gr ga gb sel pt pt2 pts eg cmd)
  (princ "\n自由剪切---修改by狂刀.2005.3")
  (setq        cmde  (getvar "cmdecho")
        os   (getvar "osmode")
        roop T
        dis  (* 0.01... [/B]


  1.   [FONT=courier new]
  2. ;| xtr自由剪切---修改by狂刀.2005.3(081123)
  3. |;
  4. (defun c:xx (/ cmde os ocs roop dis ss gr ga gb sel pt pt2 pts eg cmd)
  5.   (princ "\n自由剪切---修改by狂刀.2005.3")
  6.   (setq        cmde (getvar "cmdecho")
  7.         os   (getvar "osmode")
  8.         roop T
  9.         dis  (* 0.01 (getvar "viewsize"))
  10.         cmd  ".trim"
  11.   )
  12.   (setvar "cmdecho" 0)
  13.   (setvar "osmode" 0)
  14.   (setq ss (ssget "all"))
  15.   (while roop
  16.     (princ
  17.       "\n shift+右键=选边界 / 右键=切换剪切延伸模式 / 左键=选实体 / 空格;回车=退出:"
  18.     )
  19.     (setq gr (grread nil 4 2)
  20.           ga (car gr)
  21.           gb (cadr gr)
  22.     )
  23.     (cond
  24.       ((= ga 3)
  25.        (princ "\n选剪切实体:")
  26.        (cond
  27.          ((setq sel (nentselp gb)) (command cmd ss "" sel ""))
  28.          ;;单选.
  29.          (T
  30.           (setq pts (getpts dis))
  31.           (if (setq pts2 (cdr pts))
  32.             (progn (command cmd ss "")
  33.                    (mapcar '(lambda (x y) (command "f" x y "")) pts pts2)
  34.                    (command "")
  35.                    (command ".erase" (ssget "cp" (cons (last pts) pts) nil) "")
  36.             )
  37.           )
  38.          )
  39.        )
  40.       )
  41.       ((member gr '((11 0) (2 32)))
  42.        ;; "" or enter
  43.        (setq roop nil)
  44.       )
  45.       ((or (= 25 ga)(= 11 ga))
  46.        (if (= cmd ".trim")
  47.          ;;切换.
  48.          (progn        (princ "\n 模式: 延伸\n选实体:")
  49.                 (setq cmd ".extend")
  50.          )
  51.          (progn (princ "\n 模式: 剪切\n选实体:") (setq cmd ".trim"))
  52.        )
  53.       )
  54.       ((member gr '((11 1000)))
  55.        (princ "\n 重选边界< all > :")
  56.        (or (setq ss (ssget)) (setq ss (ssget "all")))
  57.       )
  58.     )
  59.   )
  60.   (setvar "cmdecho" cmde)
  61.   (setvar "osmode" os)
  62.   (setq *error* oe)
  63.   (princ)
  64. )
  65. (defun getpts (dis / gr pt pt0 pts)
  66.   (setq ocs (getvar "CURSORSIZE"))
  67.   (setvar "CURSORSIZE" 1)
  68.   (while (= 5 (car (setq gr (grread t 4 0))))
  69.     (setq pt (cadr gr))
  70.     (if        (not pt0)
  71.       (setq pt0        pt
  72.             pts        (cons pt0 pts)
  73.       )
  74.     )
  75.     (if        (> (distance pt pt0) dis)
  76.       (progn
  77.         (grdraw pt pt0 1 1)
  78.         (setq pts (cons pt pts)
  79.               pt0 pt
  80.         )
  81.       )
  82.     )
  83.   )
  84.   (redraw)
  85.   (setvar "CURSORSIZE" ocs)
  86.   (reverse pts)
  87. )
  88. ;;狂刀这个程序,用着很爽,能不能把trimt和e结合起来,不能trim就删除。感觉这样好多。
  89.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-28 15:25:06 | 显示全部楼层
陌生人,你好,当选择剪切时会出现“选剪切实体,:未知命令“XX3”。按 F1 查看帮助。”
但不影响使用,如果能把这点瑕疵去掉就好了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2008-11-29 23:05:33 | 显示全部楼层

Re: Re: [编程申请]:狂刀这个程序,能不能把trim和e结合起来

最初由 陌生人 发布
[B][QUOTE]最初由 zhaozwf 发布
[B](defun c:xx (/ cmde os ocs roop dis ss gr ga gb sel pt pt2 pts eg cmd)
  (princ "\n自由剪切---修改by狂刀.2005.3")
  (setq        cmde  (getvar "cmdecho")
        os   (ge... [/B]



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

使用道具 举报

 楼主| 发表于 2008-11-30 15:53:57 | 显示全部楼层
另外还有一点,右键+shift选边界这个功能咋没,希望还是加上为好,呵呵
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-11-30 22:21:04 | 显示全部楼层

Re: Re: Re: [编程申请]:狂刀这个程序,能不能把trim和e结合起来

最初由 aeo 发布
[B][QUOTE]最初由 陌生人 发布
[B][QUOTE]最初由 zhaozwf 发布
[B](defun c:xx (/ cmde os ocs roop dis ss gr ga gb sel pt pt2 pts eg cmd)
  (princ "\n自由剪切---修改by狂刀.2005.3")
  (set... [/B]


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

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

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

使用道具 举报

 楼主| 发表于 2008-12-5 13:44:35 | 显示全部楼层
狂刀有空把上面的程序修改修改吧,把trim和e结合起来,呵呵,
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 55个

财富等级: 招财进宝

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

使用道具 举报

发表于 2008-12-12 18:18:19 | 显示全部楼层
试试看这个。右键延伸/剪切切换键,空格退出

  1.   [FONT=courier new]

  2. ;| xtr自由剪切---修改by狂刀.2005.3(081212)
  3. |;
  4. (defun c:xx (/ cmde os ocs roop dis ss gr ga gb sel pt pt2 pts eg cmd)
  5.   (princ "\n自由剪切---修改by狂刀.2005.3")
  6.   (setq        cmde (getvar "cmdecho")
  7.         os   (getvar "osmode")
  8.         roop T
  9.         dis  (* 0.01 (getvar "viewsize"))
  10.         cmd  ".trim"
  11.   )
  12.   (setvar "cmdecho" 0)
  13.   (setvar "osmode" 0)
  14.   (setq ss (ssget "all"))
  15.   (while roop
  16.     (princ
  17.       "\n shift+右键=选边界 / 右键=切换剪切延伸模式 / 左键=选实体 / 空格;回车=退出:"
  18.     )
  19.     (setq gr (grread nil 4 2)
  20.           ga (car gr)
  21.           gb (cadr gr)
  22.     )
  23.     (cond
  24.       ((= ga 3)
  25.        (princ "\n选剪切实体:")
  26.        (cond
  27.          ((setq sel (nentselp gb)) (command cmd ss "" sel ""))
  28.          ;;单选.
  29.          (T
  30.           (setq pts (getpts dis))
  31.           (if (setq pts2 (cdr pts))
  32.             (progn (command cmd ss "")
  33.                    (mapcar '(lambda (x y) (command "f" x y "")) pts pts2)
  34.                    (command "")
  35.               (if (= cmd ".trim")
  36.                    (command ".erase" (ssget "cp" (cons (last pts) pts) nil) "")
  37.                 )
  38.             )
  39.           )
  40.          )
  41.        )
  42.       )
  43.       ((member gr '((11 0) (2 32)))
  44.        ;; "" or enter
  45.        (setq roop nil)
  46.       )
  47.       ((or (= 25 ga)(= 11 ga))
  48.        (if (= cmd ".trim")
  49.          ;;切换.
  50.          (progn        (princ "\n 模式: 延伸\n选实体:")
  51.                 (setq cmd ".extend")
  52.          )
  53.          (progn (princ "\n 模式: 剪切\n选实体:") (setq cmd ".trim"))
  54.        )
  55.       )
  56.       ((member gr '((11 1000)))
  57.        (princ "\n 重选边界< all > :")
  58.        (or (setq ss (ssget)) (setq ss (ssget "all")))
  59.       )
  60.     )
  61.   )
  62.   (setvar "cmdecho" cmde)
  63.   (setvar "osmode" os)
  64.   (setq *error* oe)
  65.   (princ)
  66. )
  67. (defun getpts (dis / gr pt pt0 pts)
  68.   (setq ocs (getvar "CURSORSIZE"))
  69.   (setvar "CURSORSIZE" 1)
  70.   (while (= 5 (car (setq gr (grread t 4 0))))
  71.     (setq pt (cadr gr))
  72.     (if        (not pt0)
  73.       (setq pt0        pt
  74.             pts        (cons pt0 pts)
  75.       )
  76.     )
  77.     (if        (> (distance pt pt0) dis)
  78.       (progn
  79.         (grdraw pt pt0 1 1)
  80.         (setq pts (cons pt pts)
  81.               pt0 pt
  82.         )
  83.       )
  84.     )
  85.   )
  86.   (redraw)
  87.   (setvar "CURSORSIZE" ocs)
  88.   (reverse pts)
  89. )
  90. ;;支持trim,extend切换,支持trim模式下栏选范围内实体删除。2008.12.12


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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 06:57 , Processed in 0.829506 second(s), 55 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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