ocoipw 发表于 7 天前

根据纸质文本高度设置系统变量“DIMSCALE”的值

(defun c:dims ();;设置尺寸变量"dimscal"的值。
(prompt "程序设计:by heyong")
(setq txthight (getvar "dimtxt"));;取得系统变量"dimtxt"的值。
        (if RamScale
                (setq drawingscale (getstring (strcat "\n请输入绘图比例:" "<" RamScale ">")));;指打印出来的纸质图纸上"比例"栏应填的实际数值。
                (setq drawingscale (getstring (strcat "\n请输入绘图比例:" "<"">")))
        )       
(if (= drawingscale "")
        (setq RamScale RamScale)
        (setq RamScale drawingscale)
)
        (if RamHight
                (setq realtextHight (getstring (strcat "\n请输入图纸上的文字高度:" "<" RamHight ">")));;指打印出来的纸质图纸上的实际文字高度。
                (setq realtextHight (getstring (strcat "\n请输入图纸上的文字高度:" "<"">")))
        )
(if (= realtextHight "")
        (setq RamHight RamHight)
        (setq RamHight realtextHight)
)
        (if (or (= RamScale nil)(= RamHight nil))
                (progn
                        (princ "系统变\"dimscale\"设置未改变!")
                          (prin1)
                );;end progn
                (progn
                        (setq dim_scale (/ (* (atof RamHight) (atof RamScale)) txthight))
                  (setvar "dimscale" dim_scale)
                        (princ (strcat "\n系统变\"dimscale\"已设置为:"(rtos dim_scale) "\n绘图比例为:" "1:" RamScale))
                        (prin1)
                        (princ (strcat "\n屏幕显示尺寸文本高度为:" (rtos (* (atof RamHight) (atof RamScale))) "mm" "\n纸质图纸上尺寸文本高度为:" RamHight "mm"))
                        (prin1)
                );;end progn
        )
);;end dims


zxh92 发表于 6 天前

大佬,这个在什么状况用呀?

zxh92 发表于 6 天前

一般都是A1图框,

ocoipw 发表于 6 天前

zxh92 发表于 2025-12-6 10:30
一般都是A1图框,

当你在同一张图框里需要用不同高度的尺寸标注时就可使用本程序来调整系统变量“dimscale”的值。假如你的A1图设定比例为1:50,需要纸质图纸上的标注文字为4mm.运本程序后将自动将dimscale设置为80。若需要为3mm则自动将dimscale设置为60。当然前提条件你绘图时是按1:1绘制的。在插入图框时应将图框放大50倍。在打印时输入绘图比例为50便OK了。
页: [1]
查看完整版本: 根据纸质文本高度设置系统变量“DIMSCALE”的值