 - (defun newer2(s)
- (progn
- (setq *error* older2)
- (if oldlayer (setvar "clayer" oldlayer))
- (if olddimstyle (command "dimstyle" "r" olddimstyle))
- )
- (princ)
- )
- (defun C:FB( / yss2 dimname2 )
- (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" "" "")
- )
- )
-
- (if
- (and (princ "\n选择标注样式 :") (setq yss2 (ssget ":S" '((0 . "DIMENSION")))));选择标注样式
- (progn
- (setq dimname2 (cdr(assoc 3 (entget(ssname yss2 0)))));提取目标标注样式名称
- (command "layer" "s" "辅助层" "");将辅助层置为当前,再标注
- (command "dimstyle" "r" dimname2 );将目标标注样式置为当前
- (command "dimaligned"); getpoint );开始标注,估计问题发生在这个getpoint上
- ;(while (= (logand (getvar "CmdActive") 1) 1) (command pause))
- (while (> (getvar "CMDACTIVE") 0) (command PAUSE))
- (while T
- (command "dimaligned");
- (while (> (getvar "CMDACTIVE") 0) (command PAUSE))
- )
- )
- )
- (command "_.UNDO" "_END")
- (command "dimstyle" "r" olddimstyle )
- (setvar "clayer" oldlayer);_还原图层
- (setq *error* older2)
- (setvar "cmdecho" 1);_打开命令提示
- (princ)
- )
-
|