本帖最后由 kucha007 于 2022-11-22 17:49 编辑
这是我自用的,用来复位参数。
01-若输入命令时选择了对象,就复位对象颜色线宽随层(线型不动)
01-若输入命令时未选择对象,就复位参数(0图层+当前随层+状态栏+字体样式+各种乱七八糟的东西)- (defun c:FW (/ Old_Cmd)
- (vl-load-com)
- (setq Old_Cmd (getvar "cmdecho"))
- (setvar "cmdecho" 0)
- (defun K:gxl-CatchApply (fun args / result)
- (if (not
- (vl-catch-all-error-p
- (setq result (vl-catch-all-apply (if (= 'SYM (type fun)) fun (function fun))args))
- )
- )
- result
- )
- )
- (defun K:NewStyle (SNam Flag FNam BFNam Width / TS)
- (vl-load-com)
- (Setq TS (vla-get-TextStyles (vla-get-activedocument (vlax-get-acad-object))))
- (if (= Flag T) ;T == TTF, nil == SHX
- (progn ;TTF
- (K:gxl-CatchApply 'vla-setfont (list (vla-add TS SNam) FNam "false" "false" 1 0))
- (K:gxl-CatchApply 'vla-put-width (list (vla-add TS SNam) Width));设置宽度
- )
- (progn ;SHX
- (K:gxl-CatchApply 'vla-put-fontfile (list (vla-add TS SNam) FNam))
- (K:gxl-CatchApply 'vla-put-bigfontfile (list (vla-add TS SNam) BFNam))
- (K:gxl-CatchApply 'vla-put-width (list (vla-add TS SNam) Width));设置宽度
- )
- )
- (princ)
- )
- (if (= (last (ssgetfirst)) nil)
- (progn
- (command "Clayer" 0)
- (setvar "PICKSTYLE" 1);恢复编组选择
- ;DSETTINGS_状态栏复位
- (command "FILETAB");显示顶部的文件选项卡
- (command "WIPEOUT" "F" "OFF");关闭显示区域覆盖的边框
- (setvar "ConstraintInfer" 0);关闭推断约束
- ;--
- (setvar "SnapMode" 0);关闭格栅捕捉
- (setvar "GridMode" 0);关闭格栅显示
- (setvar "OrthoMode" 0);关闭正交捕捉
- (setvar "AutoSnap" 8);开启极轴追踪
- (setvar "POLARANG" (/ pi 4));设置极轴追踪增量角为45°
- (setvar "OSMode" 703);开启二维对象捕捉,并设置对象捕捉类型
- (setvar "3DOSMode" 11);关闭三维对象捕捉
- (setvar "AutoSnap" 63);开启对象捕捉追踪
- (setvar "UCSDETECT" 0);禁止动态UCS
- (setvar "DynMode" 1);开启动态输入
- (setvar "LWDisplay" 0);不显示线宽
- (setvar "LWDEFAULT" 9);设置默认线宽为0.09mm
- (setvar "TRANSPARENCYDISPLAY" 1);开启透明度显示
- (setvar "QPMODE" 0);关闭快捷特性
- (setvar "SELECTIONCYCLING" 0);关闭选择循环
- (setvar "ANNOMONITOR" 0);关闭注释监视器
-
- (while (> (getvar "CMDACTIVE") 0) (command PAUSE));等待前面的命令完成
- ;重置随层特性:颜色、线性、线宽、使用UCS标高
- (setvar "cmdecho" 0)
- (command "Cecolor" "bylayer");颜色随层
- (command "CELTYPE" "bylayer");线型随层
- (command "CELWEIGHT" -1);线宽随层
- (setvar "OSNAPZ" 1);使用当前UCS标高替换Z值
- ;Units_单位精度
- (SetVar "LUNITS" 2);设置线性单位。1 科学 2 小数 3 工程 4 建筑 5 分数
- (SetVar "LUPREC" 1);设置所有只读线性单位和可编辑线性单位(其精度小于或等于当前 luprec 的值)的小数位位数。
- (SetVar "AUNITS" 0);设置角度单位:0.十进制度数 1.度/分/秒 2.百分度 3.弧度 4.勘测单位
- (SetVar "AUPREC" 1);设置所有只读角度单位(显示在状态行上)和可编辑角度单位(其精度小于或等于当前 auprec 的值)的小数位数。
- ;LINETYPE_线型相关
- (setvar "PSLTSCALE" 0);缩放时不使用视口比例
- (setvar "LTSCALE" 10);设置全局缩放比例
- (setvar "CELTSCALE" 1);设置当前对象比例为1
- ;字体样式
- (K:NewStyle "_TCH_DIM" nil "hztxt_e" "hztxt" 0.8);SHX:使用大字体
- (setvar "TextStyle" "_TCH_DIM");将_TCH_DIM设置为当前字体样式
- )
- (progn
- (command "chprop" (ssget) ""
- "color" "bylayer"
- ;"ltype" "bylayer"
- "lweight" "bylayer" ""
- );将所选对象移动到指定图层,并设置为随层
- (while (> (getvar "CMDACTIVE") 0) (command PAUSE));等待前面的命令完成
- )
- )
- (setvar "cmdecho" Old_Cmd)(princ)
- )
|