如何确保绘图和发布时绘图戳始终处于打开状态
**** Hidden Message ***** 使用VBA比使用LSP需要更多的代码,因此,我提供了这个小代码,您可以将其添加到ACAD.lsp文件中,每次启动AutoCAD时将值设置为1(on)。这就是您所需要的。 你是怎么找到的?我在注册表中寻找这样的设置,我可以找到绘图戳的东西,但找不到ON/OFF设置? 你是怎么发现的?我在注册表中寻找这样的设置,我可以找到plotstamp的东西,但没有开/关设置?
我有我的方法!
我刚刚搜索了PLOTSTAMP,当我看到REG_DWORD设置时,我想我找到了一些东西。所以我打开了情节戳,跳回注册表,刷新它,是的!设置从0更改为1。
您是使用注册表类来更改设置还是引用了某个文件?只是好奇。 必须添加对 Windows 脚本主机对象模型的引用
顺便说一句,您的 (vlax-product-key) 是我 VBA 解决方案所需要的。 不,我从来没有真正学习过VLisp来使用lisp中的vl内容,所以我从来没有在VBA中探索过它。从哪里得到它? 我之前回复贴的文件有。 嘿,伙计们,哇,你一直很忙。我已经在我们的acad.lsp
(命令“-plotstamp”“on”“)中提供了一些代码
来打开它,但我正在寻找一种更万无一失的方式,所以如果它在会话期间被关闭,当用户绘图时它会重新打开。我认为我可以通过将其添加到情节中并发布我使用的按钮来做到这一点,但我的老板说有时她使用这些按钮,但其他时候她会键入情节,在这种情况下,它不会打开它。这就是为什么我认为这将是一个更好的路线去事件路线,如果发布情节或发布命令,情节戳就会打开。你明白我现在想要什么吗? 好的...给你。使用Duh对Wshshell的想法(您需要添加一个引用)和VLAX.cls这是我想出的。附加文件包含您需要的一切。
Option Explicit
Public strPlotStampLocale As String
Private Sub AcadDocument_BeginCommand(ByVal CommandName As String)
Dim oWsh As WshShell
GetPlotStampLocation
Select Case UCase(CommandName)
Case Is = "PUBLISH"
Set oWsh = New WshShell
oWsh.RegWrite strPlotStampLocale, "1", "REG_DWORD"
Set oWsh = Nothing
Case Is = "PLOT"
Set oWsh = New WshShell
oWsh.RegWrite strPlotStampLocale, "1", "REG_DWORD"
Set oWsh = Nothing
End Select
End Sub
Private Sub GetPlotStampLocation()
Dim obj As VLAX
Dim Key As String
Dim Prof As String
Set obj = New VLAX
Key = obj.EvalLispExpression("(vlax-product-key)")
Prof = obj.EvalLispExpression("(getvar ""cprofile"")")
strPlotStampLocale = "HKEY_CURRENT_USER\" & Key & "\Profiles\" & Prof & "\Dialogs\Plot Stamp\PlotStamp"
End Sub
页:
[1]