Community
Inventor - Deutsch
Das Forum für alle Fragen rund um Autodesk Inventor, iLogic, Factory Design, Automation und mehr. Der Ort zum Fragen stellen, Antworten erhalten und Wissen teilen.
abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 

IV 2024.1: Steuern von Oberflächenangaben und Form- und Lagetoleranzen

3 ANTWORTEN 3
GELÖST
Antworten
Nachricht 1 von 4
tobias.geibA36DL
272 Aufrufe, 3 Antworten

IV 2024.1: Steuern von Oberflächenangaben und Form- und Lagetoleranzen

tobias.geibA36DL
Contributor
Contributor

Hallo liebe Gemeinde,

 

mein Ziel ist es, die Angaben zu den Oberflächen und Lagetoleranzen anpassen zu können, ohne dies manuell erledigen zu müssen.

 

Mein erster Gedanke wäre, einen Parameter für das Feld der Oberflächenangabe zu hinterlegen und diesem dann jeweils den passenden Wert zuzuweisen. Leider konnte ich dort keinen Parameter hinterlegen. Dies habe ich sowohl in der Oberflächenangabe auf der Zeichnung als auch im Modell versucht.

 

Der nächste Gedanke wäre, einen Weg zu finden, über iLogic direkt auf das Feld zugreifen zu können und damit den Wert anzupassen.

 

Dazu finde ich leider keinerlei Infomationen.

 

Hat jemand Informationen, wie man das beschriebene Problem lösen kann oder einen weiteren Lösungsansatz, den ich bislang noch nicht bedacht habe?

 

Mit freundlichsten Grüßen

Tobias

0 „Gefällt mir“-Angaben

IV 2024.1: Steuern von Oberflächenangaben und Form- und Lagetoleranzen

Hallo liebe Gemeinde,

 

mein Ziel ist es, die Angaben zu den Oberflächen und Lagetoleranzen anpassen zu können, ohne dies manuell erledigen zu müssen.

 

Mein erster Gedanke wäre, einen Parameter für das Feld der Oberflächenangabe zu hinterlegen und diesem dann jeweils den passenden Wert zuzuweisen. Leider konnte ich dort keinen Parameter hinterlegen. Dies habe ich sowohl in der Oberflächenangabe auf der Zeichnung als auch im Modell versucht.

 

Der nächste Gedanke wäre, einen Weg zu finden, über iLogic direkt auf das Feld zugreifen zu können und damit den Wert anzupassen.

 

Dazu finde ich leider keinerlei Infomationen.

 

Hat jemand Informationen, wie man das beschriebene Problem lösen kann oder einen weiteren Lösungsansatz, den ich bislang noch nicht bedacht habe?

 

Mit freundlichsten Grüßen

Tobias

3 ANTWORTEN 3
Nachricht 2 von 4
richterBKSAC
als Antwort auf: tobias.geibA36DL

richterBKSAC
Advocate
Advocate

Hi Tobias,

 

ich gehe mal davon aus, dass du alle Oberflächen und Lagetoleranzen auf der Zeichnung auf einmal ändern möchtest?

Falls nicht müsstest du noch eine if..then Abfrage einbauen.

If ThisDoc.Document.DocumentType = DocumentTypeEnum.kDrawingDocumentObject Then
	Dim activesheet As Sheet = ThisDrawing.ActiveSheet.Sheet
	Dim sts As SurfaceTextureSymbols = activesheet.SurfaceTextureSymbols
	For Each symbol As SurfaceTextureSymbol In sts
		Dim symboldef As SurfaceTextureDINDefinition = symbol.Definition
		symboldef.FirstRequirement = "Rz16"
	Next
Else 
	Exit Sub
End If

Weitere Eigenschaften findest du im Inventor unter Hilfe -> Programmierung/API-Hilfe - > SurfaceTextureDINDefinition

If ThisDoc.Document.DocumentType = DocumentTypeEnum.kDrawingDocumentObject Then
	Dim activesheet As Sheet = ThisDrawing.ActiveSheet.Sheet
	Dim fcf As FeatureControlFrames = activesheet.FeatureControlFrames
	For Each frame As FeatureControlFrame In fcf
		Dim framerow As FeatureControlFrameRow = frame.FeatureControlFrameRows.Item(1)
		framerow.DatumOne = "A"
		framerow.GeometricCharacteristic = kCircularity
		framerow.Tolerance = "2"
	Next
Else 
	Exit Sub
End If

 Weitere Symbole findest du im Inventor unter Hilfe -> Programmierung/API-Hilfe - > GeometricCharacteristicEnum

 

Das ganze könnte man auch noch mit Eingabeaufforderung und einer Änderung von nur ausgewählten Oberflächen/Lagetoleranzen erweitern.

 

Grüße

Matthias

Hi Tobias,

 

ich gehe mal davon aus, dass du alle Oberflächen und Lagetoleranzen auf der Zeichnung auf einmal ändern möchtest?

Falls nicht müsstest du noch eine if..then Abfrage einbauen.

If ThisDoc.Document.DocumentType = DocumentTypeEnum.kDrawingDocumentObject Then
	Dim activesheet As Sheet = ThisDrawing.ActiveSheet.Sheet
	Dim sts As SurfaceTextureSymbols = activesheet.SurfaceTextureSymbols
	For Each symbol As SurfaceTextureSymbol In sts
		Dim symboldef As SurfaceTextureDINDefinition = symbol.Definition
		symboldef.FirstRequirement = "Rz16"
	Next
Else 
	Exit Sub
End If

Weitere Eigenschaften findest du im Inventor unter Hilfe -> Programmierung/API-Hilfe - > SurfaceTextureDINDefinition

If ThisDoc.Document.DocumentType = DocumentTypeEnum.kDrawingDocumentObject Then
	Dim activesheet As Sheet = ThisDrawing.ActiveSheet.Sheet
	Dim fcf As FeatureControlFrames = activesheet.FeatureControlFrames
	For Each frame As FeatureControlFrame In fcf
		Dim framerow As FeatureControlFrameRow = frame.FeatureControlFrameRows.Item(1)
		framerow.DatumOne = "A"
		framerow.GeometricCharacteristic = kCircularity
		framerow.Tolerance = "2"
	Next
Else 
	Exit Sub
End If

 Weitere Symbole findest du im Inventor unter Hilfe -> Programmierung/API-Hilfe - > GeometricCharacteristicEnum

 

Das ganze könnte man auch noch mit Eingabeaufforderung und einer Änderung von nur ausgewählten Oberflächen/Lagetoleranzen erweitern.

 

Grüße

Matthias

Nachricht 3 von 4
tobias.geibA36DL
als Antwort auf: richterBKSAC

tobias.geibA36DL
Contributor
Contributor

Hallo Matthias,

 

vielen Dank für deine Antwort. Du hast mir schon einmal sehr weitergeholfen. 🙂

Ich würde gerne nur bestimmte Oberflächenangaben bzw. Form- und Lagetoleranzen anpassen.

An dieser Stelle frage ich mich, wie ich eine spezifische Oberflächenangabe bzw. Form- und Lagetoleranzen auswählen kann.

Leider habe ich in der Hilfe nicht die beschriebenen Stellen gefunden, über die man mehr zu den Methoden herausfinden kann.

Ich würde mich freuen, wenn ich einen Link bekommen könnte, der mich auf die richtige Seite der Hilfe leitet.

 

Schonmal vielen Dank im Voraus.

 

Grüße

Tobias

 

0 „Gefällt mir“-Angaben

Hallo Matthias,

 

vielen Dank für deine Antwort. Du hast mir schon einmal sehr weitergeholfen. 🙂

Ich würde gerne nur bestimmte Oberflächenangaben bzw. Form- und Lagetoleranzen anpassen.

An dieser Stelle frage ich mich, wie ich eine spezifische Oberflächenangabe bzw. Form- und Lagetoleranzen auswählen kann.

Leider habe ich in der Hilfe nicht die beschriebenen Stellen gefunden, über die man mehr zu den Methoden herausfinden kann.

Ich würde mich freuen, wenn ich einen Link bekommen könnte, der mich auf die richtige Seite der Hilfe leitet.

 

Schonmal vielen Dank im Voraus.

 

Grüße

Tobias

 

Nachricht 4 von 4
richterBKSAC
als Antwort auf: tobias.geibA36DL

richterBKSAC
Advocate
Advocate
Akzeptierte Lösung

Hi Tobias,

 

keine Ursache. Außer im Forum oder die API-Hilfe nach SelectSet zu suchen wüsste ich spontan keinen Link.

Deshalb hier eine Idee, wie du es umsetzen könntest.

Sub main()
	If ThisDoc.Document.DocumentType = DocumentTypeEnum.kDrawingDocumentObject Then

		If ThisDoc.Document.SelectSet.Count = 0 Then
			MsgBox("Nichts ausgewählt",,"Fehler")
			Exit Sub
		End If
		
		Dim selection As SelectSet = ThisDoc.Document.SelectSet
		
		If selection.Item(1).Type = ObjectTypeEnum.kSurfaceTextureSymbolObject Then
			Oberflächen_ändern(selection)
		ElseIf selection.Item(1).Type = ObjectTypeEnum.kFeatureControlFrameObject Then
			Lagetoleranzen_ändern(selection)
		End If
	Else 
		Exit Sub
	End If
	
End Sub

Sub Oberflächen_ändern(selected As SelectSet)
	Dim new_val As String = get_user_input("Oberflächenwert")

	For Each symbol As SurfaceTextureSymbol In selected
		Dim symboldef As SurfaceTextureDINDefinition = symbol.Definition
		symboldef.FirstRequirement = new_val
	Next
End Sub

Sub Lagetoleranzen_ändern(selected As SelectSet)
	Dim bezug As String = get_user_input("Bezug")
	Dim toleranz As String = get_user_input("Toleranz")
	Dim symbollist As New ArrayList
	symbollist.Add("Geradheit")
	symbollist.Add("Ebenheit")
	symbollist.Add("Rundheit")
	symbollist.Add("Zylindrizität")
	symbollist.Add("Profilform (Linie)")
	symbollist.Add("Profilform (Fläche)")
	symbollist.Add("Winkel")
	symbollist.Add("Rechtwinkligkeit")
	symbollist.Add("Parallelität")
	symbollist.Add("Position")
	symbollist.Add("Konzentrität/Koaxialität")
	symbollist.Add("Rundlauf")
	symbollist.Add("Gesamtrundlauf")
	symbollist.Add("Symmetrie")
	
	Dim sel_symbol As String = ""
	While sel_symbol Is ""
		sel_symbol = InputListBox("Bitte Symbol auswählen", symbollist, symbollist(0), Title := "Symbolauswahl", ListName := "Symbole")
	End While
		
	Dim symbol As GeometricCharacteristicEnum
	Select Case sel_symbol
		Case "Geradheit"
			symbol = GeometricCharacteristicEnum.kStraightness
		Case "Ebenheit"
			symbol = GeometricCharacteristicEnum.kFlatness
		Case "Rundheit"
			symbol = GeometricCharacteristicEnum.kCircularity
		Case "Zylindrizität"
			symbol = GeometricCharacteristicEnum.kCylindricity
		Case "Profilform (Linie)"
			symbol = GeometricCharacteristicEnum.kProfileOfAnyLine
		Case "Profilform (Fläche)"
			symbol = GeometricCharacteristicEnum.kProfileOfAnySurface
		Case "Winkel"
			symbol = GeometricCharacteristicEnum.kAngularity
		Case "Rechtwinkligkeit"
			symbol = GeometricCharacteristicEnum.kPerpendicularity
		Case "Parallelität"
			symbol = GeometricCharacteristicEnum.kParallelism
		Case "Position"
			symbol = GeometricCharacteristicEnum.kPosition
		Case "Konzentrität/Koaxialität"
			symbol = GeometricCharacteristicEnum.kConcentricityAndCoaxiality
		Case "Rundlauf"
			symbol = GeometricCharacteristicEnum.kCircularRunout
		Case "Gesamtrundlauf"
			symbol = GeometricCharacteristicEnum.kTotalRunout
		Case "Symmetrie"
			symbol = GeometricCharacteristicEnum.kSymmetry
	End Select
	For Each frame As FeatureControlFrame In selected
		Dim framerow As FeatureControlFrameRow = frame.FeatureControlFrameRows.Item(1)
		framerow.DatumOne = bezug
		framerow.GeometricCharacteristic = symbol
		framerow.Tolerance = toleranz
	Next
End Sub

Function get_user_input(val_name As String) As String
	Dim new_value As String = ""
	While new_value = ""
		new_value = InputBox("Bitte den neuen Wert eingeben", val_name, "")
	End While
	Return new_value
End Function

 

Grüße

Matthias

Hi Tobias,

 

keine Ursache. Außer im Forum oder die API-Hilfe nach SelectSet zu suchen wüsste ich spontan keinen Link.

Deshalb hier eine Idee, wie du es umsetzen könntest.

Sub main()
	If ThisDoc.Document.DocumentType = DocumentTypeEnum.kDrawingDocumentObject Then

		If ThisDoc.Document.SelectSet.Count = 0 Then
			MsgBox("Nichts ausgewählt",,"Fehler")
			Exit Sub
		End If
		
		Dim selection As SelectSet = ThisDoc.Document.SelectSet
		
		If selection.Item(1).Type = ObjectTypeEnum.kSurfaceTextureSymbolObject Then
			Oberflächen_ändern(selection)
		ElseIf selection.Item(1).Type = ObjectTypeEnum.kFeatureControlFrameObject Then
			Lagetoleranzen_ändern(selection)
		End If
	Else 
		Exit Sub
	End If
	
End Sub

Sub Oberflächen_ändern(selected As SelectSet)
	Dim new_val As String = get_user_input("Oberflächenwert")

	For Each symbol As SurfaceTextureSymbol In selected
		Dim symboldef As SurfaceTextureDINDefinition = symbol.Definition
		symboldef.FirstRequirement = new_val
	Next
End Sub

Sub Lagetoleranzen_ändern(selected As SelectSet)
	Dim bezug As String = get_user_input("Bezug")
	Dim toleranz As String = get_user_input("Toleranz")
	Dim symbollist As New ArrayList
	symbollist.Add("Geradheit")
	symbollist.Add("Ebenheit")
	symbollist.Add("Rundheit")
	symbollist.Add("Zylindrizität")
	symbollist.Add("Profilform (Linie)")
	symbollist.Add("Profilform (Fläche)")
	symbollist.Add("Winkel")
	symbollist.Add("Rechtwinkligkeit")
	symbollist.Add("Parallelität")
	symbollist.Add("Position")
	symbollist.Add("Konzentrität/Koaxialität")
	symbollist.Add("Rundlauf")
	symbollist.Add("Gesamtrundlauf")
	symbollist.Add("Symmetrie")
	
	Dim sel_symbol As String = ""
	While sel_symbol Is ""
		sel_symbol = InputListBox("Bitte Symbol auswählen", symbollist, symbollist(0), Title := "Symbolauswahl", ListName := "Symbole")
	End While
		
	Dim symbol As GeometricCharacteristicEnum
	Select Case sel_symbol
		Case "Geradheit"
			symbol = GeometricCharacteristicEnum.kStraightness
		Case "Ebenheit"
			symbol = GeometricCharacteristicEnum.kFlatness
		Case "Rundheit"
			symbol = GeometricCharacteristicEnum.kCircularity
		Case "Zylindrizität"
			symbol = GeometricCharacteristicEnum.kCylindricity
		Case "Profilform (Linie)"
			symbol = GeometricCharacteristicEnum.kProfileOfAnyLine
		Case "Profilform (Fläche)"
			symbol = GeometricCharacteristicEnum.kProfileOfAnySurface
		Case "Winkel"
			symbol = GeometricCharacteristicEnum.kAngularity
		Case "Rechtwinkligkeit"
			symbol = GeometricCharacteristicEnum.kPerpendicularity
		Case "Parallelität"
			symbol = GeometricCharacteristicEnum.kParallelism
		Case "Position"
			symbol = GeometricCharacteristicEnum.kPosition
		Case "Konzentrität/Koaxialität"
			symbol = GeometricCharacteristicEnum.kConcentricityAndCoaxiality
		Case "Rundlauf"
			symbol = GeometricCharacteristicEnum.kCircularRunout
		Case "Gesamtrundlauf"
			symbol = GeometricCharacteristicEnum.kTotalRunout
		Case "Symmetrie"
			symbol = GeometricCharacteristicEnum.kSymmetry
	End Select
	For Each frame As FeatureControlFrame In selected
		Dim framerow As FeatureControlFrameRow = frame.FeatureControlFrameRows.Item(1)
		framerow.DatumOne = bezug
		framerow.GeometricCharacteristic = symbol
		framerow.Tolerance = toleranz
	Next
End Sub

Function get_user_input(val_name As String) As String
	Dim new_value As String = ""
	While new_value = ""
		new_value = InputBox("Bitte den neuen Wert eingeben", val_name, "")
	End While
	Return new_value
End Function

 

Grüße

Matthias

Sie finden nicht, was Sie suchen? Fragen Sie die Community oder teilen Sie Ihr Wissen mit anderen.

In Foren veröffentlichen  

Autodesk Design & Make Report