Murph 发表于 2008-2-22 18:30:19

图纸集中的自定义道具

您好,有人有幸在图纸集中编辑自定义属性吗
有CUSTOM\u SHEET\u PROP和CUSTOM\uSheetSet\u props。CUSTOM\U SHEET\U PROP将是每个图纸(布局)的特定字段,CUSTOM_SHEETSET_PROP将为所有图纸的字段。如果您的图纸总数中有一个#(例如),您可以将1定义为自定义_SHEET_PROP(字段),将#定义为自定义_SHEETSET_props(字段),因为每个图纸(布局)的第一个数字更改,每个图纸(版面)的第二个数字更改
因此,每当用户更新#(字段)时,布局将动态地重新索引
一旦你开始掌握窍门;真的很酷
无论如何,我们将项目数据写入一个txt文件,通过属性,我们可以读取其中的信息;现在,我需要能够使用字段(自定义道具)来实现这一点,我已经取得了一些进展,很高兴与大家分享我所拥有的,但我只能'我无法到达最后一个拥挤的地方
任何帮助都将不胜感激
谢谢
马克:我在网上查了高低;vba示例等

Murph 发表于 2008-2-23 10:34:21

请给我发一条私人消息,我将在周一下班后发布我的全部代码。我用我在博客上找到的信息(我也会发布那个链接)为我们公司写了一个完整的界面。我们将信息导出到Excel中,以便非CAD人员可以编辑它,并且还有一个导入例程
它主要用于从不同的办公室导入图纸集
Murph

Murph 发表于 2008-2-24 13:12:14


您好,Murph,请检查您的PM,谢谢
标记

Murph 发表于 2008-2-25 05:52:22

标记,
附件是我从这个网站收集的资料:
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/&文件=自定义SSM。深静脉血栓形成

Murph 发表于 2008-2-25 09:30:54

谢谢Murph
我很感激
我很快就会看一看
标记

Murph 发表于 2008-2-25 10:16:13

请密切注意表单中的代码。这是完成大部分工作的地方
查看Utils函数,了解如何完成基本功能。

Murph 发表于 2008-2-25 10:26:01


好的,墨菲
你的代码看起来很棒,当然还有很多需要改进的地方
我只想能够先编辑自定义道具,然后我一定会仔细查看您发送的所有代码
好的,我现在来看看Utils函数,谢谢
标记

Murph 发表于 2008-2-25 10:29:35


I'我向前跳了一点,但我刚刚注意到你正在使用脚本语言,这很酷;我也经常使用它,我注意到这是一些你抓取用户名和机器的例子
这在这里不起作用,但我不是;不要起诉你是如何获取这些信息的
我一直使用脚本代码来检索这些信息
标记

Murph 发表于 2008-2-25 13:13:40


嘿,Murph,你的代码很好,可以从中获得很多
然而,所有的Excel工作都在进行,这仍然有点复杂。我正在寻找一个非常基本的例子,来改变工作表和工作表中的自定义道具
在我得到它之后,我可以对它进行解释
你有更基本的东西吗
谢谢
标记

Murph 发表于 2008-2-26 06:24:09

标记,
让'让我们一步一步地走一遍,这样你就能从中得到你想要的
我们从SheetSetForm.SSStartHere开始
这是检查是否有一个图纸集打开,并确保只有一个打开
它将锁定它,然后将其发送到LoopThroughSheetsPop。在这里,我们可以获得要呈现给用户的值,以便进行更改
请注意,GetCSSProperties正在发送一个字符串和一个工作表。字符串是自定义图纸特性的确切标题
您可以根据您的公司定制整个表单#039;s自定义图纸属性
让's假设一些值已更改,用户点击OK按钮。那个代码把我们送到了SetProps
此例行程序仅检查一个图纸集并将其锁定
因为这些东西正在将图纸集导出到Excel,以便在另一个办公室导入,我们现在将跳过它
SetProps将我们发送到LoopThroughSheetsSet,它将执行此操作
它将遍历所有表单,并将值设置为表单中的值。如果用户没有'他们仍然得到#039;更新#039;但什么都不会改变
Private Sub LoopThroughSheetsSet(ByVal compEnum As IAcSmEnumComponent)
    Dim comp As IAcSmComponent
    Dim lastrevn As Variant
    Dim lyOut As AcSmAcDbLayoutReference
    Dim lyName As String
    Dim lastrevd As String
    Dim lastrevdate As String
    Dim rNumTemp As String
    Dim rnNext As String
    Dim rnVar As Variant
    Dim dirmade As Boolean
    Dim tLine1 As String
    Dim tLine2 As String
    Dim tLine3 As String
    Dim selsets As AcSmSheetSelSets
    Dim selset As AcSmSheetSelSet
    Dim tselset As AcSmSheetSelSet
    Dim ssMade As Boolean
    Dim ttitle As String
    Dim repTemp As String
    On Error GoTo ErrHandler
    ssMade = False
    Set comp = compEnum.Next()
    dirmade = False
    ' loop through till the component is Nothing
    Do While Not comp Is Nothing
      'if the component is a sheet, then...
      If comp.GetTypeName = "AcSmSheet" Then
            'loop through all the sheets.
            'Call LoopThroughSheetsPop(sset.GetSheetEnumerator)
            Dim s As AcSmSheet
            Set s = comp
            Dim sNumber As String
            Dim sTitle As String
            sNumber = s.GetNumber
            'tLine1 = GetCSSProperties("Drawing Title Line 1", s)
            'tLine2 = GetCSSProperties("Drawing Title Line 2", s)
            'tLine3 = GetCSSProperties("Drawing Title Line 3", s)
            'If tLine1 = "%%032" Then
            '    tLine1 = ""
            'End If
            'If tLine2 = "%%032" Then
            '    tLine2 = ""
            'End If
            'If tLine3 = "%%032" Then
            '    tLine3 = ""
            'End If
            'If Not tLine1 = "" Then
            '    If Not tLine2 = "" Then
            '      If Not tLine3 = "" Then
            '            ttitle = tLine1 & " " & tLine2 & " " & tLine3
            '      Else
            '            ttitle = tLine1 & " " & tLine2
            '      End If
            '    Else
            '      If Not tLine3 = "" Then
            '            ttitle = tLine1 & " " & tLine3
            '      Else
            '            ttitle = tLine1
            '      End If
            '    End If
            'Else
            '    If Not tLine2 = "" Then
            '      If Not tLine3 = "" Then
            '            ttitle = tLine2 & " " & tLine3
            '      Else
            '            ttitle = tLine2
            '      End If
            '    Else
            '      If Not tLine3 = "" Then
            '            ttitle = tLine3
            '      End If
            '    End If
            'End If
            '
            'If Not ttitle = "" Then
            '    s.SetTitle ttitle
            'End If
            sTitle = s.GetTitle
            Set lyOut = s.GetLayout
            lyName = lyOut.ResolveFileName
            If sNumber = dNum Then
                If Not pstamp = "" Then
                  ChangeProperties "Preliminary Stamp", pstamp, s
                End If
                If Not pLines = "" Then
                  ChangeProperties "ProjectLayer", pLines, s
                End If
                If Not tLines = "" Then
                  ChangeProperties "TitleLayer", tLines, s
                End If
                If Not ssetName = "" Then
                  newSelSet.Add s
                End If
                If Not chk = "" Then
                  ChangeProperties "Checked By", chk, s
                End If
                If Not des = "" Then
                  ChangeProperties "Designed By", des, s
                End If
                If Not chrg = "" Then
                  ChangeProperties "In Charge Of", chrg, s
                End If
                If Not dwn = "" Then
                  ChangeProperties "Drawn By", dwn, s
                End If
                If Not scl = "" Then
                  ChangeProperties "Scale", scl, s
                End If
                If Not ptitle = "" Then
                  ChangeProperties "Location", ptitle, s
                  'ChangeProperties "Drawing Title Line 1", ptitle, s
                End If
                If Not repTxt = "" Then
                  repTemp = PropReplaceCombo.Column(0, PropReplaceCombo.ListIndex)
                  ChangeProperties repTemp, repTxt, s
                End If
                If Not rdesc = "" Then
                  If wipeClean = True Then
                        ChangeProperties "Revision Number 0", "0", s
                        ChangeProperties "Description of revision 0", rdesc, s
                        ChangeProperties "Date of Revision 0", rdate, s
                        ChangeProperties "Initials of Rev 0 Reviewer", rinit, s
                        
                        ChangeProperties "Revision Number 1", "%%032", s
                        ChangeProperties "Description of Revision 1", "%%032", s
                        ChangeProperties "Date of Revision 1", "%%032", s
                        ChangeProperties "Initials of Rev 1 Reviewer", "%%032", s
                        
                        ChangeProperties "Revision Number 2", "%%032", s
                        ChangeProperties "Description of Revision 2", "%%032", s
                        ChangeProperties "Date of Revision 2", "%%032", s
                        ChangeProperties "Initials of Rev 2 Reviewer", "%%032", s
                        
                        ChangeProperties "Revision Number 3", "%%032", s
                        ChangeProperties "Description of Revision 3", "%%032", s
                        ChangeProperties "Date of Revision 3", "%%032", s
                        ChangeProperties "Initials of Rev 3 Reviewer", "%%032", s
                        
                        ChangeProperties "Revision Number 4", "%%032", s
                        ChangeProperties "Description of Revision 4", "%%032", s
                        ChangeProperties "Date of Revision 4", "%%032", s
                        ChangeProperties "Initials of Rev 4 Reviewer", "%%032", s
                  Else
                        If GetCSSProperties("Date of Revision 4", s) = "%%032" Then
                            If GetCSSProperties("Date of Revision 3", s) = "%%032" Then
                              If GetCSSProperties("Date of Revision 2", s) = "%%032" Then
                                    If GetCSSProperties("Date of Revision 1", s) = "%%032" Then
                                        If GetCSSProperties("Date of Revision 0", s) = "%%032" Then
                                          If rtype = "L" Then
                                                ChangeProperties "Revision Number 0", "A", s
                                          Else
                                                ChangeProperties "Revision Number 0", "0", s
                                          End If
                                          ChangeProperties "Description of revision 0", rdesc, s
                                          ChangeProperties "Date of Revision 0", rdate, s
                                          ChangeProperties "Initials of Rev 0 Reviewer", rinit, s
                                        Else
                                          rNumTemp = GetCSSProperties("Revision Number 0", s)
                                          If rtype = "L" Then
                                                rnNext = AddLetter(rNumTemp)
                                          Else
                                                If IsNumeric(rNumTemp) Then
                                                    rnVar = rNumTemp
                                                    rnVar = rnVar + 1
                                                    rnNext = rnVar
                                                Else
                                                    rnNext = "0"
                                                End If
                                          End If
                                          ChangeProperties "Revision Number 1", rnNext, s
                                          ChangeProperties "Description of Revision 1", rdesc, s
                                          ChangeProperties "Date of Revision 1", rdate, s
                                          ChangeProperties "Initials of Rev 1 Reviewer", rinit, s
                                        End If
                                    Else
                                        rNumTemp = GetCSSProperties("Revision Number 1", s)
                                        If rtype = "L" Then
                                          rnNext = AddLetter(rNumTemp)
                                        Else
                                          If IsNumeric(rNumTemp) Then
                                                rnVar = rNumTemp
                                                rnVar = rnVar + 1
                                                rnNext = rnVar
                                          Else
                                                rnNext = "0"
                                          End If
                                        End If
                                        ChangeProperties "Revision Number 2", rnNext, s
                                        ChangeProperties "Description of Revision 2", rdesc, s
                                        ChangeProperties "Date of Revision 2", rdate, s
                                        ChangeProperties "Initials of Rev 2 Reviewer", rinit, s
                                    End If
                              Else
                                    rNumTemp = GetCSSProperties("Revision Number 2", s)
                                    If rtype = "L" Then
                                        rnNext = AddLetter(rNumTemp)
                                    Else
                                        If IsNumeric(rNumTemp) Then
                                          rnVar = rNumTemp
                                          rnVar = rnVar + 1
                                          rnNext = rnVar
                                        Else
                                          rnNext = "0"
                                        End If
                                    End If
                                    ChangeProperties "Revision Number 3", rnNext, s
                                    ChangeProperties "Description of Revision 3", rdesc, s
                                    ChangeProperties "Date of Revision 3", rdate, s
                                    ChangeProperties "Initials of Rev 3 Reviewer", rinit, s
                              End If
                            Else
                              rNumTemp = GetCSSProperties("Revision Number 3", s)
                              If rtype = "L" Then
                                    rnNext = AddLetter(rNumTemp)
                              Else
                                    If IsNumeric(rNumTemp) Then
                                        rnVar = rNumTemp
                                        rnVar = rnVar + 1
                                        rnNext = rnVar
                                    Else
                                        rnNext = "0"
                                    End If
                              End If
                              ChangeProperties "Revision Number 4", rnNext, s
                              ChangeProperties "Description of Revision 4", rdesc, s
                              ChangeProperties "Date of Revision 4", rdate, s
                              ChangeProperties "Initials of Rev 4 Reviewer", rinit, s
                            End If
                        Else
                            rNumTemp = GetCSSProperties("Revision Number 4", s)
                            If rtype = "L" Then
                              rnNext = AddLetter(rNumTemp)
                            Else
                              If IsNumeric(rNumTemp) Then
                                    rnVar = rNumTemp
                                    rnVar = rnVar + 1
                                    rnNext = rnVar
                              Else
                                    rnNext = "0"
                              End If
                            End If
                            ChangeProperties "Revision Number 0", GetCSSProperties("Revision Number 1", s), s
                            ChangeProperties "Description of revision 0", GetCSSProperties("Description of Revision 1", s), s
                            ChangeProperties "Date of Revision 0", GetCSSProperties("Date of Revision 1", s), s
                            ChangeProperties "Initials of Rev 0 Reviewer", GetCSSProperties("Initials of Rev 1 Reviewer", s), s
                           
                            ChangeProperties "Revision Number 1", GetCSSProperties("Revision Number 2", s), s
                            ChangeProperties "Description of Revision 1", GetCSSProperties("Description of Revision 2", s), s
                            ChangeProperties "Date of Revision 1", GetCSSProperties("Date of Revision 2", s), s
                            ChangeProperties "Initials of Rev 1 Reviewer", GetCSSProperties("Initials of Rev 2 Reviewer", s), s
                           
                            ChangeProperties "Revision Number 2", GetCSSProperties("Revision Number 3", s), s
                            ChangeProperties "Description of Revision 2", GetCSSProperties("Description of Revision 3", s), s
                            ChangeProperties "Date of Revision 2", GetCSSProperties("Date of Revision 3", s), s
                            ChangeProperties "Initials of Rev 2 Reviewer", GetCSSProperties("Initials of Rev 3 Reviewer", s), s
                           
                            ChangeProperties "Revision Number 3", GetCSSProperties("Revision Number 4", s), s
                            ChangeProperties "Description of Revision 3", GetCSSProperties("Description of Revision 4", s), s
                            ChangeProperties "Date of Revision 3", GetCSSProperties("Date of Revision 4", s), s
                            ChangeProperties "Initials of Rev 3 Reviewer", GetCSSProperties("Initials of Rev 4 Reviewer", s), s
                           
                            ChangeProperties "Revision Number 4", rnNext, s
                            ChangeProperties "Description of Revision 4", rdesc, s
                            ChangeProperties "Date of Revision 4", rdate, s
                            ChangeProperties "Initials of Rev 4 Reviewer", rinit, s
                        End If
                        ChangeRevProps rnNext, rdate, s
                  End If
                End If
            End If
    ElseIf comp.GetTypeName = "AcSmSubset" Then
            Dim sset As AcSmSubset
            Set sset = comp
            'loop through all the sheets.
            Call LoopThroughSheetsSet(sset.GetSheetEnumerator)
      End If
      'next
      Set comp = compEnum.Next()
    Loop
    GoTo Exit_Here
ErrHandler:
Select Case Err.Number
    Case -2147467259
      Err.Clear
      Resume
    Case Else
      MsgBox Err.Number & ":" & Err.Description, vbOKOnly, "Error " & Err.Number
      GoTo Exit_Here
End Select
Exit_Here:
End Sub
这是完成工作的地方
请注意它是如何调用ChangeProperties的,将属性标题作为字符串、所需值和工作表发送的
如果你通过并替换所有;修订号0“;使用自定义图纸属性的标题,然后运行SheetSetSheet。SSFormStart您将看到它在做什么
让我为您编写一组例程,这些例程将请求您要获取其值的自定义属性,并要求您通过输入框进行更改
页: [1] 2
查看完整版本: 图纸集中的自定义道具