乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 164|回复: 11

片材套装中的自定义道具

[复制链接]

12

主题

102

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
156
发表于 2008-2-22 18:30:19 | 显示全部楼层 |阅读模式

有人能够在图纸集中编辑自定义属性吗?
有CUSTOM_SHEET_PROP和CUSTOM_SHEET_PROP
CUSTOM_SHEET_PROP是特定于每张图纸(布局)的字段
CUSTOM _ SHEET _ PROP是所有图纸的字段
一个很好的例子是,在您的绘图总数中有1个#(例如)
嗯,您可以将1定义为CUSTOM _ SHEET _ PROP(字段),将#定义为CUSTOM _ SHEET _ PROP(字段),作为每张图纸(布局)的第一个数字更改,并将
因此,每次用户更新#(字段)时,布局将动态地重新索引。
一旦你开始掌握它的窍门;真的很酷。
无论如何,我们将项目数据写出到一个txt文件,通过属性,我们可以读入这些信息;现在,我需要能够这样做的领域(自定义_道具)
我已经取得了一些进展,很高兴分享我所拥有的,但我只是不能到最后一个拥挤。
任何帮助都将不胜感激。
谢谢!
Mark
PS:我在网上查过高低;vba示例等。

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

12

主题

102

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
156
发表于 2008-2-23 10:34:21 | 显示全部楼层
请给我发送一条私人消息,我将发布我的整套代码,以便在周一下班后完成所有这些工作。我使用我在博客上找到的信息(我也会发布该链接)为我们公司编写了整个界面。我们将信息导出到Excel中,以便非CAD人员可以对其进行编辑,并且还有一个导入例程。
它主要用于从不同办公室导入图纸集。
墨菲
回复

使用道具 举报

12

主题

102

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
156
发表于 2008-2-24 13:12:14 | 显示全部楼层
马克,
附件是我从这个网站放在一起的东西:
http://jtbworld.blogspot.com/2005/01/sheet-set-manager-api-code-sample-for_20.html
看看并提出问题。希望它有帮助。
http://www.theswamp.org/lilly_pond/index.php?dir=murphy/&file=CustomSSM.dvb
墨菲
回复

使用道具 举报

12

主题

102

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
156
发表于 2008-2-25 05:52:22 | 显示全部楼层

好吧,墨菲!
你的代码看起来很棒
当然,那里有很多需要的东西。
我只是希望能够首先编辑自定义道具,然后我肯定会更仔细地查看您发送的所有代码。
好吧,我现在将查看Utils函数
谢谢!
马克
回复

使用道具 举报

12

主题

102

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
156
发表于 2008-2-25 09:30:54 | 显示全部楼层

我跳得有点快,但我刚刚注意到您正在使用脚本语言
这很酷;我也经常使用它
我注意到这是一些您正在获取用户名和机器的示例。
它在这里不起作用,但我没有起诉您是如何获取该信息的。
我一直使用脚本代码来检索该信息。
标记
回复

使用道具 举报

12

主题

102

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
156
发表于 2008-2-25 10:16:13 | 显示全部楼层

嘿,Murph
再说一次,您的代码非常好,从中可以学到很多东西。
但是,它仍然有点复杂,因为所有的Excel工作都在进行中。
我正在寻找一个非常基本的例子,改变表和表中的自定义道具。
在我了解这一点后,我可以对其进行阐述。
你有没有稍微简单一点的?
谢谢!
标记
回复

使用道具 举报

12

主题

102

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
156
发表于 2008-2-25 10:26:01 | 显示全部楼层
标记,
让我们一步一步地完成它,这样您就可以从中得到您想要的东西。
我们从SheetSetForm.SSStartHere.开始
这是检查您是否有一个工作表设置为打开状态,并确保只有一个是打开的。
它将锁定它,然后将其发送到Loop穿透SheetsPop
这是我们获取要呈现给用户以进行更改的值的地方。
请注意,GetCSSProperties正在发送一个字符串和一个工作表。该字符串是自定义工作表属性的EXACT Title。
您可以根据公司的自定义工作表属性自定义整个表单。
让我们假设某些值已更改并且用户点击OK按钮。该代码将我们发送到SetProps。
此例程检查一个且仅一个工作表集并锁定它。
因为这东西正在将工作表集的内容导出到Excel以在另一个办公室导入,所以我们现在将跳过它。
SetProps将我们发送到Loop穿透SheetsSet,它将执行此操作。
它将遍历所有工作表并将值设置为表单中的值。
  1. Private Sub LoopThroughSheetsSet(ByVal compEnum As IAcSmEnumComponent)
  2.     Dim comp As IAcSmComponent
  3.     Dim lastrevn As Variant
  4.     Dim lyOut As AcSmAcDbLayoutReference
  5.     Dim lyName As String
  6.     Dim lastrevd As String
  7.     Dim lastrevdate As String
  8.     Dim rNumTemp As String
  9.     Dim rnNext As String
  10.     Dim rnVar As Variant
  11.     Dim dirmade As Boolean
  12.     Dim tLine1 As String
  13.     Dim tLine2 As String
  14.     Dim tLine3 As String
  15.     Dim selsets As AcSmSheetSelSets
  16.     Dim selset As AcSmSheetSelSet
  17.     Dim tselset As AcSmSheetSelSet
  18.     Dim ssMade As Boolean
  19.     Dim ttitle As String
  20.     Dim repTemp As String
  21.     On Error GoTo ErrHandler
  22.     ssMade = False
  23.     Set comp = compEnum.Next()
  24.     dirmade = False
  25.     ' loop through till the component is Nothing
  26.     Do While Not comp Is Nothing
  27.         'if the component is a sheet, then...
  28.         If comp.GetTypeName = "AcSmSheet" Then
  29.             'loop through all the sheets.
  30.             'Call LoopThroughSheetsPop(sset.GetSheetEnumerator)
  31.             Dim s As AcSmSheet
  32.             Set s = comp
  33.             Dim sNumber As String
  34.             Dim sTitle As String
  35.             sNumber = s.GetNumber
  36.             'tLine1 = GetCSSProperties("Drawing Title Line 1", s)
  37.             'tLine2 = GetCSSProperties("Drawing Title Line 2", s)
  38.             'tLine3 = GetCSSProperties("Drawing Title Line 3", s)
  39.             'If tLine1 = "%%032" Then
  40.             '    tLine1 = ""
  41.             'End If
  42.             'If tLine2 = "%%032" Then
  43.             '    tLine2 = ""
  44.             'End If
  45.             'If tLine3 = "%%032" Then
  46.             '    tLine3 = ""
  47.             'End If
  48.             'If Not tLine1 = "" Then
  49.             '    If Not tLine2 = "" Then
  50.             '        If Not tLine3 = "" Then
  51.             '            ttitle = tLine1 & " " & tLine2 & " " & tLine3
  52.             '        Else
  53.             '            ttitle = tLine1 & " " & tLine2
  54.             '        End If
  55.             '    Else
  56.             '        If Not tLine3 = "" Then
  57.             '            ttitle = tLine1 & " " & tLine3
  58.             '        Else
  59.             '            ttitle = tLine1
  60.             '        End If
  61.             '    End If
  62.             'Else
  63.             '    If Not tLine2 = "" Then
  64.             '        If Not tLine3 = "" Then
  65.             '            ttitle = tLine2 & " " & tLine3
  66.             '        Else
  67.             '            ttitle = tLine2
  68.             '        End If
  69.             '    Else
  70.             '        If Not tLine3 = "" Then
  71.             '            ttitle = tLine3
  72.             '        End If
  73.             '    End If
  74.             'End If
  75.             '
  76.             'If Not ttitle = "" Then
  77.             '    s.SetTitle ttitle
  78.             'End If
  79.             sTitle = s.GetTitle
  80.             Set lyOut = s.GetLayout
  81.             lyName = lyOut.ResolveFileName
  82.             If sNumber = dNum Then
  83.                 If Not pstamp = "" Then
  84.                     ChangeProperties "Preliminary Stamp", pstamp, s
  85.                 End If
  86.                 If Not pLines = "" Then
  87.                     ChangeProperties "ProjectLayer", pLines, s
  88.                 End If
  89.                 If Not tLines = "" Then
  90.                     ChangeProperties "TitleLayer", tLines, s
  91.                 End If
  92.                 If Not ssetName = "" Then
  93.                     newSelSet.Add s
  94.                 End If
  95.                 If Not chk = "" Then
  96.                     ChangeProperties "Checked By", chk, s
  97.                 End If
  98.                 If Not des = "" Then
  99.                     ChangeProperties "Designed By", des, s
  100.                 End If
  101.                 If Not chrg = "" Then
  102.                     ChangeProperties "In Charge Of", chrg, s
  103.                 End If
  104.                 If Not dwn = "" Then
  105.                     ChangeProperties "Drawn By", dwn, s
  106.                 End If
  107.                 If Not scl = "" Then
  108.                     ChangeProperties "Scale", scl, s
  109.                 End If
  110.                 If Not ptitle = "" Then
  111.                     ChangeProperties "Location", ptitle, s
  112.                     'ChangeProperties "Drawing Title Line 1", ptitle, s
  113.                 End If
  114.                 If Not repTxt = "" Then
  115.                     repTemp = PropReplaceCombo.Column(0, PropReplaceCombo.ListIndex)
  116.                     ChangeProperties repTemp, repTxt, s
  117.                 End If
  118.                 If Not rdesc = "" Then
  119.                     If wipeClean = True Then
  120.                         ChangeProperties "Revision Number 0", "0", s
  121.                         ChangeProperties "Description of revision 0", rdesc, s
  122.                         ChangeProperties "Date of Revision 0", rdate, s
  123.                         ChangeProperties "Initials of Rev 0 Reviewer", rinit, s
  124.                         
  125.                         ChangeProperties "Revision Number 1", "%%032", s
  126.                         ChangeProperties "Description of Revision 1", "%%032", s
  127.                         ChangeProperties "Date of Revision 1", "%%032", s
  128.                         ChangeProperties "Initials of Rev 1 Reviewer", "%%032", s
  129.                         
  130.                         ChangeProperties "Revision Number 2", "%%032", s
  131.                         ChangeProperties "Description of Revision 2", "%%032", s
  132.                         ChangeProperties "Date of Revision 2", "%%032", s
  133.                         ChangeProperties "Initials of Rev 2 Reviewer", "%%032", s
  134.                         
  135.                         ChangeProperties "Revision Number 3", "%%032", s
  136.                         ChangeProperties "Description of Revision 3", "%%032", s
  137.                         ChangeProperties "Date of Revision 3", "%%032", s
  138.                         ChangeProperties "Initials of Rev 3 Reviewer", "%%032", s
  139.                         
  140.                         ChangeProperties "Revision Number 4", "%%032", s
  141.                         ChangeProperties "Description of Revision 4", "%%032", s
  142.                         ChangeProperties "Date of Revision 4", "%%032", s
  143.                         ChangeProperties "Initials of Rev 4 Reviewer", "%%032", s
  144.                     Else
  145.                         If GetCSSProperties("Date of Revision 4", s) = "%%032" Then
  146.                             If GetCSSProperties("Date of Revision 3", s) = "%%032" Then
  147.                                 If GetCSSProperties("Date of Revision 2", s) = "%%032" Then
  148.                                     If GetCSSProperties("Date of Revision 1", s) = "%%032" Then
  149.                                         If GetCSSProperties("Date of Revision 0", s) = "%%032" Then
  150.                                             If rtype = "L" Then
  151.                                                 ChangeProperties "Revision Number 0", "A", s
  152.                                             Else
  153.                                                 ChangeProperties "Revision Number 0", "0", s
  154.                                             End If
  155.                                             ChangeProperties "Description of revision 0", rdesc, s
  156.                                             ChangeProperties "Date of Revision 0", rdate, s
  157.                                             ChangeProperties "Initials of Rev 0 Reviewer", rinit, s
  158.                                         Else
  159.                                             rNumTemp = GetCSSProperties("Revision Number 0", s)
  160.                                             If rtype = "L" Then
  161.                                                 rnNext = AddLetter(rNumTemp)
  162.                                             Else
  163.                                                 If IsNumeric(rNumTemp) Then
  164.                                                     rnVar = rNumTemp
  165.                                                     rnVar = rnVar + 1
  166.                                                     rnNext = rnVar
  167.                                                 Else
  168.                                                     rnNext = "0"
  169.                                                 End If
  170.                                             End If
  171.                                             ChangeProperties "Revision Number 1", rnNext, s
  172.                                             ChangeProperties "Description of Revision 1", rdesc, s
  173.                                             ChangeProperties "Date of Revision 1", rdate, s
  174.                                             ChangeProperties "Initials of Rev 1 Reviewer", rinit, s
  175.                                         End If
  176.                                     Else
  177.                                         rNumTemp = GetCSSProperties("Revision Number 1", s)
  178.                                         If rtype = "L" Then
  179.                                             rnNext = AddLetter(rNumTemp)
  180.                                         Else
  181.                                             If IsNumeric(rNumTemp) Then
  182.                                                 rnVar = rNumTemp
  183.                                                 rnVar = rnVar + 1
  184.                                                 rnNext = rnVar
  185.                                             Else
  186.                                                 rnNext = "0"
  187.                                             End If
  188.                                         End If
  189.                                         ChangeProperties "Revision Number 2", rnNext, s
  190.                                         ChangeProperties "Description of Revision 2", rdesc, s
  191.                                         ChangeProperties "Date of Revision 2", rdate, s
  192.                                         ChangeProperties "Initials of Rev 2 Reviewer", rinit, s
  193.                                     End If
  194.                                 Else
  195.                                     rNumTemp = GetCSSProperties("Revision Number 2", s)
  196.                                     If rtype = "L" Then
  197.                                         rnNext = AddLetter(rNumTemp)
  198.                                     Else
  199.                                         If IsNumeric(rNumTemp) Then
  200.                                             rnVar = rNumTemp
  201.                                             rnVar = rnVar + 1
  202.                                             rnNext = rnVar
  203.                                         Else
  204.                                             rnNext = "0"
  205.                                         End If
  206.                                     End If
  207.                                     ChangeProperties "Revision Number 3", rnNext, s
  208.                                     ChangeProperties "Description of Revision 3", rdesc, s
  209.                                     ChangeProperties "Date of Revision 3", rdate, s
  210.                                     ChangeProperties "Initials of Rev 3 Reviewer", rinit, s
  211.                                 End If
  212.                             Else
  213.                                 rNumTemp = GetCSSProperties("Revision Number 3", s)
  214.                                 If rtype = "L" Then
  215.                                     rnNext = AddLetter(rNumTemp)
  216.                                 Else
  217.                                     If IsNumeric(rNumTemp) Then
  218.                                         rnVar = rNumTemp
  219.                                         rnVar = rnVar + 1
  220.                                         rnNext = rnVar
  221.                                     Else
  222.                                         rnNext = "0"
  223.                                     End If
  224.                                 End If
  225.                                 ChangeProperties "Revision Number 4", rnNext, s
  226.                                 ChangeProperties "Description of Revision 4", rdesc, s
  227.                                 ChangeProperties "Date of Revision 4", rdate, s
  228.                                 ChangeProperties "Initials of Rev 4 Reviewer", rinit, s
  229.                             End If
  230.                         Else
  231.                             rNumTemp = GetCSSProperties("Revision Number 4", s)
  232.                             If rtype = "L" Then
  233.                                 rnNext = AddLetter(rNumTemp)
  234.                             Else
  235.                                 If IsNumeric(rNumTemp) Then
  236.                                     rnVar = rNumTemp
  237.                                     rnVar = rnVar + 1
  238.                                     rnNext = rnVar
  239.                                 Else
  240.                                     rnNext = "0"
  241.                                 End If
  242.                             End If
  243.                             ChangeProperties "Revision Number 0", GetCSSProperties("Revision Number 1", s), s
  244.                             ChangeProperties "Description of revision 0", GetCSSProperties("Description of Revision 1", s), s
  245.                             ChangeProperties "Date of Revision 0", GetCSSProperties("Date of Revision 1", s), s
  246.                             ChangeProperties "Initials of Rev 0 Reviewer", GetCSSProperties("Initials of Rev 1 Reviewer", s), s
  247.                            
  248.                             ChangeProperties "Revision Number 1", GetCSSProperties("Revision Number 2", s), s
  249.                             ChangeProperties "Description of Revision 1", GetCSSProperties("Description of Revision 2", s), s
  250.                             ChangeProperties "Date of Revision 1", GetCSSProperties("Date of Revision 2", s), s
  251.                             ChangeProperties "Initials of Rev 1 Reviewer", GetCSSProperties("Initials of Rev 2 Reviewer", s), s
  252.                            
  253.                             ChangeProperties "Revision Number 2", GetCSSProperties("Revision Number 3", s), s
  254.                             ChangeProperties "Description of Revision 2", GetCSSProperties("Description of Revision 3", s), s
  255.                             ChangeProperties "Date of Revision 2", GetCSSProperties("Date of Revision 3", s), s
  256.                             ChangeProperties "Initials of Rev 2 Reviewer", GetCSSProperties("Initials of Rev 3 Reviewer", s), s
  257.                            
  258.                             ChangeProperties "Revision Number 3", GetCSSProperties("Revision Number 4", s), s
  259.                             ChangeProperties "Description of Revision 3", GetCSSProperties("Description of Revision 4", s), s
  260.                             ChangeProperties "Date of Revision 3", GetCSSProperties("Date of Revision 4", s), s
  261.                             ChangeProperties "Initials of Rev 3 Reviewer", GetCSSProperties("Initials of Rev 4 Reviewer", s), s
  262.                            
  263.                             ChangeProperties "Revision Number 4", rnNext, s
  264.                             ChangeProperties "Description of Revision 4", rdesc, s
  265.                             ChangeProperties "Date of Revision 4", rdate, s
  266.                             ChangeProperties "Initials of Rev 4 Reviewer", rinit, s
  267.                         End If
  268.                         ChangeRevProps rnNext, rdate, s
  269.                     End If
  270.                 End If
  271.             End If
  272.     ElseIf comp.GetTypeName = "AcSmSubset" Then
  273.             Dim sset As AcSmSubset
  274.             Set sset = comp
  275.             'loop through all the sheets.
  276.             Call LoopThroughSheetsSet(sset.GetSheetEnumerator)
  277.         End If
  278.         'next
  279.         Set comp = compEnum.Next()
  280.     Loop
  281.     GoTo Exit_Here
  282. ErrHandler:
  283. Select Case Err.Number
  284.     Case -2147467259
  285.         Err.Clear
  286.         Resume
  287.     Case Else
  288.         MsgBox Err.Number & ":" & Err.Description, vbOKOnly, "Error " & Err.Number
  289.         GoTo Exit_Here
  290. End Select
  291. Exit_Here:
  292. End Sub

这是完成工作的地方。
请注意它是如何调用ChangeProperties的,将属性标题作为字符串、所需值和工作表发送的。
如果您遍历并将所有“修订版编号0”替换为自定义表属性的标题,然后运行SheetSetSheet.SSFormStart
您将看到它在做什么。
让我为您编写一组例程,它将询问您想要获取值的自定义属性,并要求您通过InputBox更改它。
回复

使用道具 举报

12

主题

102

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
156
发表于 2008-2-25 10:29:35 | 显示全部楼层
标记,
插入一个新模块并将此代码粘贴到其中。
这将要求您更改属性标题,为您提供现有值并让您进行更改。
这是一个向您展示其余部分如何工作的示例。墨菲
  1. Dim aCount As Integer
  2. Dim cCount As Integer
  3. Dim eCount As Integer
  4. Dim iCount As Integer
  5. Dim mCount As Integer
  6. Dim pCount As Integer
  7. Dim sCount As Integer
  8. Dim pidCount As Integer
  9. Dim dwgCount As Integer
  10. Dim scl As String
  11. Dim chk As String
  12. Dim des As String
  13. Dim chrg As String
  14. Dim dwn As String
  15. Dim rinit As String
  16. Dim ssetName As String
  17. Dim ptitle As String
  18. Dim rdesc As String
  19. Dim rdate As String
  20. Dim rtype As String
  21. Dim dNum As String
  22. Dim draw As AcadDocument
  23. Dim newDir As String
  24. Dim newSelSet As IAcSmSheetSelSet
  25. Dim pstamp As String
  26. Dim pLines As String
  27. Dim tLines As String
  28. Dim donce As Boolean
  29. Dim wipeClean As Boolean
  30. Dim sdcCount As Integer
  31. Dim sdcChange As Boolean
  32. Dim NewSubsetStr As String
  33. Dim sdcCalled As Boolean
  34. Dim startDone As Boolean
  35. Dim sdcPrev As Boolean
  36. Dim repTxt As String
  37. Dim expSel As Boolean
  38. Dim xBook As Workbook
  39. Dim dSht As Worksheet
  40. Dim ppSht As Worksheet
  41. Dim ssSht As Worksheet
  42. Dim SingDrawComboPrev As Integer
  43. Public Sub SetProps()
  44. Dim i As Integer
  45. i = SheetSetsOpen
  46. If i > 1 Then
  47.     MsgBox "More than one Sheet Set are open. Make sure only one is open.", vbCritical
  48.     Exit Sub
  49. ElseIf i = 0 Then
  50.     MsgBox "No Sheet Set is open. Make sure one is open.", vbCritical
  51.     Exit Sub
  52. End If
  53.     Dim ssm As New AcSmSheetSetMgr
  54.     Dim dbIter As IAcSmEnumDatabase
  55.     Dim db As IAcSmDatabase
  56.     Dim ss As AcSmSheetSet
  57.     If ssm Is Nothing Then
  58.         MsgBox "Something wrong here: 1", vbCritical
  59.         Exit Sub
  60.     End If
  61.     Set dbIter = ssm.GetDatabaseEnumerator
  62.     If dbIter Is Nothing Then
  63.         MsgBox "Something wrong here: 2", vbCritical
  64.         Exit Sub
  65.     End If
  66.     dbIter.Reset
  67.     'get the Database of the first sheetset
  68.     Set db = dbIter.Next
  69.     If db Is Nothing Then
  70.         MsgBox "No Sheet Set open", vbCritical
  71.         Exit Sub
  72.     End If
  73.     'get the sheetset
  74.     Set ss = db.GetSheetSet
  75.     If ss Is Nothing Then
  76.         MsgBox "Cannot get the Sheet Set", vbCritical
  77.         Exit Sub
  78.     End If
  79.     Set oSheetIter = ss.GetSheetEnumerator
  80.     If oSheetIter Is Nothing Then
  81.       Return
  82.     End If
  83.     'lock the database
  84.     Dim lockStatus As AcSmLockStatus
  85.     Let lockStatus = db.GetLockStatus
  86.     If lockStatus = AcSmLockStatus_UnLocked Then
  87.       db.LockDb db
  88.     Else
  89.         Dim sUserName As String
  90.         Dim sMachineName As String
  91.         db.GetLockOwnerInfo sUserName, sMachineName
  92.         MsgBox "The Sheet Set is locked by " & sUserName & " at " & sMachineName, vbCritical
  93.         Exit Sub
  94.     End If
  95.     Dim compEnum As IAcSmEnumComponent
  96.     'get component enumerator
  97.     Set compEnum = ss.GetSheetEnumerator
  98.         Call LoopThroughSheetsSetMark(compEnum)
  99.     'unlock the database
  100.     Call db.UnlockDb(db, True)
  101. End Sub
  102. Private Sub LoopThroughSheetsSetMark(ByVal compEnum As IAcSmEnumComponent)
  103.     Dim comp As IAcSmComponent
  104.     Dim lastrevn As Variant
  105.     Dim lyOut As AcSmAcDbLayoutReference
  106.     Dim lyName As String
  107.     Dim lastrevd As String
  108.     Dim lastrevdate As String
  109.     Dim rNumTemp As String
  110.     Dim rnNext As String
  111.     Dim rnVar As Variant
  112.     Dim dirmade As Boolean
  113.     Dim tLine1 As String
  114.     Dim tLine2 As String
  115.     Dim tLine3 As String
  116.     Dim selsets As AcSmSheetSelSets
  117.     Dim selset As AcSmSheetSelSet
  118.     Dim tselset As AcSmSheetSelSet
  119.     Dim ssMade As Boolean
  120.     Dim ttitle As String
  121.     Dim repTemp As String
  122. Dim cssProp As String
  123. Dim exstVal As String
  124. Dim newVal As String
  125.     On Error GoTo ErrHandler
  126.     ssMade = False
  127.     Set comp = compEnum.Next()
  128.     dirmade = False
  129.     cssProp = InputBox("What is the EXACT title of your custom property?", "Property Title")
  130.     ' loop through till the component is Nothing
  131.     Do While Not comp Is Nothing
  132.         'if the component is a sheet, then...
  133.         If comp.GetTypeName = "AcSmSheet" Then
  134.             Dim s As AcSmSheet
  135.             Set s = comp
  136.             Dim sNumber As String
  137.             Dim sTitle As String
  138.             exstVal = GetCSSProperties(cssProp, s)
  139.             sTitle = s.GetTitle
  140.             
  141.             newVal = InputBox("The drawing " & sTitle & vbCr & "has a value of" & vbCr & exstVal & vbCr & _
  142.             "for the Custom Property titled" & vbCr & cssProp & vbCr & vbCr & "Please enter the new value here. Leave blank for no change" _
  143.             , "Properties to the Extreme")
  144.             
  145.             If Not newVal = "" Then
  146.                 ChangeProperties cssProp, newVal, s
  147.             End If
  148.          
  149.     ElseIf comp.GetTypeName = "AcSmSubset" Then
  150.             Dim sset As AcSmSubset
  151.             Set sset = comp
  152.             'loop through all the sheets.
  153.             Call LoopThroughSheetsSet(sset.GetSheetEnumerator)
  154.         End If
  155.         'next
  156.         Set comp = compEnum.Next()
  157.     Loop
  158.     GoTo Exit_Here
  159. ErrHandler:
  160. Select Case Err.Number
  161.     Case -2147467259
  162.         Err.Clear
  163.         Resume
  164.     Case Else
  165.         MsgBox Err.Number & ":" & Err.Description, vbOKOnly, "Error " & Err.Number
  166.         GoTo Exit_Here
  167. End Select
  168. Exit_Here:
  169. End Sub
回复

使用道具 举报

12

主题

102

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
156
发表于 2008-2-25 13:13:40 | 显示全部楼层

嘿墨菲
,我真的很感激这一点;我一直在取得进展,但进展非常缓慢。
这些东西不是很直观。
好的,我将代码复制到一个新模块中;我仍然收到一些错误。
我做的第一件事是注释掉你对Excel的任何引用;现在。
另一件事是,这个代码
  1. i = SheetSetsOpen
  2. If i > 1 Then
  3.     MsgBox "More than one Sheet Set are open. Make sure only one is open.", vbCritical
  4.     Exit Sub
  5. ElseIf i = 0 Then
  6.      MsgBox "No Sheet Set is open. Make sure one is open.", vbCritical
  7.      Exit Sub
  8. End If

它告诉我,没有一个工作表集是打开的,而实际上它是打开的;所以我把它注释掉了。
我可能做错了什么,但我打开了图纸集管理器并加载了图纸集
,我正在使用CAD附带的示例(民用),并且其中一个布局打开并处于活动状态。
另外,我现在看到sUserName,sMachineName是数据库GetLockOwnerInfo方法的一部分。
这样,我不断收到错误,即工作表集被我锁定在我的机器上。
那么,我们是否过早地锁定了图纸集?
另外,我们是否缺少一个函数:?
GetCSSProperties
再次感谢您为我分解代码;这使它更加全面。
我只是不完全确定为什么我们会犯这样的错误。
马克
回复

使用道具 举报

12

主题

102

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
156
发表于 2008-2-26 06:24:09 | 显示全部楼层
标记,
GetCSSProperties应该包含在我链接的dvb中。
您能在设置i = SheetSetsOpen的地方停止代码并检查I的值吗?
您运行的是什么版本/风格的Autocad?
至于被锁定的纸张组,如果您一直使用相同的纸张组进行测试,则纸张组可能仍会在上次程序出错时被锁定。
查找并运行SheetSetSheet.unlockdbnow,然后运行我之前给你的东西。
让我知道接下来会发生什么。墨菲
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-5 08:47 , Processed in 1.194336 second(s), 73 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表