Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Linientyp in der ganzen Zeichnung ersetzen

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:  Linientyp in der ganzen Zeichnung ersetzen (2324 mal gelesen)
autocart
Mitglied
Technischer Redakteur


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

Beiträge: 695
Registriert: 08.09.2003

erstellt am: 26. Nov. 2010 14: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 Leute!

Bei mir soll ein Linientyp in der ganzen Zeichnung durch einen anderen ersetzt werden. Das könnte ich zwar über die CAD-Standards machen, aber es sind mehrere Linientypen betroffen und das soll alles automatisch über eine Mappingtabelle gehen (beim CAD-Standards-Tool muss ich immer für jeden Linientyp einen Ersatzlinientyp händisch wählen).

So weit so gut. Das Problem ist, dass ich davon ausgehen muss, dass beide Linientypen (der, der ersetzt werden soll, sowie der andere, durch den ersetzt wird) bereits in der Zeichnung vorhanden und referenziert sind. Daher bleibt mir nichts anderes übrig, als alle Referenzen auf den "alten" Linientyp in der gesamten Zeichnung zu finden und (ev. mit entmod) durch Referenzen auf den "neuen" Linientyp auszutauschen.

Der "alte" Linientyp soll danach übrigens gelöscht werden.

Frage:
Wie würdet ihr es am besten angehen, mit AutoLISP (oder wenns nicht anders geht auch mit .NET) die ganze Zeichnung nach dem "alten" Linientyp zu durchkämmen und die entsprechenden Elemente zu ändern?

Danke, danke und danke für jeden Hilfeversuch.

------------------
Gruß, Stephan
www.stbartl.at

"Alles sollte so einfach wie möglich gemacht werden, aber nicht einfacher." - Albert Einstein

[Diese Nachricht wurde von autocart am 26. Nov. 2010 editiert.]

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 26. Nov. 2010 16:01    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 autocart 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von autocart:
...Frage:
Wie würdet ihr es am besten angehen, mit AutoLISP (oder wenns nicht anders geht auch mit .NET) die ganze Zeichnung nach dem "alten" Linientyp zu durchkämmen und die entsprechenden Elemente zu ändern?
...

Hallo,

im Grunde ist es doch egal, in welcher Programmiersprache du das Thema angehst. Es ist am Ende in jedem Fall schneller, als bei einer Änderung von Hand.
Aber um Deine Frage zu beantworten: Ich würde es in C#.Net machen. Ist in der Anwednung schneller und mit der Programmierung ist man genausoschnell fertig.


Bei Fragen ...

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!

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

autocart
Mitglied
Technischer Redakteur


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

Beiträge: 695
Registriert: 08.09.2003

erstellt am: 26. Nov. 2010 17: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

Danke, Holger, für die Antwort am späten Freitag Nachmittag.

Das mit der Programmiersprache war aber nur ein Nebengedanke. Meine Hauptfrage ist: Wie gehe ich es grundsätzlich an, dass ich mit möglichst wenig Aufwand möglichst sicher alle in der Zeichnung vorhandenen Referenzen auf den Linientyp erwische.

Es gibt ja so viele Orte, an denen ein Linientyp referenziert sein kann. Und wie soll ich am besten mit der Möglichkeit umgehen, dass eine Referenz auf den Linientyp vielleicht auch in div. benutzerdefinierten (extension) Dictionaries vorkommen kann. Bin mir z.Z. nicht ganz sicher, wie ich da für jeden Fall sicherstellen kann, dass die Referenz ausgetauscht wird.

Vielleicht gibt es ja bereits Code oder Ansätze, die etwas ähnliches machen. Oder vielleicht übersehe ich irgentwelche einfachere Möglichkeiten als selbst alle Orte in der Datenbank einzeln finden und abfragen zu müssen. Noch dazu könnten da bei jeder Autocad-Version neue Orte in der DB dazukommen.

------------------
Gruß, Stephan
www.stbartl.at

"Alles sollte so einfach wie möglich gemacht werden, aber nicht einfacher." - Albert Einstein

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 29. Nov. 2010 07:31    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 autocart 10 Unities + Antwort hilfreich

... dann versuch doch erst einmal den einfachsten Weg.

Der Linientyp ist ja zunächst mal als Stil zu betrachten. Folglich sollte es genügen, wenn du den Stil manipulierst .. dort also die neue Linientyp-Datei zuweist. Danach (von mir aus auch davor) kannst du ja den Stil umbenennen und fertig ist die Kiste bei minimalsten Aufwand. Funktionieren wird das allerdings nur, wenn der neue Linientyp nicht schon in der Zeichnung verwandt wird.

Ansonsten gibt's wirklich nur den Weg, dass du an alles denken musst, was einen Linientyp referenzieren könnte und dort dann eben die´notwendigen Änderungen vornehmen.

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!

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

Wolfgang S
Mitglied
CADaver


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

Beiträge: 270
Registriert: 06.03.2006

AC 2009, C3D 2009, AC 2010, C3D 2010, AC 2011, C3D 2011, RVT 2010, RVT 2011, ASD 2011 und alles darunter bis R14 +
Win XP, Win XP64, Win 7/64

erstellt am: 29. Nov. 2010 08:22    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 autocart 10 Unities + Antwort hilfreich

Grüß Euch!

Ich bin dieses Problem schon einmal angegangen.
folgende Hinweise:

- XREF-Linientypen beachten, evt. mit Switch im Programm, Namenssuche mit dem *|*

- Layer Linetypes ändern
- alle 'losen' Elemente mit LT=/ByLayer oder ByBlock und mit dem gesuchten LT
- alle Blockdefinitionen die nicht xrefabhängig sind durchgehen
- alle Attribute durchgehen -> SEQEND-Layer
- alle Blockreferenzen durchgehen -> SEQEND-Layer

ich hab bei mir gleich mal den falschgeschriebenen Continous-Linetype und den AUSGEZOGEN Linientyp mit bearbeitet.

alte Polylines hab ich nicht, das wäre evt. auch interessant bez. SEQEND

weiters habe ich bei mir dann nochmal alle Linetypes nachgeladen,
war aber noch ein größerer Umfang der von dem Proggi abgearbeitet wurde.

lg
Wolfgang

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