Also so der aktuelle Stand:
'----------------------------------------
Sub CATMain()
'Fehlerbehandlung / Abfrage des aktiven Dokuments
If CATIA.Documents.Count = 0 Then
Box = MsgBox("Es wurde kein aktives Dokument identifiziert!!!" + Chr(10) + "-------------------------------------------------------" + Chr(10) + "Bitte öffnen Sie zuerst ein Dokument und starten Sie" + Chr(10) + "dann das Kantteilmakro erneut.", vbInformation, "Kein ActiveDocument!!!")
Exit Sub
End If
Dim oDocument As Document
Set oDocument = CATIA.ActiveDocument
If TypeName(oDocument) <> "PartDocument" Then
Box = MsgBox("Es wurde kein aktives Part identifiziert!!!" + Chr(10) + "-------------------------------------------------------" + Chr(10) + "Das Kantteilmakro wurde abgebrochen.", vbInformation, "Kein Part!!!")
Exit Sub
End If
'----------------------------------------
'----------------------------------------
'Erstellung der Parameter und Befüllung
Dim partDocument1 As Document
Set partDocument1 = CATIA.ActiveDocument
Dim part1 As Part
Set part1 = partDocument1.Part
Dim sStatus As String
'----------------------------------------
'Parametererstellung Schenkel A & Verlinkung mit dem Maß
Dim Selection As Object
Set Selection = partDocument1.Selection
Selection.Clear
ReDim sFilter(0)
Msgbox "Schenkel A auswählen!"
sFilter(0) = "Constraint"
sStatus = Selection.SelectElement2(sFilter, "Schenkel A auswählen!", True)
If sStatus = "Normal" Then
If (sStatus = "Cancel") Then
Exit Sub
End If
Dim a As Parameters
Set a = part1.Parameters
Dim length1 As Dimension
Set length1 = a.CreateDimension("", "LENGTH", 0.000000)
length1.Rename "a"
Dim strParameterName as string
strParameterName = part1.Parameters.GetNameToUseInRelation(Selection.Item2(1).value.Dimension)
Dim relations1 As Relations
Set relations1 = part1.Relations
Dim formula1 As Formula
Set formula1 = relations1.CreateFormula("Formula_a", "", length1, strParameterName )
End If
Selection.Clear
'----------------------------------------
'Parametererstellung Schenkel B & Verlinkung mit dem Maß
ReDim sFilter(0)
Msgbox "Schenkel B auswählen!"
sFilter(0) = "Constraint"
sStatus = Selection.SelectElement2(sFilter, "Schenkel B auswählen!", True)
If sStatus = "Normal" Then
If (sStatus = "Cancel") Then
Exit Sub
End If
Dim b As Parameters
Set b = part1.Parameters
Dim length2 As Dimension
Set length2 = b.CreateDimension("", "LENGTH", 0.000000)
length2.Rename "b"
strParameterName = part1.Parameters.GetNameToUseInRelation(Selection.Item2(1).value.Dimension)
Dim relations2 As Relations
Set relations2 = part1.Relations
Dim formula2 As Formula
Set formula2 = relations2.CreateFormula("Formula_b", "", length2, strParameterName )
End If
Selection.Clear
'----------------------------------------
'Parametererstellung Biegeradius & Verlinkung mit dem Maß
ReDim sFilter(0)
Msgbox "Biegeradius auswählen!"
sFilter(0) = "Constraint"
sStatus = Selection.SelectElement2(sFilter, "Biegeradius auswählen!", True)
If sStatus = "Normal" Then
If (sStatus = "Cancel") Then
Exit Sub
End If
Dim r As Parameters
Set r = part1.Parameters
Dim length3 As Dimension
Set length3 = r.CreateDimension("", "LENGTH", 0.000000)
length3.Rename "r"
strParameterName = part1.Parameters.GetNameToUseInRelation(Selection.Item2(1).value.Dimension)
Dim relations3 As Relations
Set relations3 = part1.Relations
Dim formula3 As Formula
Set formula3 = relations3.CreateFormula("Formula_r", "", length3, strParameterName )
End If
Selection.Clear
'----------------------------------------
'Parametererstellung Blechdicke & Verlinkung mit dem Maß
Dim s As Parameters
Set s = part1.Parameters
Dim length4 As Dimension
Set length4 = s.CreateDimension("", "LENGTH", 8.000000)
length4.Rename "s"
'----------------------------------------
'Parametererstellung Biegewinkel & Verlinkung mit dem Maß
ReDim sFilter(0)
Msgbox "Biegewinkel auswählen!"
sFilter(0) = "Constraint"
sStatus = Selection.SelectElement2(sFilter, "Biegewinkel auswählen!", True)
If sStatus = "Normal" Then
If (sStatus = "Cancel") Then
Exit Sub
End If
Dim Winkel As Parameters
Set Winkel = part1.Parameters
Dim angle1 As Dimension
Set angle1 = Winkel.CreateDimension("", "ANGLE", 0.000000)
angle1.Rename "Winkel"
strParameterName = part1.Parameters.GetNameToUseInRelation(Selection.Item2(1).value.Dimension)
Dim relations5 As Relations
Set relations5 = part1.Relations
Dim formula5 As Formula
Set formula5 = relations5.CreateFormula("Formula_Winkel", "", angle1, strParameterName )
End If
Selection.Clear
'----------------------------------------
'Parametererstellung Tan_Winkel & Erstellung und Verlinkung mit der Formel
Dim Tan_Winkel As Parameters
Set Tan_Winkel = part1.Parameters
Dim realParam1 As RealParam
Set realParam1 = Tan_Winkel.CreateReal("", 0.000)
realParam1.Rename "Tan_Winkel"
Dim relations6 As Relations
Set relations6 = part1.Relations
Dim formula6 As Formula
Set formula6 = relations6.CreateFormula("Tan_Winkel", "", realParam1, "tan((180deg-Winkel)/2)" )
'----------------------------------------
'Parametererstellung Abwicklung & Erstellung und Verlinkung mit der Formel
Dim Abwicklung As Parameters
Set Abwicklung = part1.Parameters
Dim length5 As Dimension
Set length5 = Abwicklung.CreateDimension("", "LENGTH", 0.000000)
length5.Rename "Abwicklung"
Dim relations7 As Relations
Set relations7 = part1.Relations
Dim formula7 As Formula
Set formula7 = relations7.CreateFormula("Abwicklung", "", length5, "(a+b)-((2*((r+s)/1mm)*Tan_Winkel-PI*((180deg-Winkel)/180deg)*(r+s/2*(0.65+0.5*log(r/s)))/1mm)*1mm)" )
'Verlinkung des Maßes mit dem Parameter Abwicklung
Wie bekomm ich das Maß der Abwicklung mit dem Parameter Abwicklung verlinkt? Also damit das Maß vom Parameter gesteuert wird?
'----------------------------------------
part1.Update
End Sub
'----------------------------------------
Probleme weiterhin sind alle Maße im 3D sichtbar zu machen und
die Parameter und Formeln für mehrere Kantstellen durch zu nummerieren...
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP