| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: skizzenbemassung referenziert schalten und umgekehrt (1101 mal gelesen)
|
Rodario7 Mitglied Maschinenbautechniker
Beiträge: 85 Registriert: 08.02.2013 Windows 7 64bit Inventor 2013 Visual Basic 2010 Express
|
erstellt am: 10. Mai. 2014 18:40 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, kann mir einer bei einem Problem weiterhelfen? Ich möchte über eine Regel skizzenbemassungen auf Referenz schalten und umgekehrt Referenzierte Masse in "normale" umschalten. Geht das überhaupt? ------------------ Gruß Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 11. Mai. 2014 21:41 <-- editieren / zitieren --> Unities abgeben: Nur für Rodario7
Hallo Dafür ist das DimensionConstraint.Driven-Property zuständig. Bei True wird das Maß von der Geometrie bestimmt, bei False bestimmt das Maß die Geometrie. Aber wie stellst du sicher, daß deine Skizze hinterher vom Solver aufgelöst werden kann? Man kann das zwar auch per API über die SketchObject.Solve Methode anstoßen, aber im Fehlerfall geht's nicht weiter. Dann kommt meines Wissens die übliche Meldung zu nicht aufgelösten Abhängigkeiten usw. ------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rodario7 Mitglied Maschinenbautechniker
Beiträge: 85 Registriert: 08.02.2013 Windows 7 64bit Inventor 2013 Visual Basic 2010 Express
|
erstellt am: 11. Mai. 2014 22:22 <-- editieren / zitieren --> Unities abgeben:
Hm... die Frage mit dem Solver habe ich net ganz verstanden. Ich erkläre mal kurz mein vorgehen. Meine zu erstellende Geometrie kann man als Dreieck betrachten. Nun muss ich verschiedene Eingabemöglichkeiten schaffen, zb. Höhe + Winkel oder Höhe und Länge usw. Das heisst der Winkel ist zum Beispiel ein Ref. Maß und ich schalte den einfach auf "Normalmaß" um und eines der anderen beiden Maße auf Referenz. ------------------ Gruß Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 12. Mai. 2014 13:41 <-- editieren / zitieren --> Unities abgeben: Nur für Rodario7
Hallo Der Solver löst die in der Skizze vorhandenen Bemaßungen und Abhängigkeiten auf und meckert wenn sich zwei widersprechen. Einfaches Beispiel, zwei Skizzenlinien erhalten sowohl eine Parallel- als auch eine Lotrecht-Abhängigkeit. Leuchtet sofort ein, das nur eines von beidem zutreffen kann. Wenn deine Skizze so einfach ist und du nur diese überschaubare Anzahl Abhängigkeiten und Bemaßungen hast, sollte das Problem nicht auftreten. Ich wollte es nur erwähnen. ------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rodario7 Mitglied Maschinenbautechniker
Beiträge: 85 Registriert: 08.02.2013 Windows 7 64bit Inventor 2013 Visual Basic 2010 Express
|
erstellt am: 12. Mai. 2014 13:52 <-- editieren / zitieren --> Unities abgeben:
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 12. Mai. 2014 19:30 <-- editieren / zitieren --> Unities abgeben: Nur für Rodario7
Hallo Unten mal VBA-Beispielcode der Höhe und Länge hin und her schaltet. Da jedes Maß einen fx-Parameter erzeugt, den man sinnvoll benennen kann, könnte man den für eindeutige Identifikation der gesuchten Bemaßung nutzen. Ich geh mal davon aus, daß in der ersten Skizze die Musik spielt. Mit iLogic steh ich auf Kriegsfuß, das verweiger ich solange es geht. Code: Option ExplicitPrivate Sub SwitchDimensions() Dim oPartDoc As PartDocument Set oPartDoc = ThisApplication.ActiveDocument Dim oSketch As PlanarSketch Set oSketch = oPartDoc.ComponentDefinition.Sketches.Item(1) Dim oDimCons As DimensionConstraint For Each oDimCons In oSketch.DimensionConstraints If oDimCons.Parameter.Name = "Laenge" Then If oDimCons.Driven = True Then oDimCons.Driven = False Else oDimCons.Driven = True End If ElseIf oDimCons.Parameter.Name = "Hoehe" Then If oDimCons.Driven = True Then oDimCons.Driven = False Else oDimCons.Driven = True End If End If Next End Sub
------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rodario7 Mitglied Maschinenbautechniker
Beiträge: 85 Registriert: 08.02.2013 Windows 7 64bit Inventor 2013 Visual Basic 2010 Express
|
erstellt am: 13. Mai. 2014 12:02 <-- editieren / zitieren --> Unities abgeben:
Hallo Ralf, ich habe jetzt mal folgenden Code getestet, bekomme aber immer wieder eine Fehlermeldung. Code: Option Explicit Dim oPartDoc as inventor.Partdocument = ThisDoc.DocumentDim oDimCons As DimensionConstraints Dim oSketch As planarsketch = oPartdoc.ComponentDefinition.Sketches.Item (1) For Each oDimCons In oSketch.DimensionConstraints If oDimCons.Parameter.Name = "d3" Then MsgBox("ja") Else MsgBox("nein") End If Next
Den Code habe ich mit der Messagebox geschrieben um zu sehen ob überhaupt etwas ankommt. Die Fehlermeldung: Fehler in Regel: Regel0 in Dokument: para.ipt Das COM-Objekt des Typs "System.__ComObject" kann nicht in den Schnittstellentyp "Inventor.DimensionConstraints" umgewandelt werden. Kannst du da evt. weiterhelfen? ------------------ Gruß Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |