| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Vorhandenes Skizziertes Symbol mittels VBA UserForm Ausfüllen (5196 mal gelesen)
|
a-d-i-d-a-s Mitglied Technischer Zeichner
Beiträge: 7 Registriert: 31.05.2011
|
erstellt am: 31. Mai. 2011 13:58 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, seit 4 Jahren bin ich nun aktiv mit Inventor beschäftigt und habe auch die Ausgabe der CAD Administration in meiner Firma (Installationen, Updates, Fehlerbehebungen usw.) Und seit neuesten habe ich auch VBA entdeckt und schon ein paar Sachen wie Maßstab automatisch in Schriftkopf eintragen gemacht. Da wir in unserer Firma viel mit Skizzierten Tabellen arbeiten, und das ab und zu echt mühsam ist die per Angeforderter Eingabe auszufüllen, dachte ich an ein Makro, mitdem man über ein Fenster, Werte in die Tabelle eintragen kann. In diesem Fall eine Rohrleitungsliste mit Rohrtyp, Werkstoff, Formstücke, Flansche sowie Schrauben usw. Ich habe mir schon soweit eine UserForm "gebastelt" in der ich bestimmte Angaben wie Norm usw. mittels ComboBox auswählen kann. Mit Iproperties will ich nicht arbeiten, die sich die werte aus der Baugruppe saugt, da wir mit einem speziellen Rohrleitungsprogramm (TurboTube) arbeiten. Das Rohrleitungssymbol befindet sich auch in der Standard.idw Nun zu meiner Frage, ist es möglich bzw. sehr kompliziert ein Makro zu schreiben, dass die "Angeforderten Eingaben" über eine UserForm auszufüllen? Wenn ja kann mir vielleicht jemand einen Ansatz für den Quellcode schicken. Ich bin leider noch neu auf dem Gebiet und würde mich über hilfreiche Antworten sehr freuen!! Gruß a-d-i-d-a-s
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 31. Mai. 2011 14:27 <-- editieren / zitieren --> Unities abgeben: Nur für a-d-i-d-a-s
|
a-d-i-d-a-s Mitglied Technischer Zeichner
Beiträge: 7 Registriert: 31.05.2011
|
erstellt am: 31. Mai. 2011 14:56 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für die schnelle Antwort. Ja, durch die ganzen Beiträge habe ich mich schon durchgelesen :P Allerdings bin ich daraus leider nicht sehr schlau geworden.. Bin ja wie gesagt noch ein "Neuling" auf diesem Gebiet. Also per VBA wäre mein Vorhaben nicht so leicht realisierbar wenn ich das richtig verstanden habe? im Printip brauch ich ja nur ein mal den Quellcode für eine Zeile, den ich dann einfach kopiere und entsprechend den anderen Zeilen anpasse, oder? Liebe Grüße aus München Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bwr Mitglied Konstrukteur
Beiträge: 129 Registriert: 21.02.2007 Win10 64-bit NVIDIA T500 Inventor 2022 Catia V5-6R2020
|
erstellt am: 01. Jun. 2011 09:40 <-- editieren / zitieren --> Unities abgeben: Nur für a-d-i-d-a-s
Ich hab's so gelöst: Code:
Set oTextBox = oDrawDoc.ActiveSheet.TitleBlock.Definition.Sketch.TextBoxes.Item(INDEX) Call oDrawDoc.ActiveSheet.TitleBlock.SetPromptResultText(oTextBox, "DEIN TEXT")
Den INDEX kannst du folgendermaßen finden Code:
Set oTextBoxes = oDrawDoc.ActiveSheet.TitleBlock.Definition.Sketch.TextBoxes Debug.Print oDrawDoc.ActiveSheet.TitleBlock.Name For Each oTextBox In oTextBoxes 'Alle vorhandenen Einträge numeriert aufzählen Debug.Print i + 1 & vbTab & oTextBox.text '& vbTab & oTextBoxes.Item(i) i = i + 1 Next
Viel Erfolg Andi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
a-d-i-d-a-s Mitglied Technischer Zeichner
Beiträge: 7 Registriert: 31.05.2011
|
erstellt am: 01. Jun. 2011 10:46 <-- editieren / zitieren --> Unities abgeben:
Vielen vielen Dank. Soweit würde das denk ich mal schon Funktionieren. Aber da ich eben noch nicht sooo veil Erfahrung habe, bin ich mir nicht ganz sicher. Vielleicht kann ich dir einfach mal die .idw mit dem von mir bereits erstellten UserForm schicken und du kannst es dir bei gelegenheit mal anschauen? Das wäre genial. Z.Z lese ich mich noch durch diverse Anleitungen und Beispielthemen. Aber das ganze ist eben nicht so leicht :P Gruß a-d-i-d-a-s
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bwr Mitglied Konstrukteur
Beiträge: 129 Registriert: 21.02.2007 Win10 64-bit NVIDIA T500 Inventor 2022 Catia V5-6R2020
|
erstellt am: 08. Jun. 2011 07:16 <-- editieren / zitieren --> Unities abgeben: Nur für a-d-i-d-a-s
Kommst du weiter mit deinem Projekt? Die Formulare machen optisch schon mal einen guten Eindruck, die Schwierigkeit liegt aber darin sie mit Leben zu füllen. Ich habe auch mal so angefangen wie du, und kann dich nur ermutigen dran zu bleiben. Ein paar Tage wirst du schon inverstieren müssen bis alles läuft. Bei konkreten Fragen steht dir natürlich das Forum stets zur Seite. Gruß Andi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
a-d-i-d-a-s Mitglied Technischer Zeichner
Beiträge: 7 Registriert: 31.05.2011
|
erstellt am: 15. Jun. 2011 18:54 <-- editieren / zitieren --> Unities abgeben:
Hatte jetzt erst mal ein wenig Urlaub und konnte noch nicht wirklich weiter tüfteln. Ich bin halt noch echt der totale Anfänger und wage mich dann an so ein großes Projekt ran... Ich hab jetzt mal ganz grundlegende Fragen. Also zu aller erst habe ich mir das Konzept grob überlegt und dementsprechend erst meine Userform erstellt. Da hab ich eben alle Formen wie ComboBox usw auch entsprechend ihrer Inhalte benannt (z.B. Material_Schrauben, usw.) Wenn ich jetzt nun ein Feld, sei es ComboBox oder Textbox programmieren will, dann mach ich einen Doppelklick in der Userform, dann sprigt VB zu meinem "Noch nicht vorhandenen Code" und dort gebe ich dann all meine Befehlszeilen bzw. Operationszeilen ein? Ich habe jetzt schon mal versucht eine ComboBox einfach mal mit Werten zu Füllen, dass diese wenigstens mal angezeigt werden. Dies möchte ich aber ger mit Additem machen. Hier mal ein Code den ich geschreiben habe. Starte ich aber nun die UserForm steht in der ComboBox nichts drinn. Private Sub Werkstoff_Rohrleitungen_Change() ComboBoxWerkstoff_Rohrleitungen.AddItem "1.4541" ComboBoxWerkstoff_Rohrleitungen.AddItem "1.4404" ComboBoxWerkstoff_Rohrleitungen.AddItem "1.4571" ComboBoxWerkstoff_Rohrleitungen.AddItem "St37-2" ComboBoxWerkstoff_Rohrleitungen.AddItem "1.4408" ComboBoxWerkstoff_Rohrleitungen.AddItem "1.4401" ComboBoxWerkstoff_Rohrleitungen.AddItem "1.4408" End Sub Nun ja, das Skizzierte Symbol besteht bereits. Nur nervt mich eben das Ausfüllen über die Angeforderte Eingabe. Ich will also nur, wenn ich das Symbol an eine geeignete Stelle in der Zeichnung seetzt habe, mit einem Makro die Werte über die UserForm füllen, Da kommen dann schon einige ComboBoxen zusammen. Wäre es evtl. sogar leichter, die einträge die in dem Symbol geändert werden sollen via UserForm, als Benutzerdefinierte Eigenschaften festzulegen und dann darauf zuzugreifen. Vielleicht kann mir je jemand einen Beispielcode schicken, der an meinem Konzept angelehnt ist, natürlich nicht mit den ganzen ComboBoxen. Und da eben dann die wichtigsten Zeilen kommentiert? Das wäre echt super toll von euch!! Vielen lieben Dank für eure Hilfe!! 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: 15. Jun. 2011 23:36 <-- editieren / zitieren --> Unities abgeben: Nur für a-d-i-d-a-s
Hi Dein Code würde beim Ändern des Inhaltes der ComboBox diese mit deinen Inhalten füllen. Das wird so nicht klappen. Füll die ComboBoxen beim Laden der Form (Verrohrungstabelle__Activate oder _Initialize). Ich möchte dir wie daywa1k3r dringend raten das Projekt nicht in VBA zu machen. Die Zukunft von VBA im Inventor ist ungewiß. Lad dir ein Visual Studio Express kostenlos runter und mach es z.B. in VB. Inventor bringt Projektvorlagen mit, die die AddInerstellung vereinfachen. Besser jetzt nochmal anfangen, als später zu versuchen das Projekt zu portieren. Das endet eh meist im neu schreiben.
------------------ MfG RK Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
a-d-i-d-a-s Mitglied Technischer Zeichner
Beiträge: 7 Registriert: 31.05.2011
|
erstellt am: 05. Jul. 2011 09:38 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, jetzt melde/berichte ich auch mal wieder Ich habe mir mal das Visaul Basic Express 2010 runtergeladen und dort schon ein Paar übungen "programmiert" Auch mit der Thematik, Programme für Inventorzu schreiben (Kleine Übung ein aktives Bauteil zu schließen) Nun habe ich auch mal meine UserForm aus VBA in VB Express übernommen und soweit alles eingestellt (Comboboxen gefüllt usw.) Jetzt gehts an die Feinarbeit. Da ich das ganze zuhause mache, kann ich jetzt leider keinen Screenshot hochladen, werde ich aber demnächst noch machen. Nun habe ich ein Problem. Wenn ich das Programm funktionsfähig fertig geschreiben habe, würde es ja nur extern laufen (Also Inventor Öffnen, und mein VB Progr. estern starten) Kann ich das nicht in Inventor einbinden? Als Bestandteil in der Benutzerleiste? Hat denn jemand mit solchen geschichten schon Erfahrung? Bzw. welche Prjekte/Programme habt ihr schon verwirklicht, die mit skizzierten symbolen zu tun haben? Ich habe mir auch dieses Buch hier bestellt, hat ziemlich gute Kritiken bekommen http://www.amazon.de/s/ref=nb_sb_ss_c_1_12?__mk_de_DE=%C5M%C5Z%D5%D1&url=search-alias%3Dstripbooks&field-keywords=visual+basic&sprefix=visual+basic Und was ganz wichtig ist: Beispielcodes Wie ich z.B. einen eintrag aus der Combobox in das dafür bereits vorhandene und vorgesehene Textfeld von Inventor schreibe Ich dachte mir, dass es evtl so funzt: ThisApplication.ActiveDocument.PropertySets(10).Item("Werkstoff_Flansche").Value = MeineCombo.Text ThisApplication.ActiveDocument.Update Ich denke mal es ist erst mal wichtig das Prog einwandfrei zum Laufen zu bekommen.Mit der Einbindung in Inventor kann ich mich ja dann danach befassen
Vielen Dank an eich alle!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bwr Mitglied Konstrukteur
Beiträge: 129 Registriert: 21.02.2007 Win10 64-bit NVIDIA T500 Inventor 2022 Catia V5-6R2020
|
erstellt am: 05. Jul. 2011 12:57 <-- editieren / zitieren --> Unities abgeben: Nur für a-d-i-d-a-s
Du bist auf dem richtigen Weg... Schau mal hier, [URL=http://modthemachine.typepad.com/my_weblog/add-in-creation/][/URL] Bei How to Write an Inventor Add-In lädst du die Beschreibung und das Beispiel herunter. Das bildet das Gerüst für dein Addin. Die Sache mit dem Debugging solltest du auch genauer anschauen. Auf der gleichen Seite ganz oben ist schön erklärt wie du das Addin in die Benutzeroberfläche einbiden kannst(Upgrading your Add-Ins to Support the Ribbon User Interface). Viel Erfolg beim Schmökern. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
a-d-i-d-a-s Mitglied Technischer Zeichner
Beiträge: 7 Registriert: 31.05.2011
|
erstellt am: 08. Jul. 2011 15:03 <-- editieren / zitieren --> Unities abgeben:
SUPER! Ich danke dir vielmals, ist echt klasse. Ist zwar in englisch aber für meine Befriffe leicht verständlich Ich habe endlich mein Buch erhalten was ich im letzten Beitrag erwähnt habe. Ist echt richtig richtig klasse! Kann ich jedem empfehlen der Programmieren lernen will. Ich halte euch einfach mal auf dem laufenden wie ich mit meinem Programm und dll usw zurecht komme. Ich denke dass könnte einige interessieren. Sagt mal, was habt ihr denn bisher so alles für Makros oder gar vollständige Programme für IV geschreiben? Jetzt rein aus Interesse Nochmals vielen Dank. Ist echt ein Bomben Forum! Grüße Sascha Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |