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: 

Inventor (2018): Alle Toleranzen eines Bauteils anzeigen

18 ANTWORTEN 18
GELÖST
Antworten
Nachricht 1 von 19
WR
Contributor
1861 Aufrufe, 18 Antworten

Inventor (2018): Alle Toleranzen eines Bauteils anzeigen

Hallo Forum,

 

Gibt es eine Möglichkeit, alle in einem Bauteil definierten Toleranzen auf einen Blick anzuzeigen, ohne dass man sich jede Bohrung und Skizze einzeln vornehmen muss?

Wir haben mit dem Parameter-Fenster experimentiert, man muss dazu aber bei der Erstellung der Toleranz zusätzlich eins der bunten Felder (+,-,Dreieck) anklicken. Das ist fehlerträchtig und deswegen würde ich es gerne vermeiden.

 

Vielen Dank schon mal.

 


@WR,

Die Themenüberschrift wurde zum besseren Auffindbarkeit editiert von Dennis.Ossadnik
Original: Alle Toleranzen eines Bauteils anzeigen?


18 ANTWORTEN 18
Nachricht 2 von 19
ca-d.one
als Antwort auf: WR

Hey WR,

 

meiner Meinung nach geht das nicht über Inventor Std.-Funktionen......

 

Ich poste das mal in der Idea Station, wäre schon ziemlich toll, wenn man eine Filter dafür hätte (z.B in der Parameter-Liste)

 

Aber vielleicht hilft dir diese App.

 

Viel Spass beim ausprobieren.

 

LG

+dirk+

 

______________________________________________________
Ihr fandet einen Beitrag hilfreich? Dann vergebt dafür doch Likes!
Eure Frage wurde erfolgreich gelöst? Dann einfach auf den 'Als Lösung akzeptieren'-Button klicken!



Dirk Prante
Inventor Certified Professional<

Nachricht 3 von 19
Juergen_Wagner
als Antwort auf: WR

Auch Hallo, Hallo (Insinderwitz, versteht nur @WR)

 

In welcher Form sollen die Maße mit Toleranz dargestellt werden? ((Excel-)Tabelle, als eingeblendetes Maß am Modell,..)

Welche Informationen soll z.B. die Tabelle enthalten? Soll das so aussehen wie eine Passungsliste, also in etwa so:

 

2018-02-23 13_33_24.png

Nachricht 4 von 19
ca-d.one
als Antwort auf: WR

Hab das mal als Idee angelegt.

 

Kannst es ja mal voten^^

 

LG

+dirk+

 

______________________________________________________
Ihr fandet einen Beitrag hilfreich? Dann vergebt dafür doch Likes!
Eure Frage wurde erfolgreich gelöst? Dann einfach auf den 'Als Lösung akzeptieren'-Button klicken!



Dirk Prante
Inventor Certified Professional<

Nachricht 5 von 19
Juergen_Wagner
als Antwort auf: Juergen_Wagner

Mit dieser iLogicrgel...

 

imports System.IO

Public Sub Main()
	
    Dim partDoc As PartDocument
     partDoc = ThisApplication.ActiveDocument

    Dim partDef As PartComponentDefinition
     partDef = partDoc.ComponentDefinition

    Dim params As Parameters
     params = partDef.Parameters

    Dim modelParams As ModelParameters
     modelParams = params.ModelParameters
    
    Dim modelParam As ModelParameter
    For Each modelParam In modelParams
        Call DisplayToleranceInfo(modelParam)
    Next
	
	process.Start(Dateiname)
End Sub

Public  Dateiname As String = "C:\temp\tol.csv"

Private Sub DisplayToleranceInfo(Param As Parameter)

    Dim tol As Tolerance
     tol = Param.Tolerance
	If Param.Tolerance.HoleTolerance <> "" Then 
		Using sw As New StreamWriter(System.IO.File.Open(Dateiname, FileMode.Append))
    	sw.WriteLine(Param.Name & ";" & Param.Expression & ";" & Param.Tolerance.HoleTolerance  & ";" & Math.Round(tol.Upper,4) & ";" & Math.Round(tol.Lower,4)  & ";" &  ";" & Math.Round(Param.Value * 10 + tol.Upper,4) & ";" & Math.Round(Param.Value *10 + tol.Lower,4)) '& ";" & Param.Tolerance.ToleranceType
	End Using
	End If
	
	If Param.Tolerance.ShaftTolerance <> "" Then 
		Using sw As New StreamWriter(System.IO.File.Open(Dateiname, FileMode.Append))
    	sw.WriteLine(Param.Name & ";" & Param.Expression & ";" &  Param.Tolerance.ShaftTolerance  & ";" & Math.Round(tol.Upper,4) & ";" & Math.Round(tol.Lower,4)  & ";" &  ";" & Math.Round(Param.Value * 10 + tol.Upper,4) & ";" & Math.Round(Param.Value * 10 + tol.Lower,4)) '& ";" & Param.Tolerance.ToleranceType
	End Using
	End If
End Sub

 

...bekommst du dieser XLS-Tabelle der Parameter mit Toleranz

 

2018-02-23 14_10_02.png

 

So verwendest du eine iLogiceegel: 

Inventor automatisieren mit iLogic - Teil 1

 

Wenn die das Programm immer wieder brauchst, mache eine externe Regel

 

 

Nachricht 6 von 19
WR
Contributor
als Antwort auf: Juergen_Wagner

Hallo Dirk, hallo Jürgen,

 

man kommt ja mit Lesen gar nicht hinterher. Vielen Dank schon mal. Das Plugin von Dirk funktioniert soweit, ist aber noch nicht genau das, was ich brauche. Bei Jürgens iLogic sieht man immerhin die Parameternamen.

 

Wir modellieren seit etwa einem Jahr die Toleranzen im Modell. Bei schlampigen Konstrukteuren oder alten Modellen sind die Toleranzen nicht im Modell hinterlegt. Ich möchte nun einfach sehen können, welche Geometrie eine Toleranz hat oder nicht. Das ist der fehlende Punkt bei Euren Lösungsvorschlägen, da sieht man nur die Toleranzen aber keine Zuordnung zum Ort.

 

Keine Ahnung, ob das mit endlichem Aufwand überhaupt besser geht. Ich guck mir jetzt erstmal die iLogic-Regel genauer an.

 

Danke!

Werner

Nachricht 7 von 19
WR
Contributor
als Antwort auf: WR

Hallo Jürgen,

 

das performt bei mir nicht so richtig:

 

FehlermeldungFehlermeldung

C:\temp existiert und ich darf rein schreiben. Excel 2010 ist auch installiert und funktioniert sonst im Zusammenspiel mit Inventor. Jedenfalls mit 2015, mit 2018 hab ich es noch nicht getestet.

 

Gruß,

Werner

Nachricht 8 von 19
WR
Contributor
als Antwort auf: WR

Hab eben Inventor 2018 erfolgreich mit meinem alten Excel 2010 ferngesteuert. Daran liegts also wohl nicht.

Nachricht 9 von 19
Juergen_Wagner
als Antwort auf: WR

Na super, das hättest du auch gleich schreiben können, dann hätte ich mir die Arbeit sparen können.

Vielleicht schaue ich später mal, was sich machen lässt...

Nachricht 10 von 19
Juergen_Wagner
als Antwort auf: WR

Du hast eine IDW auf aber in deiner Frage steht "alle in einem Bauteil definierten Toleranzen " 

Du musst das Bauteil aufmachen.

 

Ich bin raus, bis du sagst:

  1. Ausgehende vom welchem Dateityp
  2. du was aus welchem anderen Dateirtyp 
  3. Warum auslesen willst
  4. und dazu hier Beispieldaten vorliegen.

Sorry, aber das ganze hat mich jetzt 1/2 Stunde gekostet für nichts und darauf habe ich keinen Bock mehr...

Nachricht 11 von 19
Juergen_Wagner
als Antwort auf: Juergen_Wagner

Sodele, jetzt will ich aber nichts mehr hören 😉

 

imports System.IO
Sub Main()
    Dim oDoc As PartDocument
     oDoc = ThisApplication.ActiveDocument

    Dim oFeature As PartFeature
	Dim oFeatureDim As FeatureDimension
	
	Dim Skizze As PlanarSketch
	Dim SkizzeBem As Object
    For Each oFeature In oDoc.ComponentDefinition.Features 

	    For Each oFeatureDim In oFeature.FeatureDimensions
			Call DisplayToleranceInfo(oFeature.Name, oFeatureDim.parameter)
	    Next
	    
	    ' Show all the feature dimensions
	Next	
	
	For Each Skizze In oDoc.ComponentDefinition.Sketches 

	    For Each SkizzeBem In Skizze.DimensionConstraints
			Call DisplayToleranceInfo(Skizze.Name, SkizzeBem.Parameter)
	    Next
	    
	     
	Next	
    process.Start(Dateiname)
End Sub
'Public Sub Main()
	
'    Dim partDoc As PartDocument
'     partDoc = ThisApplication.ActiveDocument

'    Dim partDef As PartComponentDefinition
'     partDef = partDoc.ComponentDefinition

'    Dim params As Parameters
'     params = partDef.Parameters

'    Dim modelParams As ModelParameters
'     modelParams = params.ModelParameters
    
'    Dim modelParam As ModelParameter
'    For Each modelParam In modelParams
'        Call DisplayToleranceInfo(modelParam)
'    Next
	
'	process.Start(Dateiname)
'End Sub

Public  Dateiname As String = "C:\temp\tol.csv"

Private Sub DisplayToleranceInfo(FName As String, Param As Parameter)

    Dim tol As Tolerance
     tol = Param.Tolerance
	 
	
	If Param.Tolerance.HoleTolerance <> "" Then 
		Using sw As New StreamWriter(System.IO.File.Open(Dateiname, FileMode.Append))
    	sw.WriteLine(FName &";" & Param.Name & ";" & Param.Expression & ";" & Param.Tolerance.HoleTolerance  & ";" & Math.Round(tol.Upper,4) & ";" & Math.Round(tol.Lower,4)  & ";" &  ";" & Math.Round(Param.Value * 10 + tol.Upper,4) & ";" & Math.Round(Param.Value *10 + tol.Lower,4)) '& ";" & Param.Tolerance.ToleranceType
	End Using
	End If
	
	If Param.Tolerance.ShaftTolerance <> "" Then 
		Using sw As New StreamWriter(System.IO.File.Open(Dateiname, FileMode.Append))
	
    	sw.WriteLine(FName &";" & Param.Name & ";" & Param.Expression & ";" &  Param.Tolerance.ShaftTolerance  & ";" & Math.Round(tol.Upper,4) & ";" & Math.Round(tol.Lower,4)  & ";" &  ";" & Math.Round(Param.Value * 10 + tol.Upper,4) & ";" & Math.Round(Param.Value * 10 + tol.Lower,4)) '& ";" & Param.Tolerance.ToleranceType
	End Using
	End If
End Sub

 

2018-02-23 15_50_14.png

 

 

Nachricht 12 von 19
WR
Contributor
als Antwort auf: Juergen_Wagner

Hallo Jürgen,

 

jetzt hörst Du trotzdem was von mir: Super! Danke!

 

Es tut mir leid, dass Du für meine unscharfe Frage Zeit verschwendet hast. Ich hatte nicht erwartet, dass sich sofort um mein Problem gekümmert wird. Normalerweise hagelt es erstmal Nachfragen.

 

Du hast natürlich Recht, kaum macht man das iLogic-Ding im Teil auf, schon funktioniert es.

 

Der letzte Schritt, der zur Perfektion fehlt: Kannst Du alle betroffenen Skizzen sichtbar machen? Dann sieht man sofort auch den Ort und muss nicht den Baum nach den Skizzen-Nummern durchsuchen. Vielleicht muss man dazu noch die Anzeige der Bemaßung auf "Toleranz" umschalten, das ist bei unseren alten Modellen auch noch nicht eingestellt.

 

Aber nur, wenns keine Umstände macht.

 

Danke!

Werner

Nachricht 13 von 19
WR
Contributor
als Antwort auf: WR

Nochmal hallo,

 

ich muss leider noch was anmerken: Ein 2. Aufruf scheitert, weil die tol.csv noch offen ist. Ich hab mal testweise ein

 

System.IO.File.Close(Dateiname)

angehängt, ging aber nicht.

 

Gruß,

Werner

Nachricht 14 von 19
WR
Contributor
als Antwort auf: WR

OK, wahlweise kann ich die über Excel auch selbst schließen...

Nachricht 15 von 19
Juergen_Wagner
als Antwort auf: WR

Das mit der Skizze sichtbar machen ist kein Thema. Dann muss anstelle des Namens das Skizzen- oder Elementobjekt übergeben werden und wenn eine Toleranz gefunden wird die Skizze sichtbar gemacht werden bzw. auch das Feature hervorheben werden.
Nachricht 16 von 19
Juergen_Wagner
als Antwort auf: WR

Jetzt habe ich in Summe über eine Stunde "verprogrammiert". Das kostet normalerweise einen Kasten Bier 😉

 

imports System.IO
Sub Main()
    Dim oDoc As PartDocument
    oDoc = ThisApplication.ActiveDocument

    Dim oFeature As PartFeature
	Dim oFeatureDim As FeatureDimension
	
	Dim Skizze As PlanarSketch
	Dim SkizzeBem As Object
    For Each oFeature In oDoc.ComponentDefinition.Features 

	    For Each oFeatureDim In oFeature.FeatureDimensions
			Call DisplayToleranceInfo(oFeature, oFeatureDim.parameter)
	    Next
	    
	    ' Show all the feature dimensions
	Next	
	
	For Each Skizze In oDoc.ComponentDefinition.Sketches 

	    For Each SkizzeBem In Skizze.DimensionConstraints
			Call DisplayToleranceInfo(Skizze, SkizzeBem.Parameter)
	    Next
	    
	     
	Next	
    process.Start(Dateiname)
End Sub

Public  Dateiname As String = "C:\temp\tol.csv" 


Private Sub DisplayToleranceInfo(Obj As Object, Param As Parameter) '(FName As String, Param As Parameter)

    Dim tol As Tolerance
     tol = Param.Tolerance
	 
	
	If Param.Tolerance.HoleTolerance <> "" Then 
		Using sw As New StreamWriter(System.IO.File.Open(Dateiname, FileMode.Append))
    		sw.WriteLine(Obj.Name &";" & Param.Name & ";" & Param.Expression & ";" & Param.Tolerance.HoleTolerance  & ";" & Math.Round(tol.Upper,4) & ";" & Math.Round(tol.Lower,4)  & ";" &  ";" & Math.Round(Param.Value * 10 + tol.Upper,4) & ";" & Math.Round(Param.Value *10 + tol.Lower,4)) '& ";" & Param.Tolerance.ToleranceType
		End Using
		ObjSichtbar(Obj)
	End If
	
	If Param.Tolerance.ShaftTolerance <> "" Then 
		Using sw As New StreamWriter(System.IO.File.Open(Dateiname, FileMode.Append))
	
    		sw.WriteLine(Obj.Name &";" & Param.Name & ";" & Param.Expression & ";" &  Param.Tolerance.ShaftTolerance  & ";" & Math.Round(tol.Upper,4) & ";" & Math.Round(tol.Lower,4)  & ";" &  ";" & Math.Round(Param.Value * 10 + tol.Upper,4) & ";" & Math.Round(Param.Value * 10 + tol.Lower,4)) '& ";" & Param.Tolerance.ToleranceType
		End Using
	ObjSichtbar(Obj)
	End If
End Sub
Private Sub ObjSichtbar(obj As Object)
	Dim oDoc As PartDocument = ThisApplication.ActiveDocument 
	Dim objType As ObjectTypeEnum
     objType = obj.Type
	 'MsgBox(objType.ToString)
	 
     If objType = ObjectTypeEnum.kPlanarSketchObject Then
			'obj.Visible = True
			Call oDoc.SelectSet.Select(obj)	
	Else
			Call oDoc.SelectSet.Select(obj)	
	End If
			
End Sub

Nachricht 17 von 19
WR
Contributor
als Antwort auf: Juergen_Wagner

Voll der Hammer, Alter!

 

Sehr toll, so wollte ich das. Sogar mit temporärer Anzeige der Skizzen, damit man die nicht wieder alle manuell ausblenden muss.

Nice.

 

Bzgl. Kasten Bier: Gerne. Du musst mir nur versprechen, den auch in 1 Stunde auszutrinken. 🙂 Sonst wärs ja überteuert.

 

Werner

Nachricht 18 von 19
S_May
als Antwort auf: WR

....bevor alle besoffen sind von dem ganzen Bier, mach doch mal ein screencast und zeig mal was Du da machst!

Nachricht 19 von 19
WR
Contributor
als Antwort auf: S_May

Gerne. Auch wenn ich für einen screencast derzeit keine Zeit habe; für ein paar Bildschirmfotos reichts.

 

Ich möchte mit diesem Skript sehen, wo in einem Bauteil evtl. Toleranzen angegeben wurden.

 

Bild 1: Toleranzen sind in der Extrusion angegeben, deswegen sieht man keine Skizzen. Dafür kann man die manuell geänderte Bezeichnung der Extrusion

lesen. Im Bauteil sind die Extrusionen hervorgehoben.

 

Bild 2: Hier sieht man alle Skizzen, die Toleranzen enthalten.

 

Dann kann man prüfen, ob alle richtig/vorhanden/vollzählig usw. sind.

 

Prima Sache.

 

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