| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Formular zum ausfüllen meines Zeichnungskopfes (738 mal gelesen)
|
Dressler Mitglied technischer Angestellter
Beiträge: 301 Registriert: 19.11.2003 Acad 2002
|
erstellt am: 19. Nov. 2003 11:37 <-- editieren / zitieren --> Unities abgeben:
Ich bin gerade dabei mir ein Formular zu erstellen mit dem ich einen Block (Zeichnungskopf) bearbeiten möchte. Das Formular wächst so langsam an. Ich habe allerdings keine Ahnung wie ich die Daten nun in den Block rein bekomme (z.B. aktuelles Datum, Dateiname, ...), da ich dieses Problem immer so vor mich hin geschoben habe. Ich habs zwar nach ein wenig probieren hinbekommen die gewünschten Daten im UserForm anzeigen zu lassen, aber wie bekomme ich das nun in den Block??? Zumindest nen kleiner Tip würd mir weiter helfen, denn die Sache mit dem Userform ist nun wirklich total leicht gewesen muß ich zugeben. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JoeG Mitglied Systemadmin NX und Autocad
Beiträge: 122 Registriert: 18.10.2002 Autocad 2000 und Win2000
|
erstellt am: 19. Nov. 2003 12:26 <-- editieren / zitieren --> Unities abgeben: Nur für Dressler
Hallo Dressler Wenn ich das richtig verstanden habe, hast du einen Block mit Attributen. Versuch es mal so ähnlich Sub Schriftkopf () Dim Einfügepunkt(0 To 2) As Double Einfügepunkt(0) = 2 Einfügepunkt(1) = 2 Einfügepunkt(2) = 0 Dim BlockRefObj As AcadBlockReference Set BlockRefObj = ThisDrawing.ModelSpace.InsertBlock(Einfügepunkt, "Schriftkopf", 1#, 1#, 1#, 0) Dim AttWerte As Variant AttWerte = BlockRefObj.GetAttributes AttWerte(0).TextString = TextBox1.Value AttWerte(1).TextString = TextBox2.Value ...... End Sub Ps. Den alten Block löschst du am besten vorher mit einem Programm!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dressler Mitglied technischer Angestellter
Beiträge: 301 Registriert: 19.11.2003 Acad 2002
|
erstellt am: 19. Nov. 2003 13:33 <-- editieren / zitieren --> Unities abgeben:
Danke JoeG Soweit so gut. Ich bin absoluter Neuling im VBA, verstehe allerdings die Defenitionen der Attribute schon.
------- Private Sub UserForm_Initialize() Dim docName As String docName = ThisDrawing.FullName TextBox1.Text = Date TextBox2.Text = Time TextBox3.Text = " " & docName End Sub Sub Schriftkopf() Dim Einfügepunkt(0 To 2) As Double Einfügepunkt(0) = 2 Einfügepunkt(1) = 2 Einfügepunkt(2) = 0 Dim BlockRefObj As AcadBlockReference Set BlockRefObj = ThisDrawing.ModelSpace.InsertBlock(Einfügepunkt, "Schriftkopf", 1#, 1#, 1#, 0) Dim AttWerte As Variant AttWerte = BlockRefObj.GetAttributes AttWerte(0).TextString = TextBox1.Value AttWerte(1).TextString = TextBox2.Value End Sub ----
So sieht es bei mir derzeit aus. Nun frage ich mich 2 Sachen 1. Wie heißt denn der Block den ich einfüge, bzw. wo ist der definiert? 2. Ist mein Ansatz so überhaupt richtig, oder geht das noch ziemlich in die Falsche Richtung? [Diese Nachricht wurde von Dressler am 19. Nov. 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JoeG Mitglied Systemadmin NX und Autocad
Beiträge: 122 Registriert: 18.10.2002 Autocad 2000 und Win2000
|
erstellt am: 19. Nov. 2003 15:40 <-- editieren / zitieren --> Unities abgeben: Nur für Dressler
Ich verstehe die Frage nicht „Wie heißt mein Block“. Bei mir habe ich es so gelöst das ich ein Wblock mit dem Schriftkopf erzeigt habe. Die Daten (Benennung, Zeichnungsnummer usw.) die ich variabel habe mochte sind mit Attributen in den Block eingefügbar, diesen Block füge ich dann mit VBA in eine neue Zeichnung ein. Joe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dressler Mitglied technischer Angestellter
Beiträge: 301 Registriert: 19.11.2003 Acad 2002
|
erstellt am: 20. Nov. 2003 07:56 <-- editieren / zitieren --> Unities abgeben:
Ich wurschtel mich nun erstmal selber durch. Funzt zwar alles noch überhaupt nicht. Aber ich denke ich komme schon weiter voran. Außerdem lerne ich es nicht ohne probieren. Danke trotzdem schon einmal für den Ansatz. Ich stell dann mal meine nächsten Fragen, wenn ich etwas weiter gekommen bin. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RoSiNiNo Mitglied Konstrukteur
Beiträge: 1126 Registriert: 09.10.2002 Acad 2011-deutsch, Express Tools 3ds Max 2010 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 20. Nov. 2003 09:57 <-- editieren / zitieren --> Unities abgeben: Nur für Dressler
Jetzt stllt sich auch noch die Frage, ist dein Block schon in der Zeichnung eingesetzt oder nicht? Wenn er schon in der Zeichnung ist, dann musst du nach der jeweiligen Blockreferenz suchen. Wenn du aber den Block erst einfügen musst, dann ist das noch leichter, du kennst ja dann die Blockreferenz schon. Dann stellt sich noch die Frage, gibt es den Block öffter in der Zeichnung, gibt es mehrere Layouts mit je einem Kopf, sollen alle Blöcke geändert werden oder nur der im aktuellen Layout,....? Du solltest dir also einiges überlegen bevor su anfängst zu programmieren. Wenn du den Kopf mit dem VBA-Programm einsetzt, könntest du der Blockreferenz mit XDatas sagen, das diese Referenz dein Plankopf ist, dann findest du sie später leichter wieder. ------------------ Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Konstrukteur (m/w/d) Sondermaschinenbau | Leidenschaft für technologischen Fortschritt ausleben? Dabei sein, wenn Innovationen Wirklichkeit werden? Bei FERCHAU suchen wir Menschen mit dem gleichen Anspruch: als Expert:innen für unseren Kunden. Wir realisieren spannende Projekte für namhafte Kunden in allen Technologiebereichen und für alle Branchen und übernehmen Verantwortung für komplexe Entwicklungsprojekte. Als Berufseinsteiger:in unterstützt du deine Kolleg:innen mit neuen Ideen und festigst dein Wissen durch praktische Erfahrungen.... | Anzeige ansehen | Konstruktion, Visualisierung |
|
Dressler Mitglied technischer Angestellter
Beiträge: 301 Registriert: 19.11.2003 Acad 2002
|
erstellt am: 20. Nov. 2003 11:49 <-- editieren / zitieren --> Unities abgeben:
Jetzt stllt sich auch noch die Frage, ist dein Block schon in der Zeichnung eingesetzt oder nicht? --- Bisher ist kein Block eingefügt mit dem Zeichnungsrahmen um Platz in den Zeichnungen zu sparen wo ich verschiedene Blattgrößen mit unterschiedlichen Köpfen verwende. Wenn er schon in der Zeichnung ist, dann musst du nach der jeweiligen Blockreferenz suchen. --- Wie kann ich nach so einer Blockreferenz suchen? Wenn du aber den Block erst einfügen musst, dann ist das noch leichter, du kennst ja dann die Blockreferenz schon. --- Da gibts bei mir wenn ich das oben angegebene einfüge immer folgende Fehlermeldung: << Laufzeitfehler '-2145386445 (80200033) >> Dann stellt sich noch die Frage, gibt es den Block öffter in der Zeichnung, gibt es mehrere Layouts mit je einem Kopf, sollen alle Blöcke geändert werden oder nur der im aktuellen Layout,....? --- Da wollte ich mir später was erarbeiten, was mir das gezielte einzelen ansteuern verschiedener Layouts, oder aller gleichen Blöcke z.B. A0 Zeichnungen ermöglicht. Du solltest dir also einiges überlegen bevor su anfängst zu programmieren. Wenn du den Kopf mit dem VBA-Programm einsetzt, könntest du der Blockreferenz mit XDatas sagen, das diese Referenz dein Plankopf ist, dann findest du sie später leichter wieder. --- Nun bin ich immer noch nicht viel weiter, aber ich werde nicht aufgben. Danke schonmal im voraus. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|