(已解决)怎么在新图层进行标注完成后返回当前图层
本帖最后由 YUYUFENG 于 2020-3-20 21:15 编辑目的是在新图层进行标注完成后返回当前图层的程序,可是无法在新的目标图层进行标注。请高手帮忙改进一下,多谢!!
(defun c:gg(/ old_lay vv layer)
(setq old_lay (getvar "clayer")) ;保存当前图层
(setq vv (getvar "osmode")) ;保存当前捕捉方式
(setq layer "1 标注")
(if (not (tblsearch "layer" layer ))
(progn
(command "layer" "new" "1 标注" "s" "1 标注" "C" 1 "" "L" "Continuous" "" "LW" 0"" "")
)
)
(COMMAND "clayer" layer) ;置当前图层
(setvar "osmode" 37) ;设置新的捕捉方式
(command "DIMLINEAR") ;线性标注
(setvar "osmode" vv) ;恢复原先捕捉方式
(setvar "clayer" old_lay) ;恢复原先图层
(princ)
) 可以换个思维,不动图层标好把标注改到目标层,或者用entmake 可以直接指定图层 試試改成這樣
(defun c:gg(/ old_lay vv layer)
(setq old_lay (getvar "clayer")) ;保存當前圖層
(setq vv (getvar "osmode")) ;保存當前捕捉方式
(setq layer1 "1 標注")
(if (not (tblsearch "layer" layer1))
(command "layer" "new" "1 標注" "s" "1 標注" "C" 1 "" "L" "Continuous" "" "LW" 0"" "")
)
(command "clayer" layer1) ;置當前圖層
(setvar "osmode" 37) ;設置新的捕捉方式
(command "DIMLINEAR") ;線性標注
(setvar "osmode" vv) ;恢復原先捕捉方式
(setvar "clayer" old_lay) ;恢復原先圖層
(princ)
) 本帖最后由 669423907 于 2020-3-20 20:02 编辑
(defun c:gg(/ old_lay vv layer)
(setq old_lay (getvar "clayer")) ;保存当前图层
(setq vv (getvar "osmode")) ;保存当前捕捉方式
(setq layer "1 标注")
(if (not (tblsearch "layer" layer ))
(progn
(command "layer" "new" "1 标注" "s" "1 标注" "C" 1 "" "L" "Continuous" "" "LW" 0"" "")
)
)
(COMMAND "clayer" layer) ;置当前图层
(setvar "osmode" 37) ;设置新的捕捉方式
(command "DIMLINEAR") ;线性标注
(while(=(getvar "cmdactive")1)(command"\\"))
(setvar "osmode" vv) ;恢复原先捕捉方式
(setvar "clayer" old_lay) ;恢复原先图层
(princ)
)
bssurvey 发表于 2020-3-20 15:54
試試改成這樣
(defun c:gg(/ old_lay vv layer) ...
这个还是无法在标注图层进行标注,不过谢谢了。 669423907 发表于 2020-3-20 20:00
完美达到我想要的要求了,谢谢大佬~~ 669423907 发表于 2020-3-20 20:00
好用,多谢分享 楼主这个问题已经有现成的方法,无需程序来做了。
现在Hatch,Dimension都提供了创建这些对象时,所在默认图层的系统变量:
HPLAYER ,DIMLAYER
即将发布的下一版本中,又新增了面向 Text 对象的 TEXTLAYER 系统变量。
至此,以往习惯使用的自动图层工具基本上可以不用了。
相当有帮助,学习了
页:
[1]