pixel8er 发表于 2022-7-5 19:46:12

确定绘图单位和sc

大家好
 
我想知道如何添加一些代码来确定公制图形的单位是米还是毫米,然后添加适当的比例值。
 
下面是我的代码片段,目前适用于毫米级绘图。。。
 
(setvar "dimscale" (/ 1.0 (getvar "CANNOSCALEVALUE")))
 
...对于米图纸,这是代码。。。
 
(setvar "dimscale" (/ 0.001 (getvar "CANNOSCALEVALUE")))
 
所以我想的是,新代码可以用IF语句确定单位,甚至是单位,并在此基础上应用正确的代码。
 
这可行吗?有人得到任何提示吗?
 
谢谢
保罗

Dadgad 发表于 2022-7-5 19:54:48

我是不熟练的,所以无法帮助您使用lisp解决方案,但我使用了一个模式宏来检查我正在工作的任何图形的测量值,表面上是为了提醒我任何问题。

pixel8er 发表于 2022-7-5 20:03:04

谢谢爸爸。测量也可以很好地工作。我希望有人能有一段实现它的代码来进行检查,然后根据返回的值返回我的两段代码中的任何一段

pixel8er 发表于 2022-7-5 20:08:24

因此,我希望实现的是:
 
如果insunits=4,则应用此
(setvar "dimscale" (/ 1.0 (getvar "CANNOSCALEVALUE")))
 
如果insunits=6,则应用此
(setvar "dimscale" (/ 0.001 (getvar "CANNOSCALEVALUE")))
 
如果insunits=任何其他值,则返回消息“您的绘图单位需要设置为米或毫米”
 
但我不确定实现这一点的正确代码语法。

SLW210 发表于 2022-7-5 20:11:07

CANNOSCALE和CANNOSCALEVALUE不只是处理注释比例吗?它们可以设置为不同于在其中绘制的图形,如果图形中没有注释对象,则无关紧要。
 
难道测量不只是决定使用英制或公制填充图案和线型等吗。?
 
INSUNITS指定用于自动缩放插入或附着到图形的块、图像或外部参照的图形单位值,并且与实际绘制的图形无关,在英制图形中可以将其设置为无单位或甚至毫米。更不用说注释性块会忽略该值。
 
我不知道有一个sysvar可以确定一个图形是米还是毫米,除了-DWGUNITS。
 
至于编码,可能很快就会有人来提供一些建议,但我只是想让你知道,在单位中,CANNOSCLEVALUE并不是一个确定绘图单位的好方法。

pixel8er 发表于 2022-7-5 20:19:53

 
在我们的办公室,我们有2个图形模板(dwt):
 
1.对于平面图-其中单位=米
2.详情-单位=毫米
 
因此,INSUNITS设置为6(在平面图中)或4(在详图中)。我想使用这个INSUNITS sysvar来:
 
-确定图形单位是米还是毫米
 
有了这些信息,我可以应用1或0.001的比例因子
 
我使用CANNOSCALE作为一个简单的视觉触发器,让用户选择他们想要的绘图比例,例如1:100、1:200等等
 

GISdude 发表于 2022-7-5 20:25:55

达德加德,
不是为了给这个线程打招呼,但是你如何使用MODEMACRO呢?我刚刚开始使用这个命令。
 
谢谢,

BIGAL 发表于 2022-7-5 20:31:25

只有几个变量
 

(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"))
)

Lee Mac 发表于 2022-7-5 20:35:45

 
将MODEMACRO系统变量设置为:
$(if,$(getvar,measurement),Metric,Imperial)

Dadgad 发表于 2022-7-5 20:42:30

 
我通常在mms中工作,但偶尔会收到在Imperial模板上完成的3D模型,这让我很烦。
我使用屏幕截图中显示的模式宏,让我了解这种场景,只是为了唤醒我,如果一切都如我所愿,那么在左下角它只会说>>酷。
页: [1] 2
查看完整版本: 确定绘图单位和sc