求一个按所选择的图元执行不同命令的例子
选中多段线框按命令出来 QDIM选择圆弧按命令出来圆弧标注
选圆按命令出来半径标注
可以多选 最好可以先输命令后选实体 ;选中多段线框按命令出来 QDIM
;选择圆弧按命令出来圆弧标注
;选圆按命令出来半径标注
;可以多选 最好可以先输命令后选实体
;按实体调用命令 明经 ZZXXQQ 2014.7.28
(defun c:tt ()
(setvar "CMDECHO" 0)
(if (setq ss (ssget '((0 . "ARC,CIRCLE,*POLYLINE")))) (progn
(repeat (setq i (sslength ss))
(setq ent (entget(ssname ss (setq i (1- i)))))
(setq enm (cdr(assoc 0 ent)))
(cond
((= enm "ARC")
(setq pc (cdr(assoc 10 ent)))
(setq r (cdr(assoc 40 ent)))
(setq p1 (polar pc (cdr(assoc 50 ent)) r))
(setq pm (osnap p1 "MID"))
(command "_DIMRADIUS" (list en pm) (polar pm (angle pc pm) r))
)
((= enm "CIRCLE")
(setq pc (cdr(assoc 10 ent)))
(setq r (cdr(assoc 40 ent)))
(setq p1 (polar pc (/ pi 4) r))
(command "_.DIMDIAMETER" (list en p1) (polar p1 (/ pi 4) r))
)
((wcmatch enm "*POLYLINE")
(command "QDIM")
(while (> (getvar "CMDACTIVE") 0) (command PAUSE))
)
)
)
))
(princ)
) ZZXXQQ 发表于 2014-7-28 21:33 static/image/common/back.gif
多段线标注要选两次才行 圆和圆弧 标注不起来
不好意思 好像是我题目出的问题因为标注的画要指定边才行
我改一下不知道可以吗
假设Z轴归零命令是命令AAA块内实体Z轴归零命令是BBB
当我选择除块以外的实体是 按命令出来是命令AAA
当我选择块时按命令出来是BBB
做这个程序因为装了个工具箱 工具箱的Z轴归零命令不能对块用 块内归零命令又不能对实体用想吧这两个命令合并起来
求大神再帮帮忙
(defun c:ccc ()
(if (setq ss (ssget)) (progn
(repeat (setq i (sslength ss))
(setq ent (entget(ssname ss (setq i (1- i)))))
(if (= (cdr(assoc ent)) "INSERT") (c:BBB) (c:AAA))
)
))
(princ)
) ZZXXQQ 发表于 2014-7-30 07:54 static/image/common/back.gif
还是不行运行到找到几个图元就停止了
页:
[1]