确定绘图单位和sc
大家好我想知道如何添加一些代码来确定公制图形的单位是米还是毫米,然后添加适当的比例值。
下面是我的代码片段,目前适用于毫米级绘图。。。
(setvar "dimscale" (/ 1.0 (getvar "CANNOSCALEVALUE")))
...对于米图纸,这是代码。。。
(setvar "dimscale" (/ 0.001 (getvar "CANNOSCALEVALUE")))
所以我想的是,新代码可以用IF语句确定单位,甚至是单位,并在此基础上应用正确的代码。
这可行吗?有人得到任何提示吗?
谢谢
保罗 我是不熟练的,所以无法帮助您使用lisp解决方案,但我使用了一个模式宏来检查我正在工作的任何图形的测量值,表面上是为了提醒我任何问题。 谢谢爸爸。测量也可以很好地工作。我希望有人能有一段实现它的代码来进行检查,然后根据返回的值返回我的两段代码中的任何一段 因此,我希望实现的是:
如果insunits=4,则应用此
(setvar "dimscale" (/ 1.0 (getvar "CANNOSCALEVALUE")))
如果insunits=6,则应用此
(setvar "dimscale" (/ 0.001 (getvar "CANNOSCALEVALUE")))
如果insunits=任何其他值,则返回消息“您的绘图单位需要设置为米或毫米”
但我不确定实现这一点的正确代码语法。 CANNOSCALE和CANNOSCALEVALUE不只是处理注释比例吗?它们可以设置为不同于在其中绘制的图形,如果图形中没有注释对象,则无关紧要。
难道测量不只是决定使用英制或公制填充图案和线型等吗。?
INSUNITS指定用于自动缩放插入或附着到图形的块、图像或外部参照的图形单位值,并且与实际绘制的图形无关,在英制图形中可以将其设置为无单位或甚至毫米。更不用说注释性块会忽略该值。
我不知道有一个sysvar可以确定一个图形是米还是毫米,除了-DWGUNITS。
至于编码,可能很快就会有人来提供一些建议,但我只是想让你知道,在单位中,CANNOSCLEVALUE并不是一个确定绘图单位的好方法。
在我们的办公室,我们有2个图形模板(dwt):
1.对于平面图-其中单位=米
2.详情-单位=毫米
因此,INSUNITS设置为6(在平面图中)或4(在详图中)。我想使用这个INSUNITS sysvar来:
-确定图形单位是米还是毫米
有了这些信息,我可以应用1或0.001的比例因子
我使用CANNOSCALE作为一个简单的视觉触发器,让用户选择他们想要的绘图比例,例如1:100、1:200等等
达德加德,
不是为了给这个线程打招呼,但是你如何使用MODEMACRO呢?我刚刚开始使用这个命令。
谢谢, 只有几个变量
(defun civ_units ()
(SETQ ANGBASEE (GETVAR "ANGBASE"))
(SETQ ANGDIRR (GETVAR "ANGDIR"))
(SETQ LUNITSS (GETVAR "LUNITS"))
(SETQ LUPRECC (GETVAR "LUPREC"))
(SETQ AUNITSS (GETVAR "AUNITS"))
(SETQ AUPRECC (GETVAR "AUPREC"))
)
将MODEMACRO系统变量设置为:
$(if,$(getvar,measurement),Metric,Imperial)
我通常在mms中工作,但偶尔会收到在Imperial模板上完成的3D模型,这让我很烦。
我使用屏幕截图中显示的模式宏,让我了解这种场景,只是为了唤醒我,如果一切都如我所愿,那么在左下角它只会说>>酷。
页:
[1]
2