- ;;; 局部放大视图标注式样批量定义程序.
- ;;;
- ;;; 程序设计者: LCAD, (USER2128, QQ:781400968,Email:Leedashan@163.com)
- ;;;
- ;;; 绘制过程中, 不可避免地要涉及到局部放大视图.
- ;;; 习惯只在“模型”空间绘图时,对局部放大视图进行尺寸标注时,
- ;;; 就要临时去修改系统变量"dimlfac"(如放大2倍时, dimlfac=0.5),
- ;;; 在标注完局部放大视图后, 还要改回: dimlfac=1, 工作不便.
- ;;;
- ;;; 本程序批量定义局部放大视图比例函数: 1 2 3 4 5 6 7 8 9 10 20倍,
- ;;; 调用命令为: 在提示符(command: )下:键入下列其中之一:
- ;;; X1、X2、X3、X4、X5、X6、X7、X8、X9、X10、X20
- ;;; 即可设置好、对应的、放大1、2、3、4、5、6、7、8、9、10、20倍的、
- ;;; 局部放大视图进行标注时所需标注式样.
- ;;; 标注完成局部放大视图中的尺寸后, 键入X1即返回1:1绘图的标注式样(基本式样).
- ;;;
- ;;; 程序中, 参数“D_style”为图中已存在的、1:1绘图时的标注式样名,
- ;;; 如参数“D_style”为“nil”, 则默认以当前的标注式样为基本式样.
- ;;;============================================================
- (defun chg_dimlfac (D_style / Lst i a b c)
- (setvar "CMDECHO" 0)
- (setq LST '(1 2 3 4 5 6 7 8 9 10 20))
- (foreach I LST
- (setq A (itoa I)
- B (list
- 'defun
- (read (strcat "C:X" A))
- (list '/ 'xx)
- (if (not D_style) (setq D_style (getvar "dimstyle")))
- (list 'if (list 'tblsearch "dimstyle" D_style)
- (list 'progn
- (list 'command "._dimstyle" "_restore" D_style)
- (list 'if (list '= i 1) 'nil
- (list 'progn
- (list 'setq 'xx (list 'strcat D_style "_X" A))
- (list 'setvar "dimlfac" (list '/ 1.0 i))
- (list 'command "._dim" "_save" 'xx)
- (list 'if (list 'tblsearch "dimstyle" 'xx)
- (list 'command "_yes" "_exit")
- (list 'command "_exit"))
- )))
- (list 'princ (list 'strcat "\n图中不存在标注式样""
- D_style
- "", 先建立该式样,然后再使用该项命令."))
- )
- (list 'princ)
- ))
- (eval B)
- ) ;_结束 foreach
- (princ)) ;_结束 defun
- ;;;(chg_dimlfac "INTE")
- (chg_dimlfac nil)
- ;;; 本例为:默认以当前的标注式样为基本式样.
- ;;; 你可以使用(chg_dimlfac "ISO-25")或(chg_dimlfac "STANDARD")
- ;;; 即以名称为"ISO-25"或"STANDARD"的标注式样为基本式样.
- ;;;============================================================
|