| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Text ein/aublenden (1251 mal gelesen)
|
Fiedel93felix Mitglied Konstrukteur
Beiträge: 448 Registriert: 19.02.2014 Autodesk Inventor 2014 Microsoft Visual Basic 2010
|
erstellt am: 01. Apr. 2015 08:51 <-- editieren / zitieren --> Unities abgeben:
Hallo alle miteinander. Gibt es eine Möglichkeit Text automatisch ein-/auszublenden? Ich habe eine Zeichnung auf der mehrer Buttons (Texte mit umrandung) angebracht werden sollen. Allerdings sollen diese immer an der gleichen stelle sein, werden sie von Hand eingefügt dauert das erstens lange und zweitens sind sie dann immer willkürlich auf dem Blatt verteilt, jenachdem wo der Konstrukteur grad denk es passt am besten. Kann man diese Buttons irgendwie automatieren? Ich dachte mir über eine Eingabemaske wo man auswählt welche Buttons gewünscht sind. Die Eingabemaske wäre kein Ding nur das ein und ausblenden ist das was Probleme macht. Ohne den Rahmen, d.h. nur den Text, ist kein Problem, da nehm ich ein benutzerdefiniertes iProp und weise dem den entsprechenden Text zu oder lass es leer. Nur der Rahmen macht Probleme.... Ich hoffe auf Hilfe MfG Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2015 Professional Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 02. Jun. 2015 09:48 <-- editieren / zitieren --> Unities abgeben: Nur für Fiedel93felix
|
Fiedel93felix Mitglied Konstrukteur
Beiträge: 448 Registriert: 19.02.2014 Autodesk Inventor 2014 Microsoft Visual Basic 2010
|
erstellt am: 02. Jun. 2015 10:25 <-- editieren / zitieren --> Unities abgeben:
Hallo Chris, Nein so richtig hinbekommen hab ich es nicht ich hab jezt eine "Notlösung" aber die gefällrt mir selber nicht so wirklich..... Du hast wohl eine Möglichkeit gefunden? Wenn ja, bitte lass mich an deinem Wissen Teil haben MfG Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2015 Professional Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 03. Jun. 2015 07:44 <-- editieren / zitieren --> Unities abgeben: Nur für Fiedel93felix
Du könntest dir doch in deinem Template die "Buttons" als Skizziertes Symbol in den Zeichnungsressourcen hinterlegen und dann mit Angabe eines Point per Programm auf der Zeichnung platzieren. Alternative wäre, das Propertie als Text zu platzieren und dann per Programm eine Skizze zu erzeugen, die einen Rahmen drum zieht. Das wäre aber sicherlich der aufwändigere Weg... ------------------ MFG Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 448 Registriert: 19.02.2014 Autodesk Inventor 2014 Microsoft Visual Basic 2010
|
erstellt am: 03. Jun. 2015 07:59 <-- editieren / zitieren --> Unities abgeben:
Also klingt beides genau nach dem was ich brauche.... aber wie ich das umsetzten soll weis ich nicht. Da habe ich auch bis jetzt noch nichts zu gefundenwie man das programmiertechnisch lösen könnte. Hast du schonmal mit so etwas in der Art gearbeitet?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2015 Professional Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 03. Jun. 2015 08:24 <-- editieren / zitieren --> Unities abgeben: Nur für Fiedel93felix
|
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2015 Professional Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 03. Jun. 2015 08:51 <-- editieren / zitieren --> Unities abgeben: Nur für Fiedel93felix
Ist zwar nur ein VBA-Code, aber das umschreiben zu VB.NET kriegste ja locker hin:
Code: Public Sub Symbol()Dim oDrawdoc As DrawingDocument Set oDrawdoc = ThisApplication.ActiveDocument Dim oSheet As sheet Set oSheet = oDrawdoc.ActiveSheet Dim oBorder As Border Set oBorder = oSheet.Border Dim oPlacementPoint As Point2d If Not oBorder Is Nothing Then Set oPlacementPoint = oBorder.RangeBox.MaxPoint Else Set oPlacementPoint = ThisApplication.TransientGeometry.CreatePoint2d(oSheet.Width, oSheet.Height) End If Dim oSymbol As SketchedSymbolDefinition Set oSymbol = oDrawdoc.SketchedSymbolDefinitions.Item("FERTIGUNGSSCHRIFTFELD") Call oSheet.SketchedSymbols.Add(oSymbol, oPlacementPoint) End Sub
------------------ MFG Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 448 Registriert: 19.02.2014 Autodesk Inventor 2014 Microsoft Visual Basic 2010
|
erstellt am: 03. Jun. 2015 09:06 <-- editieren / zitieren --> Unities abgeben:
Oh vielen danke das probier ich nächsate woche mal aus! (eher komm ich leider nicht dazu...) Wie ich sehen konnte ist das jetzt eine Möglichkeit um benutzerdefinierte Symbole an einem bestimmten Punkt zu platzieren Kennst du auch eine Möglichkeit um direkt skizzen selber zu erstellen? Beispielsweiße die umrandung für eine Stückliste?
MfG Felix
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2015 Professional Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 03. Jun. 2015 09:38 <-- editieren / zitieren --> Unities abgeben: Nur für Fiedel93felix
Auch wieder nur VBA, aber funktioniert... Code: Dim oSketch As Sketch Set oSketch = oSheet.Sketches.Add Call oSketch.Edit Call oSketch.SketchLines.AddAsTwoPointRectangle(ThisApplication.TransientGeometry.CreatePoint2d(10, 10), ThisApplication.TransientGeometry.CreatePoint2d(100, 100)) oSketch.ExitEdit
------------------ MFG Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 448 Registriert: 19.02.2014 Autodesk Inventor 2014 Microsoft Visual Basic 2010
|
erstellt am: 03. Jun. 2015 09:40 <-- editieren / zitieren --> Unities abgeben:
|
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2015 Professional Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 03. Jun. 2015 09:58 <-- editieren / zitieren --> Unities abgeben: Nur für Fiedel93felix
|
Fiedel93felix Mitglied Konstrukteur
Beiträge: 448 Registriert: 19.02.2014 Autodesk Inventor 2014 Microsoft Visual Basic 2010
|
erstellt am: 10. Jun. 2015 09:13 <-- editieren / zitieren --> Unities abgeben:
Also Chris das klappt schonmal sehr sher gut mit deinen Codes arbeite ich gerne ;D Ich hätte noch ein paar Fragen. Skizierte Symbole: kann ich ein Skizziertes Symbol mit Code löschen? Ich hab versucht: Dim aktivesSymbol As SketchedSymbol aktivesSymbol = oSheet.SketchedSymbols.Item("Test") aktivesSymbol.Delete() geht ni -.- Wie kann man die Position für das skizzierte Symbol festlegen? das steht bei mir immer oben Rechts in der Ecke Skizze: kann ich die skizze irgendwie gleich Benennen? kann ich Skizzen mit Code löschen? Mfg Felix Okay Also Skizze Benennen geht: oSketch.Name und löschen mit oSketch.delete Bleibt blos noch [Diese Nachricht wurde von Fiedel93felix am 10. Jun. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 448 Registriert: 19.02.2014 Autodesk Inventor 2014 Microsoft Visual Basic 2010
|
erstellt am: 10. Jun. 2015 15:54 <-- editieren / zitieren --> Unities abgeben:
Also Chris mit deinem Code das klappt gut. Blos eine Frage: Um Text einzufügen nehm ich folgenden Code: Call oSketch.TextBoxes.AddByRectangle(ThisApplication.TransientGeometry.CreatePoint2d(2, 5), _ ThisApplication.TransientGeometry.CreatePoint2d(20, 6), "Hallo") das funktioniert auch. Dazu aber noch ein paar Fragen: Kann ich die Schriftgröße definieren? Kann ich die Ausrichtung festlegen? Kann ich den Zeilenabstand festlegen? MfG Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2015 Professional Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 17. Jun. 2015 08:29 <-- editieren / zitieren --> Unities abgeben: Nur für Fiedel93felix
Hallo Felix, dazu müsstest du sicherlich in die Definition der TextBox selbst rein und dort die Werte ändern. Sollte aber ja eigentlich nicht so schwer sein. Ich probiere es nachher einfach mal aus. ------------------ MFG Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 448 Registriert: 19.02.2014 Autodesk Inventor 2014 Microsoft Visual Basic 2010
|
erstellt am: 17. Jun. 2015 08:45 <-- editieren / zitieren --> Unities abgeben:
Okay und das geht? Ich hab jetzt eine Möglichkeit gefunden, die ist zwar wie ich denke nicht die eleganteste aber funktioniert. Ich definier mir verschiedene text-Stile und kann dein einen gewünschten festlegen. Im Stil kann ich alles festlegen. Call oSketch.TextBoxes.AddByRectangle(ThisApplication.TransientGeometry.CreatePoint2d(2, 5), _ ThisApplication.TransientGeometry.CreatePoint2d(20, 6), "Hallo" , TextStyle:="DIN")) Da einzige was nicht klappt ist der Zeilenabstand, wenn ich den vorher auf exakt mit einem Wert stelle wird der Text übereinander geschrieben, wie als wäre der Anstand 0 Und wenn ich die Textbox öffne ist nichts bei Zeilenabstand gewählt und es ist kein Wert eingetragen. MfG Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2015 Professional Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 17. Jun. 2015 09:21 <-- editieren / zitieren --> Unities abgeben: Nur für Fiedel93felix
Also, ich hätte da was:
Code: Dim oDoc As DrawingDocument Set oDoc = ThisApplication.ActiveDocument Dim osheet As Sheet Set osheet = oDoc.ActiveSheet Dim oSketch As Sketch Set oSketch = osheet.Sketches.Add Dim oTextbox As TextBox Call oSketch.Edit Call oSketch.TextBoxes.AddByRectangle(ThisApplication.TransientGeometry.CreatePoint2d(2, 5), ThisApplication.TransientGeometry.CreatePoint2d(20, 6), "Hallo") oSketch.TextBoxes.Item(1).LineSpacingType = kMultipleLineSpacing oSketch.TextBoxes.Item(1).LineSpacing = "2" 'Zeilenabstand oSketch.TextBoxes.Item(1).HorizontalJustification = kAlignTextCenter 'Ausrichtung oSketch.ExitEdit
------------------ MFG Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 448 Registriert: 19.02.2014 Autodesk Inventor 2014 Microsoft Visual Basic 2010
|
erstellt am: 17. Jun. 2015 11:09 <-- editieren / zitieren --> Unities abgeben:
|
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2015 Professional Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 17. Jun. 2015 11:34 <-- editieren / zitieren --> Unities abgeben: Nur für Fiedel93felix
Das ist der Index. Wenn du mehr als nur die TextBox in der Skizze hast, musst du mal schauen, welchen Index die Box hat. Wenn nur die TextBox drin ist, dann kannst die 1 stehen lassen. ------------------ MFG Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 448 Registriert: 19.02.2014 Autodesk Inventor 2014 Microsoft Visual Basic 2010
|
erstellt am: 17. Jun. 2015 11:44 <-- editieren / zitieren --> Unities abgeben:
|
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2015 Professional Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 17. Jun. 2015 12:44 <-- editieren / zitieren --> Unities abgeben: Nur für Fiedel93felix
|
Fiedel93felix Mitglied Konstrukteur
Beiträge: 448 Registriert: 19.02.2014 Autodesk Inventor 2014 Microsoft Visual Basic 2010
|
erstellt am: 17. Jun. 2015 14:26 <-- editieren / zitieren --> Unities abgeben:
Chris eine Frage hätte ich doch noch zu einfügen von Text. Wenn du normal eine Textbox einfügst kann die auch mit einem iPropertie Beispielsweise der Zeichnung oder Blatteigenschaften verknüpft werden. Dadurch wird der Text automatisch geändert wenn sich was an dem zugeordneten Objekt ändert. Kann man diese Zuordnung auch mit Code realisieren? MfG Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2015 Professional Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 17. Jun. 2015 16:17 <-- editieren / zitieren --> Unities abgeben: Nur für Fiedel93felix
|
Fiedel93felix Mitglied Konstrukteur
Beiträge: 448 Registriert: 19.02.2014 Autodesk Inventor 2014 Microsoft Visual Basic 2010
|
erstellt am: 17. Jun. 2015 16:20 <-- editieren / zitieren --> Unities abgeben:
|
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2015 Professional Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 18. Jun. 2015 10:43 <-- editieren / zitieren --> Unities abgeben: Nur für Fiedel93felix
Hey Felix, also, ich habe es jetzt nicht geschafft, ein iPropertie wie sonst in die TextBox einzufügen, aber... Du kannst natürlich einfach beim erstellen der Box auf das iProp und dessen Wert zugreifen und somit sagen:
Code: TextBox.Text=iProp.Expression
Nur weiß ich nicht, ob sich der Wert auch mitändert, wenn du die Referenz änderst, das müsstest du mal probieren. ------------------ MFG Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 448 Registriert: 19.02.2014 Autodesk Inventor 2014 Microsoft Visual Basic 2010
|
erstellt am: 18. Jun. 2015 10:49 <-- editieren / zitieren --> Unities abgeben:
Hm okay danke erstmal für deine Mühe. Also ich glaube nicht das sich dann der Wert mit ändert. Aber dann ist es halt so dann müssen halt zum aktualisieren ein Button betätigt werden, der die Textboxen ändern passiert halt Nochmal großen danke Dir MfG Felix Und ein schönes Wochenende wünsch ihr schonmal, ist ja ni mehr so lange hin
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2015 Professional Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 18. Jun. 2015 11:11 <-- editieren / zitieren --> Unities abgeben: Nur für Fiedel93felix
|
Fiedel93felix Mitglied Konstrukteur
Beiträge: 448 Registriert: 19.02.2014 Autodesk Inventor 2014 Microsoft Visual Basic 2010
|
erstellt am: 18. Jun. 2015 15:08 <-- editieren / zitieren --> Unities abgeben:
Ich hab da noch eine Problem: Und zwar wollte ich grad dien Code für die veränderung der Textbox einarbeiten. oSketch.TextBoxes.Item(1).LineSpacingType = kMultipleLineSpacing oSketch.TextBoxes.Item(1).LineSpacing = "2" 'Zeilenabstand oSketch.TextBoxes.Item(1).HorizontalJustification = kAlignTextCenter 'Ausrichtung Dabei kommt aber für kMultipleLineSpacing und kAlignTextCenter die Fehlermeldung "kAlignTextCenter" wurde nicht deklariert. Auf das Objekt kann aufgrund seiner Schutzstufe möglicherweise nicht zugegriffen werden. So da hab ich versuch das anders zu machen und hab Probiert 1. oSketch.TextBoxes.Item(16 + 7 + (11 * z)).LineSpacingType = TextLineSpacingTypeEnum.kMultipleLineSpacing 2. Call oSketch.TextBoxes.Item(16 + 7 + (11 * z)).edit(TextLineSpacingTypeEnum.kMultipleLineSpacing) da kommt zumindest beim bearbeiten kein Fehler aber wenn ich den Code ausführe kommt an der Zeile der Fehler: Falscher Parameter. (Ausnahme von HRESULT: 0x80070057 (E_INVALIDARG)) Weiß da jemand wo der Fehler liegt?? Wenn ich nur das oSketch.TextBoxes.Item(1).LineSpacing = "2" 'Zeilenabstand nehme passiert gar nix. ------------------
---------------------------------- Mit freundlichen Grüßen
Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2015 Professional Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 18. Jun. 2015 16:08 <-- editieren / zitieren --> Unities abgeben: Nur für Fiedel93felix
also, ich habe das mal bei mir eingefügt und so läuft es. Ich kann nur vermuten, dass es vielleicht an deinen Indexverweises liegt. Code: Dim oDoc As DrawingDocument oDoc = m_inventorApplication.ActiveDocument Dim osheet As Sheet osheet = oDoc.ActiveSheet Dim oSketch As Sketch oSketch = osheet.Sketches.Add Dim oTextbox As TextBox Call oSketch.Edit() Call oSketch.TextBoxes.AddByRectangle(m_inventorApplication.TransientGeometry.CreatePoint2d(2, 5), m_inventorApplication.TransientGeometry.CreatePoint2d(20, 6), "Hallo") oSketch.TextBoxes.Item(1).LineSpacingType = TextLineSpacingTypeEnum.kMultipleLineSpacing oSketch.TextBoxes.Item(1).LineSpacing = 2 'Zeilenabstand oSketch.TextBoxes.Item(1).HorizontalJustification = HorizontalTextAlignmentEnum.kAlignTextCenter 'Ausrichtung oSketch.ExitEdit() End Sub
------------------ MFG Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 448 Registriert: 19.02.2014 Autodesk Inventor 2014 Microsoft Visual Basic 2010
|
erstellt am: 18. Jun. 2015 16:15 <-- editieren / zitieren --> Unities abgeben:
Hä komsich jetzt geht es...Aber deins war doch jetzt gar ni anders...hm naja Aber es stellt jetzt den falschen Zeilenabstand ein. Es stellt ihn jetzt auf doppelt und nicht auf exakt mit 2...
------------------ ---------------------------------- Mit freundlichen Grüßen Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2015 Professional Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 19. Jun. 2015 06:21 <-- editieren / zitieren --> Unities abgeben: Nur für Fiedel93felix
Guten Morgen Felix, ich habe nichts gefunden, wie man den Zeilenabstand exakt einstellen könnte. Was geht ist: Code: oSketch.TextBoxes.Item(1).LineSpacing = LineSpacingEnum.kSingleLineSpacing oSketch.TextBoxes.Item(1).LineSpacing = LineSpacingEnum.kDoubleLineSpacing oSketch.TextBoxes.Item(1).LineSpacing = LineSpacingEnum.kTripleLineSpacing
------------------ MFG Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2015 Professional Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 19. Jun. 2015 06:29 <-- editieren / zitieren --> Unities abgeben: Nur für Fiedel93felix
Ich habs gefunden: Statt: Code: oSketch.TextBoxes.Item(1).LineSpacingType = TextLineSpacingTypeEnum.kMultipleLineSpacing oSketch.TextBoxes.Item(1).LineSpacing = 2 'Zeilenabstand
Lieber: Code: oSketch.TextBoxes.Item(1).LineSpacingType = TextLineSpacingTypeEnum.kExactLineSpacing oSketch.TextBoxes.Item(1).LineSpacing = 2 'Zeilenabstand
Dann gibt die Zahl den Zeilenabstand in cm an. ------------------ MFG Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 448 Registriert: 19.02.2014 Autodesk Inventor 2014 Microsoft Visual Basic 2010
|
erstellt am: 19. Jun. 2015 07:07 <-- editieren / zitieren --> Unities abgeben:
Okay Chris danke hätte ich auch selber finden können aber irgendwie hab ich gestern allgemein nichts mehr hinbekommen...war ni so mein Tag Aber das alles in cm is nervt irgendwie bissel aber naja passiert Ich hoffe damit kann ich dich jetzt das letzte mal in Wochenende verabschieden. Und leider kann ich kein schönes Wetter genießen, bei uns regnet es und das soll auch so bleiben -.- Also schönes erholsames Wochenende dir Und natürlich auch allen anderen die mitlesen ------------------ ---------------------------------- Mit freundlichen Grüßen Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2015 Professional Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 19. Jun. 2015 08:51 <-- editieren / zitieren --> Unities abgeben: Nur für Fiedel93felix
|
Fiedel93felix Mitglied Konstrukteur
Beiträge: 448 Registriert: 19.02.2014 Autodesk Inventor 2014 Microsoft Visual Basic 2010
|
erstellt am: 24. Jun. 2015 08:10 <-- editieren / zitieren --> Unities abgeben:
Halli hallo Ich hab da mal zwei Fragen: und zwar wenn ich eine Skizze über Code erstelle fliegt ja einfach so auf dem Blatt rum (also ich kann die anfassen und rumschuppsen)! kann ich die Skizze irgendwie fixieren? Wenn ich in de Skizze dinge platziere wie linien und Textboxen gebe ich denen ja koordinaten das die richtig platziert sind. Wenn die Skizze jetzt erstellt wurde und man öffnet die sind aber alle Objekt die erstellt worden lose und man kann sie beliebig verschieben. Kann die platzierten Objekte einer Skizze irgendwie fixieren? ------------------ ---------------------------------- Mit freundlichen Grüßen Felix [Diese Nachricht wurde von Fiedel93felix am 24. Jun. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2015 Professional Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 24. Jun. 2015 08:54 <-- editieren / zitieren --> Unities abgeben: Nur für Fiedel93felix
Guten Morgen Felix, wenn du eine Skizze von Hand auf der Zeichnungsableitung erstellst ist sie ja auch nicht fixiert, du kannst sie ja auch "rumschubsen". Mir fällt im Moment keine Möglichkeit ein, wie man sie irgendwo festmachen könnte. Aber vielleicht weiß ja einer der Anderen hier eine Möglichkeit. Bin gespannt, was da so rauskommt. ------------------ MFG Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 448 Registriert: 19.02.2014 Autodesk Inventor 2014 Microsoft Visual Basic 2010
|
erstellt am: 24. Jun. 2015 10:05 <-- editieren / zitieren --> Unities abgeben:
Okay das hab ich mir gedacht Aber wenn die Skizze an sich umherfliegen kann stört mich jetzt eher weniger. Was mich stört ist, das alle platzierten Objekte in der Skizze verschoben werden können. Normal würde man das ja mit Bemaßungen oder anderen Bedingugen festmachen. Und ich dachte halt das die Punkte welche man angibt zum platzieren fix wären, aber das sind sie ja ni. ------------------ ---------------------------------- Mit freundlichen Grüßen Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 448 Registriert: 19.02.2014 Autodesk Inventor 2014 Microsoft Visual Basic 2010
|
erstellt am: 29. Jun. 2015 12:02 <-- editieren / zitieren --> Unities abgeben:
Also ich bin auf etwas gestosen was relativ vielversprechend aussah wo ich aber bei der deklaration noch nicht so wirklich klar komme.... Call oSketch.DimensionConstraints.AddTwoPointDistance(ThisApplication.TransientGeometry.CreatePoint2d(1, 2.8), _ ThisApplication.TransientGeometry.CreatePoint2d(2.4, 2.8), Inventor.DimensionOrientationEnum.kHorizontalDim, _ ThisApplication.TransientGeometry.CreatePoint2d(2, 5)) Aber wenn ich das ausüfhr kommt folgender Fehler...weiß da vielleicht jemand rat? Das COM-Objekt des Typs "System.__ComObject" kann nicht in den Schnittstellentyp "Inventor.SketchPoint" umgewandelt werden. Dieser Vorgang konnte nicht durchgeführt werden, da der QueryInterface-Aufruf an die COM-Komponente für die Schnittstelle mit der IID "{8006A022-ECC4-11D4-8DE9-0010B541CAA8}" aufgrund des folgenden Fehlers nicht durchgeführt werden konnte: Schnittstelle nicht unterstützt (Ausnahme von HRESULT: 0x80004002 (E_NOINTERFACE)).
------------------ ---------------------------------- Mit freundlichen Grüßen Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 448 Registriert: 19.02.2014 Autodesk Inventor 2014 Microsoft Visual Basic 2010
|
erstellt am: 30. Jun. 2015 09:06 <-- editieren / zitieren --> Unities abgeben:
So Leute ich habe das Rästel enträtselt Man muss sich am besten einzelne Punkte auf der Zeichnung anlegen welche man voll definiert. Diese Punkte nutzt man dann zum Zeichnen von linien Kreisen oder was aich immer man braucht Das einzige was ich noch nicht raus bekommen hab ist wie man Textboxen fest macht denn das Funktioniert mit dem vorgehen ni.
Hier gibts mal ein Beispielcode für eine voll definierte Tabelle: Dim Anzahl As Integer = 10 Dim ThisApplication As Inventor.Application ThisApplication = GetObject(, "Inventor.Application") Dim oDrawdoc As DrawingDocument oDrawdoc = ThisApplication.ActiveDocument Dim oSketch As Sketch Dim oSheet As Sheet oSheet = oDrawdoc.ActiveSheet ' Get a reference to the TransientGeometry object. Dim tg As Inventor.TransientGeometry = ThisApplication.TransientGeometry Try oSketch = oSheet.Sketches.Item("TestSkizze") oSketch.Delete() Catch ex As Exception End Try
oSketch = oSheet.Sketches.Add oSketch.Name = "TestSkizze" ' Get a reference to the SketchPoints collection. Dim points As Inventor.SketchPoints = oSketch.SketchPoints ' Get a reference to the SketchLines collection. Dim lines As Inventor.SketchLines = oSketch.SketchLines ' Get a reference to the SketchArcs collection. Dim arcs As Inventor.SketchArcs = oSketch.SketchArcs
Dim Point(100) As Inventor.SketchPoint
Dim Line(50) As Inventor.SketchLine Call oSketch.Edit() Point(0) = points.Add(tg.CreatePoint2d(1.0, 2.8), False) Point(1) = points.Add(tg.CreatePoint2d(2.4, 2.8), False) Point(2) = points.Add(tg.CreatePoint2d(3.2, 2.8), False) Point(3) = points.Add(tg.CreatePoint2d(7.2, 2.8), False) Point(4) = points.Add(tg.CreatePoint2d(12.2, 2.8), False) Point(5) = points.Add(tg.CreatePoint2d(14.2, 2.8), False) Point(6) = points.Add(tg.CreatePoint2d(16.0, 2.8), False) Point(7) = points.Add(tg.CreatePoint2d(17.7, 2.8), False) Point(8) = points.Add(tg.CreatePoint2d(19.0, 2.8), False)
For i = 0 To 7 oSketch.GeometricConstraints.AddHorizontalAlign(Point(i), Point(i + 1)) oSketch.DimensionConstraints.AddTwoPointDistance(Point(i), Point(i + 1), Inventor.DimensionOrientationEnum.kHorizontalDim, tg.CreatePoint2d(10, 3)) Next
For i = 1 To anzahl Point(7 + (i * 2)) = points.Add(tg.CreatePoint2d(1.0, 2.8 + i), False) Point(8 + (i * 2)) = points.Add(tg.CreatePoint2d(2.4, 2.8 + i), False) oSketch.DimensionConstraints.AddTwoPointDistance(Point(7 + (i * 2)), Point(7 + ((i - 1) * 2)), Inventor.DimensionOrientationEnum.kVerticalDim, tg.CreatePoint2d(0.5, 3 + i))
oSketch.GeometricConstraints.AddHorizontalAlign(Point(7 + (i * 2)), Point(8 + (i * 2))) oSketch.GeometricConstraints.AddVerticalAlign(Point(0), Point(7 + (i * 2))) oSketch.GeometricConstraints.AddVerticalAlign(Point(8), Point(8 + (i * 2))) lines.AddByTwoPoints(Point(7 + (i * 2)), Point(8 + (i * 2))) Next Point(9 + (anzahl * 2)) = points.Add(tg.CreatePoint2d(1.0, 2.8 + anzahl + 1), False) Point(10 + (anzahl * 2)) = points.Add(tg.CreatePoint2d(2.4, 2.8 + anzahl + 1), False) Point(11 + (anzahl * 2)) = points.Add(tg.CreatePoint2d(3.2, 2.8 + anzahl + 1), False) Point(12 + (anzahl * 2)) = points.Add(tg.CreatePoint2d(7.2, 2.8 + anzahl + 1), False) Point(13 + (anzahl * 2)) = points.Add(tg.CreatePoint2d(12.2, 2.8 + anzahl + 1), False) Point(14 + (anzahl * 2)) = points.Add(tg.CreatePoint2d(14.2, 2.8 + anzahl + 1), False) Point(15 + (anzahl * 2)) = points.Add(tg.CreatePoint2d(16.0, 2.8 + anzahl + 1), False) Point(16 + (anzahl * 2)) = points.Add(tg.CreatePoint2d(17.7, 2.8 + anzahl + 1), False) Point(17 + (anzahl * 2)) = points.Add(tg.CreatePoint2d(19.0, 2.8 + anzahl + 1), False) For i = 0 To 7 oSketch.GeometricConstraints.AddHorizontalAlign(Point(i + 9 + (Anzahl * 2)), Point(i + 9 + (Anzahl * 2) + 1)) Next For i = 0 To 8 oSketch.GeometricConstraints.AddVerticalAlign(Point(i), Point(i + 9 + (Anzahl * 2))) Next oSketch.DimensionConstraints.AddTwoPointDistance(Point(9 + (Anzahl * 2)), Point(9 + (Anzahl * 2) - 2), Inventor.DimensionOrientationEnum.kVerticalDim, tg.CreatePoint2d(0.5, 3 + Anzahl)) For i = 1 To 7 lines.AddByTwoPoints(Point(i), Point(i + 9 + (Anzahl * 2))) Next oSketch.SketchLines.AddAsTwoPointRectangle(Point(0), Point(17 + (Anzahl * 2))) oSketch.ExitEdit()
oDrawdoc.Update() Sollte es fragen geben einfach antworten ------------------ ---------------------------------- Mit freundlichen Grüßen Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |