Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Blockattribute in eine Textdatei schreiben

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:  Blockattribute in eine Textdatei schreiben (3038 mal gelesen)
ela-cad
Mitglied



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

Beiträge: 77
Registriert: 10.09.2009

AutoCAD Architecture 2016

erstellt am: 30. Sep. 2009 00:09    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

Hallo Forum,

vorweg: ich bin ein Neuling und darf mich mit AutoCAD Architecture 2010 beschäftigen.

Mit unserem „alten“ Programm (PROCHEM-C) schreibe ich die Schriftfeldeinträge in eine Textdatei. Diese wird mit einer HPGL-Datei der Zeichnung in ein Spul-DIR gestellt und von dort über einen crontabjob in unser Datenbanksystem (CIM-DATABASE) eingespielt.

Da hier nicht viel dran zu rütteln ist möchte ich diese Vorgehensweise mit AutoCAD nachbilden.

Mein Problem (Schritt 1):
Wie kann ich meine Schriftfeldattribute mit einem VBA-Script mit eine Textdatei schreiben?

Ich habe ein Schriftfeld als Blockreferenz erzeugt:
Name – Schriftfeld_Typ_9231
Attribute:
ZCHNG = „zeichnungsnummer“
ZEILE1=“erste Zeile“
ZEILE2=“zweite Zeile“


Über DATENEXTRAKT kann  ich die Daten schön auslesen aber!!!!!!!!

Es ist bestimmt eine FAQFrequently asked questions (Häufig gestellte Fragen) und die Beiträge die ich gefunden habe sind „profihaft“

Frage 1: wie kann ich in der aktuellen DWG das Schriftfeld ansprechen
Frage 2: wie kann ich dann die Attribute in eine Textdatei schreiben

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 30. Sep. 2009 00:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

ich hab nicht viel verstanden, von dem was Du schreibst und bin auch nicht glücklich mit dem, wie ihr tut (HPGL-Datei in DocumentManagementSystem ist ziemlich bedenklich, aus meiner Sicht und nur aus dem heraus, was Du schreibst,a lso eine sehr begrenzte Sicht).

Aber die Aussage:

>> Über DATENEXTRAKT kann  ich die Daten schön auslesen aber

Das 'aber' erkenne ich hier nicht. Datenextrakt schreibt die Attributsinhalte in eine Textdatei raus, wo ist jetzt das 'aber'? Denn eigentlich beantwortet dieses Deine abschliessende Frage 2.


>> wie kann ich in der aktuellen DWG das Schriftfeld ansprechen

Schriftfelder sind Bestandteile von AttributReferenzen, Texten oder MTexten und keine eigene Geometrie. Wo und wie willst Du diese 'ansprechen', welche Aufgabe steht hier dahinter? Wenn Du nur das Ergebnis der Auswertung des Schriftfeldes sehen willst, dann hast Du in den oben genannten Objekten die Eigenschaft 'TextString', da steht das Ergebnis drin (ev. muß vorher regeneriert werden oder mittels Befehl 'schriftfeldakt' die bestehenden Schriftfelder aktualisieren).

- alfred -

------------------
www.hollaus.at

ela-cad
Mitglied



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

Beiträge: 77
Registriert: 10.09.2009

AutoCAD Architecture 2016

erstellt am: 30. Sep. 2009 12:08    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

Hallo Alfred,

um unser Vorgehen noch etwas zu vertiefen (nicht mit AutoCad):
Ich bearbeite eine Zeichnung und drücke auf >speichern<. Nun wird ein Skript (Befehlskette) abgearbeitet, das die Einträge aus dem Schriftfeld wie z.B.  „zeichnungsnummer“, “erste Zeile“, “zweite Zeile“, usw. mit einem Feldtrennungszeichen in eine Textdatei schreibt.
Die Zeichnung selber wird wie gesagt als HGPL-Datei beigefügt.

In der Datenbank werden die Texte in die entsprechenden Felder der Dokumentensuchmaske eingetragen und mit der Zeichnung „verknüpft“.

In der Datenbank stehen nicht nur unsere Dokumente (Zeichnungen) sondern auch z.B. Rechnungen, Terminpläne, Konformitätserklärungen,  Tabellen,  Betriebsanweisungen, Wartungsvorschriften usw.

Wie gesagt möchte ich bei AutoCad ein ähnliches Verhalten haben, wobei ich dann kein HPGL sondern ein PDF übergeben möchte.

Die Datenbank dient NICHT dazu unsere DWG-Files zu verwalten.

Bei dem Befehl DATENEXTRAKT kann ich zwar Textdateien erzeugen,  erkenne aber nicht mehr die einzelnen „Datensätze“. Den Befehl müste ich auch in ein Makro einbinden, es sollten aber keine weiteren Abfragen kommen.

Daher dachte ich mir als „Neuling“ ein VBA-Skript kann mir die Blockreferenz – Name: Schriftfeld_Typ_9231 suchen, und die entsprechenden Attributeinträge in eine Textdatei schreiben ohne Abfragen an den Anwender.

Bei uns ist das Schriftfeld der Zeichnungsrahmen mit dem Zeichnungskopf und den entsprechenden Einträgen.

Um die Übergabe an die Datenbank vornehmen zu können muß ich auch noch ein PDF erzeugen. Hierzu werde ich sicherlich auch noch um Hilfe rufen.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 30. Sep. 2009 12:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

>> Bei dem Befehl DATENEXTRAKT kann ich zwar Textdateien erzeugen, 
>> erkenne aber nicht mehr die einzelnen „Datensätze“.

Die mit Datenextrakt erzeugte Datei wird Dir je Schriftfeld eine ASCII-Zeile ausgeben. Hast Du mehrere Schriftfelder in Deiner Zeichnung, dann bekommst Du eben mehrere Zeilen in Deiner ASCII-Datei.


>> Den Befehl müste ich auch in ein Makro einbinden,
>> es sollten aber keine weiteren Abfragen kommen

Kannst Du auch mit DATENEXTRAKT, musst nur einmal eine Exportdefinitionsdatei anlegen (DXE-Datei) und dann den Befehl mit einem Bindestrich davor aufrufen ( -DATENEXTRAKT ), dann geht's auch in einem Makro ohne Dialog.

Und sind die Schriftfelder immer gleich (ist ja zu hoffen, sonst wird's auch nix - bzw. nicht so leicht - mit der Automatisierung), dann ist in der DXE-Datei festgehalten, welcher Attributsinhalt in welcher Spalte der Ergebnisdatei/-Zeile) steht.

Willst Du es unbedingt trotzdem Programmieren, dann wird Dir hier am besten geholfen, wenn Du mal zeigst, was bisher an Code (ev. mit Beispielzeichnung dazu) existiert, damit wir dort ansetzen können.

- alfred -

------------------
www.hollaus.at

ela-cad
Mitglied



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

Beiträge: 77
Registriert: 10.09.2009

AutoCAD Architecture 2016

erstellt am: 30. Sep. 2009 21:00    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


Schriftfelder.rar

 
Hallo Alfred,

der Hinweis war super. In einem Makro läuft alles auch ohne Anwendereingabe.

Es kommt leider noch ein kleines aber!
In der Textdatei von AutoCad "Schriftfeld_9514.txt" s.h. Anhang ist noch die Überschrift vorhanden und das Feldtrennungszeichen ist der TAB.
In unserer Datei (Prochem-C) "ZI-0001234.txt" ist keine Überschrift und das Trennungszeichen ist der Strich >|<.
Diese Unterschiede würde ich jetzt über ein Linux-Script ausgleichen und den Dateinamen auch an die Zchng-Nr anpassen, bevor ich die Dateien an die Datenbank "weiterleite".

Diesen zusätzlichen Schritt würde ich gern von AutoCad erledigen lassen, wenn es über eine einfache VBA-Sub geht.
Wir beginnen mit AutoCad bei NULL, und meine VBA-Kenntnisse habe ich mit Excel erworben und sind für den "Hausgebrauch".

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 30. Sep. 2009 22:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

verstehe ich richtig, Dein bisheriges Handling führt dazu, dass bereits die TXT-Datei fertig rauskommt, es geht nur mehr um Umbenennen der Datei und um das Entfernen der ersten Zeile (der Überschriften) und das Ersetzen von TAB nach '|'?

Das geht mit AutoCAD-VBA gleich wie mit Excel-VBA.

AutoCAD-seitig brauchst Du eigentlich nur den Namen der Datei, den kannst Du mit

Code:
ThisDrawing.Name

herausholen.

Das Datei öffnen, die Überschrift vernichten und die Tab's ersetzen ist ident zu anderen VBA's

- alfred -

------------------
www.hollaus.at

ela-cad
Mitglied



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

Beiträge: 77
Registriert: 10.09.2009

AutoCAD Architecture 2016

erstellt am: 30. Sep. 2009 22:25    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

Hallo Alfred,

vielen Dank, das hört sich gut an.

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