1、TT的目的是想提取目标标注样式后在“辅助层”图层中针对性的标注,程序结束后返回程序开始前的标注样式和图层,估计问题是发生在getpoint上,这个地方该怎么修改才能达到目的呢;
2、想用while连续去标注,知道程序退出,该怎么加呢?
谢谢大家!
 - (defun newer2(s)
- (progn
- (setq *error* older2)
- (if oldlayer (setvar "clayer" oldlayer))
- (if olddimstyle (setvar "dimstyle" olddimstyle))
- )
- (princ)
- )
- (defun C:TT( / )
- (progn
- (setq older2 *error*) ;保存原有*error*函数
- (setvar "CMDECHO" 0)
- (command "_.UNDO" "_BEGIN")
- (setq oldlayer (getvar "clayer"));_记录当前图层
- (setq olddimstyle (getvar "dimstyle"));_记录当前标注样式
- (setq *error* newer2)
- (if (not (tblsearch "layer" "辅助层")) ;;判断是否存在辅助层,无则创建
- (command "layer" "m" "辅助层" "c" "8" "" "l" "continuous" "" "")
- )
- )
-
- (progn
- (and (princ "\n选择标注样式 :") (setq yss2 (ssget ":S" '((0 . "DIMENSION")))));选择标注样式
- (setq dimname2 (cdr(assoc 3 (entget(ssname yss2 0)))));提取目标标注样式名称
- (command "layer" "s" "辅助层" "");将辅助层置为当前,再标注
- (command "dimstyle" "r" dimname2 );将目标标注样式置为当前
- (command "dimaligned" getpoint );开始标注,估计问题发生在这个getpoint上
- )
- (command "_.UNDO" "_END")
- (setvar "dimstyle" olddimstyle);_还原标注样式样式
- (setvar "clayer" oldlayer);_还原图层
- (setq *error* older2)
- (setvar "cmdecho" 1);_打开命令提示
- (princ)
- )
|