jura 发表于 2004-9-1 03:24:33

使用vba例程透明

我有这个小的vba例程来设置osnap值:

Sub SnapToggle(VarSnapType As Integer)
Dim VarOsmode As Integer
Dim VarAftrek As Integer
Dim VarOsmodeOrg As Integer
VarOsmode = ThisDrawing.GetVariable("osmode")
VarOsmodeOrg = ThisDrawing.GetVariable("osmode")
VarAftrek = 16384
While VarAftrek > VarSnapTyp
VarAftrek = VarAftrek / 2
If VarOsmode > VarAftrek Then VarOsmode = VarOsmode - VarAftrek
Wend
If VarOsmode = VarSnapType Then VarOsmodeOrg = VarOsmodeOrg - VarSnapType
If VarOsmodeVarSnapType
VarAftrek = VarAftrek / 2
If VarOsmode > VarAftrek Then VarOsmode = VarOsmode - VarAftrek
Wend
If VarOsmode = VarSnapType Then VarOsmodeOrg = VarOsmodeOrg - VarSnapType
If VarOsmode

daron 发表于 2004-9-1 08:43:31

在查看代码后,我意识到发生了一些事情。
VBA SnapToggle 将在 lisp 完成之前触发,所以让我们这样做.....
将 TOS 程序更改为:
[代码 5]
现在让我们将 BeginLisp 更改为 this:
[代码 6]
,并将 SnapToggle 更改为 this:

Sub SnapToggle( VarSnapType As Variant)
Dim VarOsmode As Integer
Dim VarAftrek As Integer
Dim VarOsmodeOrg As Integer
VarOsmode = ThisDrawing.GetVariable("osmode")
VarOsmodeOrg = ThisDrawing.GetVariable("osmode")
VarAftrek = 16384
While VarAftrek > VarSnapType
VarAftrek = VarAftrek / 2
If VarOsmode > VarAftrek Then VarOsmode = VarOsmode - VarAftrek
Wend
If VarOsmode = VarSnapType Then VarOsmodeOrg = VarOsmodeOrg - VarSnapType
If VarOsmode < VarSnapType Then VarOsmodeOrg = VarOsmodeOrg + VarSnapType
ThisDrawing.SetVariable ("osmode"), VarOsmodeOrg
End Sub
页: [1]
查看完整版本: 使用vba例程透明