| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Dynamische Blöcke (1101 / mal gelesen)
|
woppi Mitglied cnc-programmierung
Beiträge: 65 Registriert: 16.01.2009 Acad Architecture 2020
|
erstellt am: 16. Nov. 2018 12:23 <-- editieren / zitieren --> Unities abgeben:
Hallo, weiß einer, ob es eine Möglichkeit gibt, mit Hilfe von VBA in einer Zeichnung vorhandenen dynamischen Blöcken zusätzliche Parameter in der Blocktabelle zuzufügen? Also nicht: [GetDynamicBlockProperties] sondern so was [createDynamicBlockProperties] Ich hatte auch schon überlegt jeden einzelnen dynamischen Block (mit Hilfe von einer Schleife in VBA) im Blockeditor zu öffnen, die Blocktabelle aufzurufen, und dann einen neuen Parameter anzulegen. Ich komme aber nur soweit das der Block im Blockeditor offen ist, und die Blocktabelle geöffnet ist, da aber ein neuer Parameter über das Dialogfeld eingetragen wird, komme ich da gerade nicht weiter. Vieleicht hat ja einer einen Tipp für mich, ansonsten ein schönes Wochenende. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rexxitall Mitglied Dipl. -Ing. Bau
Beiträge: 266 Registriert: 07.06.2013 Various: systems, Operating systems, cad systems, cad versions, programming languages.
|
erstellt am: 18. Nov. 2018 11:53 <-- editieren / zitieren --> Unities abgeben: Nur für woppi
Hi, Mit VBA kommst du da so nicht ran. Aber du könntest The Thisdrawing.sendcommand benutzen um über die Eingabesimulation da dran rum zu fummeln. Ich habe auch schon mal mit dem Gedanken gespielt den Block als DXF abzuspeichern und das DXF zu parsen. Es mag auch ein VB.NET api geben, das habe ich noch nicht nachgesehen. Mit .NET eine VBA Erweiterung zu bauen ist recht einfach. Lieben Gruß Thomas ------------------ Wer es nicht versucht, hat schon verlorn Und bei 3 Typos gibts den vierten gratis ! <<< not for sale ! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
woppi Mitglied cnc-programmierung
Beiträge: 65 Registriert: 16.01.2009 Acad Architecture 2020
|
erstellt am: 19. Nov. 2018 08:13 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, das habe ich mir schon fast gedacht. Deswegen habe ich es auch schon mit:
Code: ThisDrawing.SendCommand "_BTable" & Chr$(13)
probiert, aber leider kommt man dann nicht weiter. Die Schaltfläche "neuer Parameter" lässt sich nur mit der Maus bedienen. Trotzdem vielen Dank. Gruß Ludger
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rexxitall Mitglied Dipl. -Ing. Bau
Beiträge: 266 Registriert: 07.06.2013 Various: systems, Operating systems, cad systems, cad versions, programming languages.
|
erstellt am: 19. Nov. 2018 09:37 <-- editieren / zitieren --> Unities abgeben: Nur für woppi
Hi, gugg dir dann doch mal AutoIt / Oxygene(Allgemeiner Makro Prozessor) an. Das ist zwar alles andere als elegant, aber damit sollte man diese Schaltfläche drücken können. Alternativ per Windows API dem Fenster den Mausevent schicken. Oder die ganze Block Geschichte bleiben lassen und diese Logik in VBA verpacken. Notfalls zeichnet dann halt VBA den Block. Lieben Gruß Thomas ------------------ Wer es nicht versucht, hat schon verlorn Und bei 3 Typos gibts den vierten gratis ! <<< not for sale ! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
woppi Mitglied cnc-programmierung
Beiträge: 65 Registriert: 16.01.2009 Acad Architecture 2020
|
erstellt am: 19. Nov. 2018 15:13 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, die Blöcke die ich ändern möchte gibt es schon alle (hunderte), ich wollte in alle noch mehr Parameter eintragen, damit ich noch bessere Auswertung mit der Datenextraktion machen kann. Die Idee mit der Maus ist sicher etwas unkonventionell, habe ich aber ausprobiert. Ich kann jetzt per VBA sie Maus bewegen, aber leider nur wenn das Dialogfeld Blocktabelle geschlossen ist. Aber es sieht witzig aus, wenn die Maus von alleine über die Zeichnung fährt. Aber so komm ich wahrscheinlich nicht weiter. Mal gucken vielleicht fällt mir die Tage noch etwas ein. Gruß Ludger
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
woppi Mitglied cnc-programmierung
Beiträge: 65 Registriert: 16.01.2009 Acad Architecture 2020
|
erstellt am: 19. Nov. 2018 15:53 <-- editieren / zitieren --> Unities abgeben:
Ich muss da etwas verbessern, erst die Maus bewegen, dann das Dialogfeld aufrufen geht. Jetzt steht die Maus an der richtigen Stelle, leider wird aber der Klick mit der linken Maustaste (kommt von VBA) erst ausgeführt, wenn ich das Dialogfeld im ACAD selber schließe, ich kann also so lange das Dialogfeld aktiv ist, von VBA nicht darauf zugreifen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rexxitall Mitglied Dipl. -Ing. Bau
Beiträge: 266 Registriert: 07.06.2013 Various: systems, Operating systems, cad systems, cad versions, programming languages.
|
erstellt am: 19. Nov. 2018 18:43 <-- editieren / zitieren --> Unities abgeben: Nur für woppi
Deswegen habe ich ja auch Autoit oder Oxygen angeregt. Die sind explizit für die Fernbedienung von Fremdprogrammen gemacht. Aus VBA heraus Mausklicks aufzurufen mag deswegen Probleme bereiten weil es zu nah am Autocad angeflanscht ist. Da im gleichen Prozess rumzumachen könnt Probleme bereiten. Ich habe mal sowas mit der Tastatur probiert, war auch nicht so glücklich. Autoit und OXYGEN haben meine ich ne Com Schnittstelle und die laufen in einem eigenen Prozess. Da hat es auch Tools um an die GUID des Dialogs dran zu kommen. Also irgendwie muss das ja gehen. Windows kriegt es ja auch hin dem Autocad nen Mausklick überzubraten . Wird sicher kein Einzeiler aber machbar sollt das doch sein Lieben Gruß Thomas ------------------ Wer es nicht versucht, hat schon verlorn Und bei 3 Typos gibts den vierten gratis ! <<< not for sale ! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Internship in Microfluidic Research and Tool Development | Do you want beneficial technologies being shaped by your ideas? Whether in the areas of mobility solutions, consumer goods, industrial technology or energy and building technology - with us, you will have the chance to improve quality of life all across the globe. Welcome to Bosch. The Robert Bosch GmbH is looking forward to your application! Employment type: Limited Working ... | Anzeige ansehen | Softwareentwicklung |
|
woppi Mitglied cnc-programmierung
Beiträge: 65 Registriert: 16.01.2009 Acad Architecture 2020
|
erstellt am: 22. Nov. 2018 13:44 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, Du hast mir den richtigen Tipp gegeben! Gestern konnte ich mich ein bisschen damit beschäftige, und es klappt wunderbar. VBA sortiert die Blöcke, überspringt die bei denen schon der neue Parameter vorhanden ist (nicht alle Blöcke sind auf dem gleichen Stand) und öffnet sie dann im Blockeditor. Startet dann das AutoIT Programm, welches die neuen Parameter hinzufügt, den Block speichert und den Blockeditor wieder schließt. Das AutoIT Programm startet dann automatisch wieder das VBA Programm welches den nächsten Block öffnet und immer so weiter, bis alle Blöcke fertig sind. Das spart mir viele viele Stunden Arbeit, die erste Datei mit mehreren hundert Blöcken ist schon fertig. Liebe Grüße Ludger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |