chulse 发表于 2022-7-6 12:58:20

是否保存用户变量?

是否可以将字符串var保存在dwg中,该dwg可以使用diesel调用?
我现在使用USERS1,但每次打开dwg时都需要重新定义它。。。
 
谢谢

Lee Mac 发表于 2022-7-6 13:02:03

这可能会有所帮助:
 
http://www.cadtutor.net/forum/showthread.php?t=38502
 

chulse 发表于 2022-7-6 13:05:25

谢谢李,
在关闭/重新打开后,是否可以使用电抗器在dwg中保存字符串var?
vl传播在关闭/重新打开后不会工作,是吗?

Lee Mac 发表于 2022-7-6 13:08:51

vl propagate会将一个变量传输到所有打开的图形(所有名称空间),因此,如果始终打开图形,这将起作用。
 
reactor(persistent)能够在打开图形时设置变量,因此变量将被“存储”。
 
可以使用对象的扩展数据在图形中实际存储变量。
 

chulse 发表于 2022-7-6 13:13:30

我可以麻烦你举一个这些方法的例子吗?
 
我没有反应堆方面的经验,也不知道用柴油机exp如何称呼扩展数据。
 
谢谢

Lee Mac 发表于 2022-7-6 13:14:15

可以使用以下代码在对象中设置扩展数据:
 

(defun putxdat (Obj App Data / ent type1 valeur)

(setq xtype
   (vlax-make-variant
   (vlax-safearray-fill
       (vlax-make-safearray
         vlax-vbInteger '(0 . 1)) '(1001 1000))))

(setq xval
   (vlax-make-variant
   (vlax-safearray-fill
       (vlax-make-safearray
         vlax-vbVariant '(0 . 1)) (list App Data))))

(vla-setXData Obj xtype xval))

 
您需要向上面提供一个VLA对象、有效的应用程序字符串和数据。
 
至于反应堆,我将为你们提供一个例子

Lee Mac 发表于 2022-7-6 13:18:56

如果您使用的是反应堆,请调查vlr dwg反应堆,以及以下任一回调:
 
:vlr beginDwgOpen
:vlr EndDwgOpen
:vlr DWG文件已打开
 

chulse 发表于 2022-7-6 13:22:05

是否可以将其嵌入特定的dwg中,以便在每次打开时设置USERS1 var?

Lee Mac 发表于 2022-7-6 13:24:07

我从未亲自做过,但在理论上,是的,你可以在一个图形中创建一个持久的反应器来设置USERS1变量。

Se7en 发表于 2022-7-6 13:29:13

小心。我曾经有过一两次玩持久反应堆的想法,当时我并不那么热衷于在生产图纸上使用它。
 
顺便说一句,“acad.lsp”有什么问题吗(这不是愚蠢的东西的名字,但我今天太懒了,根本懒得去关心甚至查它)?
页: [1] 2
查看完整版本: 是否保存用户变量?