Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Formular zum ausfüllen meines Zeichnungskopfes

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von Dressler an!   Senden Sie eine Private Message an Dressler  Schreiben Sie einen Gästebucheintrag für Dressler

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 19. Nov. 2003 11:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von JoeG an!   Senden Sie eine Private Message an JoeG  Schreiben Sie einen Gästebucheintrag für JoeG

Beiträge: 122
Registriert: 18.10.2002

Autocad 2000 und Win2000

erstellt am: 19. Nov. 2003 12:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Dressler an!   Senden Sie eine Private Message an Dressler  Schreiben Sie einen Gästebucheintrag für Dressler

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 19. Nov. 2003 13:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von JoeG an!   Senden Sie eine Private Message an JoeG  Schreiben Sie einen Gästebucheintrag für JoeG

Beiträge: 122
Registriert: 18.10.2002

Autocad 2000 und Win2000

erstellt am: 19. Nov. 2003 15:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Dressler an!   Senden Sie eine Private Message an Dressler  Schreiben Sie einen Gästebucheintrag für Dressler

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 20. Nov. 2003 07:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von RoSiNiNo an!   Senden Sie eine Private Message an RoSiNiNo  Schreiben Sie einen Gästebucheintrag für RoSiNiNo

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich

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 ansehenKonstruktion, Visualisierung
Dressler
Mitglied
technischer Angestellter


Sehen Sie sich das Profil von Dressler an!   Senden Sie eine Private Message an Dressler  Schreiben Sie einen Gästebucheintrag für Dressler

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 20. Nov. 2003 11:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz