Jeff_M 发表于 2006-9-28 06:50:23

ObjectDBX

有没有办法用ObjectDBX读取一些系统变量

狼牙月 发表于 2006-9-28 13:07:06

不……不是我'我知道

黑衣长发的空间 发表于 2006-9-28 13:20:49

我模糊地记得它返回了当前图形中的系统变量,在其中执行代码(可能是错误的)
建议:存储您'我们对自定义字典感兴趣,或者将其作为扩展数据附加到图形中的某些对象,稍后可以通过objectdbx访问它们。

精品斋 发表于 2006-9-28 14:31:50

因为ObjectDBX对于未打开的图形和自动CAD最有用;系统变量要么存储在图形中,要么存储在应用程序级别,为什么(如果我可以大胆地问的话)您要读取它们
我只是想知道你'我们正在努力。

明道 发表于 2006-9-28 17:22:47

我需要检查图纸是公制还是英制
AutoCAD系统变量测量值为英制,用于打开或插入文件作为块

飞碟 发表于 2006-9-29 05:59:24

不太确定,但我认为这是不可能的,用ObjectDBX方法IMHO试试这个:Option Explicit
Public Function GetVars(selfiles As Variant, sysVarName As String) As Variant
Dim fName As String
Dim acdoc As AcadDocument
Dim sysvar() As Variant
Dim m As Integer
For m = 0 To UBound(selfiles)
fName = selfiles(m)
Set acdoc = Application.Documents.Open(fName, True)
ReDim Preserve sysvar(m)
sysvar(m) = acdoc.GetVariable(sysVarName)
acdoc.Close
Next m
GetVars = sysvar
End Function
Public Sub FindFile(ByRef files As Collection, strDir, strExt)
Dim strFileName
If (Right(strDir, 1)"\") Then
    strDir = strDir & "\"
End If
strFileName = Dir(strDir & "*.*", vbDirectory)
Do While (strFileName"")
    If (UCase(Right(strFileName, 3)) = UCase(strExt)) Then
      files.Add strDir & strFileName
    End If
strFileName = Dir
Loop

End Sub
Sub Test()
Dim dmod
dmod = ThisDrawing.GetVariable("SDI")
If dmod0 Then
ThisDrawing.SetVariable "SDI", 0
End If
Dim path As String
path = "D:\AUTOLISP\LISPS\PRIMITIVES\#FILE&S\PURGE" '' change your path here
Dim collFiles As New Collection
Call FindFile(collFiles, path, "DWG")
Dim i As Integer
ReDim selfiles(collFiles.Count - 1) As String
For i = 1 To collFiles.Count
selfiles(i - 1) = collFiles.Item(i)
Next
Dim sysvar() As Variant
sysvar = GetVars(selfiles, "measurement")
ThisDrawing.SetVariable "SDI", dmod
Dim dataVar(999, 1) As Variant
For i = 0 To UBound(sysvar)
dataVar(i, 0) = selfiles(i)
dataVar(i, 1) = sysvar(i)
Next
End Sub脂肪;J#039~

陆风哥哥 发表于 2006-9-29 07:56:51

您使用的是什么版本的AutoCAD?

粽子 发表于 2006-9-29 09:04:32

我使用Autocad mechanical 2006

亦菲互动 发表于 2006-9-29 10:53:04

在这种情况下,我认为有一种方法可以通过.NETAPI使用C#或VB.NET实现
你有兴趣试一试吗?

顺水行舟 发表于 2006-9-29 11:06:24


哦,是的,我'm
页: [1] 2
查看完整版本: ObjectDBX