想做个快速命令选择对象的程序,请大虾们完善一下,谢谢!
缺少了一些判断、错误处理的方法,但又不知道怎么合理地添加,请大虾们帮我完善一下!我是新手以下是程序:
(defun c:ssg1(/ ent)
(setq ent (getstring "\n请输入选项 <B>:"))
(if (= ent "") (setq ent "B"))
(cond
((= (strcase ent) "B") (princ "\n选择:") (ssget '((8 . "边界线(BO)"))))
((= (strcase ent) "C") (princ "\n选择[颜色(C)]:") (ssget (list '(-4 . "<OR") (cons 62 (getINT "\n颜色号<0-256>:")) '(-4 . "OR>"))))
((= (strcase ent) "D") (princ "\n选择[标注(D)]:") (ssget '((0 . "DIMENSION"))))
((= (strcase ent) "H") (princ "\n选择[填充(H)]:") (ssget '((0 . "HATCH"))))
((= (strcase ent) "T") (princ "\n选择[文本(T)]:") (ssget '((0 . "*TEXT"))))
(t (princ "\n输入有误,操作退出!") (exit))
)
(setq moco (getstring "\n[移动(A)/复制(C)] <A>:"))
(if (= moco "") (setq moco "A"))
(cond
((= (strcase moco) "A") (command "move" "p" ""))
((= (strcase moco) "C") (command "copy" "p" ""))
(t (princ "\n输入有误,操作退出!") (exit))
)
(princ)
)
;;;;2016.1.19琴剑江山编写
(defun c:ss (/ EN ENT GET SEL SS)
(vl-load-com)
(initget "D H T")
(setq ent (getkword "\n请输入选项 [标注(D)/填充(H)/文本(T)] 默认<颜色或图层>:"))
(cond
((= ent "D") (setq en '(0 . "DIMENSION") ss "\n过滤选择标注"))
((= ent "H") (setq en '(0 . "HATCH") ss "\n过滤选择填充"))
((= ent "T") (setq en '(0 . "*TEXT") ss "\n过滤选择文字"))
(t
(and (setq sel (entsel "\n选择参照对象 <退出>:"))
(setq en (vla-get-Color (vlax-ename->vla-object (car sel))))
(if (= en 256)
(setq en(cons 8 (vla-get-Layer (vlax-ename->vla-object (car sel))))
ss"\n过滤选择图层")
(setq en(cons 62 en)
ss"\n过滤选择颜色")
);if
);and
)
);cond
(and en
(princ ss)
(setq get (ssget (list en)))
(sssetfirst nil get)
)
(princ)
)
;;这个是帮你选中对象,夹头显示出来,然后你还要做其它的操作,比如删除,移动,复制等,直接用CAD命令就行了
琴剑江山_10184 发表于 2016-1-19 11:35 static/image/common/back.gif
;;这个是帮你选中对象,夹头显示出来,然后你还要做其它的操作,比如删除,移动,复制等,直接用CAD命令就 ...
谢谢分享,我研究研究下! 琴剑江山_10184 发表于 2016-1-19 11:35 static/image/common/back.gif
;;这个是帮你选中对象,夹头显示出来,然后你还要做其它的操作,比如删除,移动,复制等,直接用CAD命令就 ...
再请教一下
下面的简单程序怎么可以“夹头显示出来”
(defun C:t1 (/ ent)
(setq ent (ssget '((0 . "*TEXT"))))
)
uvyx 发表于 2016-1-19 16:02 static/image/common/back.gif
再请教一下
下面的简单程序怎么可以“夹头显示出来”
(defun C:t1 (/ ent)
(defun C:t1 (/ ent)
(sssetfirst nil (ssget '((0 . "*TEXT"))))
) 琴剑江山_10184 发表于 2016-1-19 17:26 static/image/common/back.gif
(defun C:t1 (/ ent)
(sssetfirst nil (ssget '((0 . "*TEXT"))))
)
谢谢!!!
页:
[1]