Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Teilstring aus MTEXT in bestimmte Excelspalte einfügen

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:  Teilstring aus MTEXT in bestimmte Excelspalte einfügen (893 / mal gelesen)
David F. 26
Mitglied



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

Beiträge: 20
Registriert: 03.05.2018

AUTOCAD 2018

erstellt am: 16. Mai. 2018 13: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

Guten Tag liebes Forum,

mal wieder steh ich vor einem Problem und hoffe ihr könnt mir helfen.

Folgendes Ziel habe ich:

- In einer Zeichnung von einem Gebäude gibt es, wie soll es auch anders sein, mehrere Türen und zwar verschiedene. Diese haben alle eine Positionsnummer. Also eine Türart = 1 Positionsnummer. Kommt die Tür also öfter vor haben sie die selbe.

- Diese Positionsnummern Trage ich an jede Tür in AutoCAD ein. Ein Beispiel wäre diese Positionsnummer: P 0.01.1.
Es kann auch passieren das noch ein a oder B hinter diese Nummer kommt. Also : P 0.01.1 a.


- Diese Nummern werden in Excel wie folgt aufgeteilt:
1. Zelle : P
2. Zelle : 0
3. Zelle : 01
4. Zelle : 1
5. Zelle : a

Ein Lösungsansatz von mir war/wäre es gewesen alle MTEXT felder aus dieser Zeichnung auszulesen welche z.B. P als erstes Zeichen haben.
Das Schema dieser Nummern ist immer gleich. Lediglich der Buchstabe am Anfang und die Zahlen variieren.

Es ist auch egal ob die ausgelesenen Textfelder von durcheinander "Sortiert" sind. Die Sortierung findet dann in Excel automatisch statt.

Also:

P 0.01.1
A 2.02.1
P 0.01.2

wird dann automatisch sortiert und sieht dann so aus:

P 0.01.1
P 0.01.2
A 0.01.2

logischer Weise je nach dem wie man es sortiert haben möchte.

Ich hoffe es ist verständlich erklärt. Wer noch zusätzliche infos braucht kann dies ja gern schreiben, denn ich stehe gerade auf dem Schlauch 

Vielen Dank im vorraus.

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

cadffm
Ehrenmitglied V.I.P. h.c.
良い精神



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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 16. Mai. 2018 13:38    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 David F. 26 10 Unities + Antwort hilfreich

Du hast kein Problem geschildert, keine Frage gestellt?

"Ein Lösungsansatz von mir war/wäre es gewesen alle MTEXT felder aus dieser Zeichnung auszulesen welche z.B. P als erstes Zeichen haben. "

Wenn es sich denn um MText-Elemente handelt dann wäre das Sinnvoll,
da die Theorie von der Praxis abweichen kann würde ich jedoch auch Texte
auslesen (ein einfaches EXPLODE auf einen MText - warum auch immer -
schon hat der User TEXT Objekte anstatt MTEXT.

Auch würde man nicht nur nach "P*" suchen, sondern wenigstens nach "P*.*.*"
Evtl. noch einen Layer als Filter hinzuziehen falls das sinnvoll erscheint.

So, diese Antwort war dann nur die Vorarbeit für andere Helfer, wenn du deine
Antwort bringst können die Helfer schon geziehlter darauf eingehen,
ansonsten wäre ja nur fertiger Code eine Antwort auf keine Frage 

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

David F. 26
Mitglied



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

Beiträge: 20
Registriert: 03.05.2018

AUTOCAD 2018

erstellt am: 16. Mai. 2018 13:44    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 cadffm,

ein fertiger Code ist natürlich nicht mein Ziel. Das würde mir ja garnix bringen  .

Da die Texte auf einem Extra-Layer sind hat sich das mit dem "Filterlayer" ja erübrigt.

Die Suche nach "P*.*.*" klingt natürlich nach einer sehr guten Lösung.


Es sollte ein Befehl sein, was ich für möglich halte. Der in eine bereits vorhandene .xls die Daten "Einfach" einträgt.
Die Liste heißt ganz simpel Türliste.

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

cadffm
Ehrenmitglied V.I.P. h.c.
良い精神



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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 16. Mai. 2018 14:05    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 David F. 26 10 Unities + Antwort hilfreich

Fang erst mal mit dem durchforsten der Datenbank an,
filtere alle AcDbMText und AcDbText objekte.

Wenn das klappt erstelle dir eine Funktion zum prüfen des TextString anhand deines "Musters"
diese kannst du dann ergänzen.

Oder wenn du dir sicher bist dass die Textobjekte nur als TopLevel Elemente im Modellbereich liegen,
also nicht verschachtelt in einem Block, dann kannst du auch mit SelectionSets arbeiten
und in einem Streich alle Texte und MTexte mit dem Muster auswählen.
Diese Variante hat jedoch einen Makel, MTexte können Formatierungscodes enthalten, je nachdem welche/wo können diese die Auswahl anhand des Textwertes verhindern.
EDIT(wobei das auch bei Textobjekten zutreffen kann, aber in der Praxis seltener vorkommt)/EDIT

Der Layerfilter hat sich nicht erledigt, rein theoretisch könnten ja auf anderen Layer ebenfalls Texte zu finden sein welche dem Muster entsprechen. Willst du also sicherstellen nur Objekte auf dem LayerX zu
sammeln mußt du auch den referenzierten Layer(namen) prüfen. Aber das ist ja deine Sache.

Wenn du dann deinen array mit den Daten hast suchst du dir Beispielcode für das Excel-Handling,
Programminstanz finden oder neu öffnen,
Dateinamen offener Dateien prüfen (nicht nötig wenn man eine neue Datei auf Basis einer Excelvorlagedatei startet),
wenn dann alles passt die Daten rüber schaufeln und Datei speichern und dann die Kleinigkeiten wie weiter verfahren werden soll mit Datei und Programm.


Man findet Unmengen Beispielcode dafür, denn jeders "Attribute nach Excel exportieren" Tool enthält den Basis-Stoff für die Aufgabe.

Wenn du nicht programmieren wolltest und es nur für eine Datei wäre,
oder auch einmalig für viele Dateien auf einmal, dann würde ich dir
sagen 'Nimm die DATENEXTRAKTION' und mach den Rest in Excel.
Aber um den Standard Programmumfang & Weg geht es hier ja nicht.

[Diese Nachricht wurde von cadffm am 16. Mai. 2018 editiert.]

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

David F. 26
Mitglied



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

Beiträge: 20
Registriert: 03.05.2018

AUTOCAD 2018

erstellt am: 16. Mai. 2018 14:10    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

Dankeschön das hilft mir sehr.

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