Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Layer umbenennen (VBA)

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
  
NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung
Autor Thema:  Layer umbenennen (VBA) (2594 mal gelesen)
cadnetz
Mitglied
techn. Sachbearbeiter Elektronetzte - Fachadmin CAD


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

Beiträge: 45
Registriert: 18.04.2008

erstellt am: 17. Feb. 2009 11:47    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


VBA-Code.txt

 
Hallo,
ich habe unmengen an alten zeichnungen, die in autocad bearbeitet werden müssen. Einige Layer sind zu löschen, andere mit Farbe etc. zu versehen.Klappt soweit ganz gut (siehe VBA-Code). Nun das Problem:

Die alten haben eine einheitliche Layerstruktur, die soll auch beibehalten werden, allerdings mit dem Präfix des Dateinamens.
Kann mit jemand einen Dankanstoß geben ?
Ich bin noch Anfänger in VBA!

[Diese Nachricht wurde von cadnetz am 17. Feb. 2009 editiert.]

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


Ex-Mitglied

erstellt am: 17. Feb. 2009 15:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

In Deinem Code (nur überflogen) hast Du ein wenig mehr Probleme (aus meiner Sicht) und ich ein paar Fragen.

Erstens verstehe ich nicht, aus welchem Grund man Elemente lösche aus alten Zeichnungen. Wenn Du schon layerbezogen löscht, dann kannst Du das über ein SelectionSet schneller machen (ausser Du arbeitest mit .NET und hast die DWG-Datenbank nicht im Editor, sondern nur im Memory geöffnet).

Dann gäbe es auf noch Zeichnungsvorlagen, wenn Du eine Vorlage öffnest, in der die Layereigenschaften schon richtig gestellt sind, dann Deine zu modifizierende DWG in diese Vorlage einfügst, dann brauchst Du nicht mehr jedem Layer seine Eigenschaften mitgeben.

Lass mich mal Deine Gedanken (bzw. Veto's mit Begründung) zu obigem wissen.

- alfred -

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

cadnetz
Mitglied
techn. Sachbearbeiter Elektronetzte - Fachadmin CAD


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

Beiträge: 45
Registriert: 18.04.2008

erstellt am: 18. Feb. 2009 09:55    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


test.zip

 
Zitat:
Original erstellt von a.n.:
Hi,

In Deinem Code (nur überflogen) hast Du ein wenig mehr Probleme (aus meiner Sicht) und ich ein paar Fragen.

Erstens verstehe ich nicht, aus welchem Grund man Elemente lösche aus alten Zeichnungen. Wenn Du schon layerbezogen löscht, dann kannst Du das über ein SelectionSet schneller machen (ausser Du arbeitest mit .NET und hast die DWG-Datenbank nicht im Editor, sondern nur im Memory geöffnet).

Dann gäbe es auf noch Zeichnungsvorlagen, wenn Du eine Vorlage öffnest, in der die Layereigenschaften schon richtig gestellt sind, dann Deine zu modifizierende DWG in diese Vorlage einfügst, dann brauchst Du nicht mehr jedem Layer seine Eigenschaften mitgeben.

Lass mich mal Deine Gedanken (bzw. Veto's mit Begründung) zu obigem wissen.

- alfred -



alte Layerstruktur aus Zeichnung1(Auszug):
110_FLT
110_FLT_F
220_FLT
220_FLT_F

alte Layerstruktur aus Zeichnung2(Auszug):
110_FLT
110_FLT_F
220_FLT
220_FLT_F

neue (angedachte) Layerstruktur in der Form "Dateinamealt-Layernamealt" (Auszug):
Zeichnung1-110_FLT
Zeichnung2-220_FLT

Erklärung:
alle (alt-)Layer mit "_F" am Ende sind sogenannte Fremdlayer, das heißt Elemente, die nicht zur eigentlichen Zeichnung gehören, sondern nur zum besseren Verständnis eingezeichnet wurden (mit dem Programm autoSketch, gespeichert als dwg). Eingezeichnet deswegen, weil AutoSketch keine Referenztechnik kann. In der neuen Zeichnungsform werden Sie nicht mehr benötigt, deswegen möchte ich sie entfernen und nicht nur frieren.
Es sollen jetzt verschiedene (Alt-)Zeichnungen zusammengefasst werden. (keine Referenztechnik!). Es werden dann auch gleichnamige Layer aus verschiedenen zeichnungen mit verschiedenen inhalten in die neue zeichnung eingefügt. Um weiterhin die elemente z.B. "110_FLT" aus den verschiedenen Zeichnungen unterscheiden zu können,war meine Idee, den alten Dateinamen, der gleichzeitig auch die Inhalte der Zeichnung eindeutig beschreibt, als Präfix dem bisherigen Dateinam voranzustellen.

Zu meinen VBA-Kenntnissen: Ich habe mir den Code im Forum "zusammengeklaut" und dann versucht an meine Bedürfnisse anzupassen.
Gestern habe ich mir das buch AutoCAD programmieren mit VBA http://www.amazon.de/AutoCAD-programmieren-Einf%C3%BChrung-Anwendung-Referenz/dp/3827321050
bestellt.

zu deinem kommentar:
selectionSet sagt mir momentan noch nichts (sorry :-))
Zeichnungsvorlagen entfallen, da ich ja den alten Dateinamen als Pfäfix dem neuen Layernamen voranstellen möchte, klar, das wäre einfach.
Siehe bitte auch Beispiel

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13530
Registriert: 30.11.2003

ACAD 2008 Mechanical

erstellt am: 18. Feb. 2009 10: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 cadnetz 10 Unities + Antwort hilfreich

.. wenn du nicht lange rumprobieren willst: hier hatte ich schon mal ne Lösung für ein ähnliches Problem ... Layereigenschaften evtl noch nach Vorgabe anpassen könnte man noch einbauen.

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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


Ex-Mitglied

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

Hi,

sorry, der Thread ist mir 'entglitten', lass mich wissen, wenn CADmium's Link schon zum Erfolg führt/geführt hat.

Zitat:
selectionSet sagt mir momentan noch nichts
Nach dem Du ja schon Erfahrung mit 'Code klauen' hast ;) solltest Du auch mit Stichwörtern mal die Developer-Hilfe von AutoCAD aufmachen und mal darin suchen, da wirst Du unter dem Begriff 'SelectionSet' fündig werden, fündig im Sinne von Beschreibung plus Beispiel.
Zitat:
Zeichnungsvorlagen entfallen, da ich ja den alten Dateinamen als Pfäfix dem neuen Layernamen voranstellen möchte, klar, das wäre einfach
...zumindest würdest Du Dir damit ersparen, dass Du die Layereigenschaften definieren müsstest.

Als Beispiel: eine Vorlagenzeichnung hat den Layer 110_FLT schon definiert, Du fügst 'Zeichnung1.dwg' ein, damit kommen die Elemente der 'Zeichnung1.dwg' auf diesen Layer, danach machst noch umbenennen von '110_FLT' auf 'Zeichnung1-110_FLT', fertig.

Aus rein privatem Interesse: wofür braucht man das ausser um eine Layerstruktur zu torpedieren (z.B. Umgang mit Layerfilter hast Du Dir damit schon mal grob verschlechtert).

- alfred -

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

cadnetz
Mitglied
techn. Sachbearbeiter Elektronetzte - Fachadmin CAD


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

Beiträge: 45
Registriert: 18.04.2008

erstellt am: 19. Feb. 2009 12: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

Ich habe ca. 600 Zeichnungen, ähnlich wie in der test.dwg dargestellt, nur größer. Alle koordinatenmäßig so um 0,0 (x/y)gezeichnet. Alle zeichnungen haben dieselbe Layerstruktur, jeweils ca. 20 Layer. Ziel: Alle Zeichnungen in eine zusammenführen und dadurch einen Zusammenhängenden Leitungsplan erstellen. Quasi lokal georeferenzieren. Eine Übersicht erstellen. Alle Elemente werden jeweils einer Leitung zugeordnet. Dies geschieht durch Zuordnung zum Layer "Dateiname-LayerX). Danach Trennung der Layer nach dateiname in eigene zeichnungen. und anschließend die Dateien, die in Bezug zueinander stehen mit AutoCAD-Referenzen zusammenführen.
Das zusammenführen in eine große zeichnung ist wichtig, um bisher doppelt gepflegtes zu erkennen und zu verbessern.
Da gibt es die verschiedensten Anforderungen, welche Zeichnungen referenziert werden sollen. Ich weiß, hört sich schrecklich an, ist aber für uns eine gute Lösung. Danach haben wir einen superflexiblen, leicht änderbaren Plan. Ich habe dazu auch von anderen firmen, die AutoCAD verwenden, Rat eingeholt. Für uns ist diese Vorgehensweise ideal.

Nur bin ich zu faul, die Layernamen Dateinamen händisch zu ergänzen. Außerdem muß man irgendwann mit VBA anfangen, sonst lernt man's ja nie.

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


Ex-Mitglied

erstellt am: 19. Feb. 2009 13:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Du hast AutoCAD Map 3D ==> da ist eine Grundfunktion das Abfragen von Objekten aus mehreren Zeichnungen und gleichzeitig können Objekteigenschaften geändert werden (LayerNamen). Deine ganze Aufgabe hört sich (nach Deiner letzten Beschreibung) so an, dass Du das ganze ohne Programmierung nur mit den Map-Abfragen durchführen kannst.

- alfred -

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

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)2025 CAD.de | Impressum | Datenschutz