图纸集中的自定义道具
您好,有人有幸在图纸集中编辑自定义属性吗有CUSTOM\u SHEET\u PROP和CUSTOM\uSheetSet\u props。CUSTOM\U SHEET\U PROP将是每个图纸(布局)的特定字段,CUSTOM_SHEETSET_PROP将为所有图纸的字段。如果您的图纸总数中有一个#(例如),您可以将1定义为自定义_SHEET_PROP(字段),将#定义为自定义_SHEETSET_props(字段),因为每个图纸(布局)的第一个数字更改,每个图纸(版面)的第二个数字更改
因此,每当用户更新#(字段)时,布局将动态地重新索引
一旦你开始掌握窍门;真的很酷
无论如何,我们将项目数据写入一个txt文件,通过属性,我们可以读取其中的信息;现在,我需要能够使用字段(自定义道具)来实现这一点,我已经取得了一些进展,很高兴与大家分享我所拥有的,但我只能';我无法到达最后一个拥挤的地方
任何帮助都将不胜感激
谢谢
马克:我在网上查了高低;vba示例等
请给我发一条私人消息,我将在周一下班后发布我的全部代码。我用我在博客上找到的信息(我也会发布那个链接)为我们公司写了一个完整的界面。我们将信息导出到Excel中,以便非CAD人员可以编辑它,并且还有一个导入例程
它主要用于从不同的办公室导入图纸集
Murph
您好,Murph,请检查您的PM,谢谢
标记 标记,
附件是我从这个网站收集的资料:
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
我很感激
我很快就会看一看
标记 请密切注意表单中的代码。这是完成大部分工作的地方
查看Utils函数,了解如何完成基本功能。
好的,墨菲
你的代码看起来很棒,当然还有很多需要改进的地方
我只想能够先编辑自定义道具,然后我一定会仔细查看您发送的所有代码
好的,我现在来看看Utils函数,谢谢
标记
I';我向前跳了一点,但我刚刚注意到你正在使用脚本语言,这很酷;我也经常使用它,我注意到这是一些你抓取用户名和机器的例子
这在这里不起作用,但我不是;不要起诉你是如何获取这些信息的
我一直使用脚本代码来检索这些信息
标记
嘿,Murph,你的代码很好,可以从中获得很多
然而,所有的Excel工作都在进行,这仍然有点复杂。我正在寻找一个非常基本的例子,来改变工作表和工作表中的自定义道具
在我得到它之后,我可以对它进行解释
你有更基本的东西吗
谢谢
标记 标记,
让';让我们一步一步地走一遍,这样你就能从中得到你想要的
我们从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