Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Teil einer DWG per Lisp öffnen ?

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:  Teil einer DWG per Lisp öffnen ? (1483 mal gelesen)
Juergen55
Mitglied
Elektrotechniker


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

Beiträge: 282
Registriert: 08.03.2001

Microstation V8i, TriCAD, AutoCAD2014, EPlan P8 2.2, Core I5, 16GB Arbeitsspeicher

erstellt am: 16. Apr. 2007 13: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

Hallo,

ist es möglich eine DWG per Lisp zu öffnen, also nicht mit ACAD, ich meine so ähnlich wie das XPath-Edit von den Express-Tools macht, um eine Kleinigkeit zu ändern z.B. einen Layer umbenennen, da ich an sehr vielen Zeichnungen eine minimale Änderungen durchführen solte !

Gruß, Jürgen

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

Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 16. Apr. 2007 14: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 Nur für Juergen55 10 Unities + Antwort hilfreich

Servus

Früher ging das bei mir:

(setq #pfad (getvar "DWGPREFIX"))
(command "_OPEN" (getfiled "Neue Zeichnung öffnen" #pfad "dwg" 8)

Siehe: http://ww3.cad.de/foren/ubb/Forum145/HTML/002074.shtml

------------------
Schöne Grüße
Ernst

Meine Homepage

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 17. Apr. 2007 10: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 Nur für Juergen55 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Juergen55:
Hallo,

ist es möglich eine DWG per Lisp zu öffnen, also nicht mit ACAD, ich meine so ähnlich wie das XPath-Edit von den Express-Tools macht, um eine Kleinigkeit zu ändern z.B. einen Layer umbenennen, da ich an sehr vielen Zeichnungen eine minimale Änderungen durchführen solte !

Gruß, Jürgen


Ich vermute, Du meinst damit, die Zeichnungsdatei nicht im AutoCAD-Zeichnungseditor zu öffnen, sondern so wie im Designcenter.

Ja, das geht auch mit Lisp, aber das ist nicht ganz ohne. Eine ausführliche Erklärung hier ginge viiiiiieeeeel zu weit, und mein Quellcode dafür ist mir zu wertvoll, als dass ich ihn hier einstelle. Aber ein paar Tipps gebe ich gerne: Du benötigst den ObjectDBX-Server, und der ist dummerweise abhängig von der AutoCAD-Version (ich hoffe, der Mitarbeiter bei Autodesk, der das verbrochen hat, wurde mittlerweile gefeuert!). Wenn Du nach ObjectDBX googelst, dann findest Du viele Beispiele, wie der Server eingerichtet wird. Dann musst Du mit vla-GetInterfaceObject (wieder googeln) das Interface-Object (das dient der Verbindung von ActiveX Servern) für die externen DWGs erzeugen und kannst die externen DWGs dann via Interface-Objekt ganz normal mit vla-open öffnen.

Mit ein wenig Glück findest Du beim Googeln sicher den Quellcode für ein Programmbeispiel.

Tom

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

Juergen55
Mitglied
Elektrotechniker


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

Beiträge: 282
Registriert: 08.03.2001

erstellt am: 17. Apr. 2007 11:06    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 Tom,

ja genau so mein ich das ! Danke für die Hinweise, ich hab jetzt gesehen das dass im Moment zu aufwendig wird und hab mein Vorhaben jetzt doch per script in Kombination mit einem Lisp lösen können !

Die ObjectDBX werde ich mir aber auf jeden Fall bei Gelegenheit näher ansehen !

Gruß, Jürgen

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

fred_tomke
Mitglied
Applikationsingenieur


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

Beiträge: 156
Registriert: 14.06.2004

Map 2015 x64
Win7 x64
12 GB RAM
ADN
OpenDCL

erstellt am: 27. Apr. 2007 12: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 Nur für Juergen55 10 Unities + Antwort hilfreich

Hi, Jürgen,

so schwer ist das nicht.

Code:

(defun DBX_OPEN (strFile / erg strDBX oDbx)
  (setq erg (getvar "ACADVER"))
  (cond
    ((= erg "15.0") (setq strDBX "ObjectDBX.AxDbDocument"))
    ((= (substr erg 1 4) "17.1") (setq strDBX "ObjectDBX.AxDbDocument.17"))
    ((= (substr erg 1 4) "17.0") (setq strDBX "ObjectDBX.AxDbDocument.17"))
    ((= (substr erg 1 4) "16.2") (setq strDBX "ObjectDBX.AxDbDocument.16"))
    ((= (substr erg 1 4) "16.1") (setq strDBX "ObjectDBX.AxDbDocument.16"))
    ((= (substr erg 1 4) "16.0") (setq strDBX "ObjectDBX.AxDbDocument.16"))
    ((= (substr erg 1 5) "15.05") (setq strDBX "ObjectDBX.AxDbDocument.15"))
    ((= (substr erg 1 5) "15.06") (setq strDBX "ObjectDBX.AxDbDocument.15"))
  ); cond
  (if (vl-catch-all-error-p (setq oDbx (vl-catch-all-apply 'vla-GetInterfaceObject (list (vlax-get-acad-object) strDBX))))
    (setq oDbx nil)
    (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-open (list oDbx strFile)))
      (progn
(vlax-release-object oDbx)
        (setq oDbx nil)
      ); progn
    ); if
  ); if
  oDbx
); DBX_OPEN

Und bis auf SelectionSets kannst Du jetzt alles machen. Du kannst Dir die Layers-Collection holen und diese iterativ durchlaufen. Kannst auch Objecte aus dieser Zeichnung in die aktuelle kopieren. Alles eigentlich einfach.

(setq oDbx (DBX_OPEN "Myfile.dwg"))
(setq oLayers (vla-get-layers oDbx))
(setq intLayers (vla-get-count oLayers))
(vlax-release-object oLayers)
(vl-catch-all-apply 'vla-close (list oDbx))
(vlax-release-object oDbx)

VG, Fred


------------------
Fred Tomke
Dipl.-Ing. (FH) Landespflege

[Diese Nachricht wurde von fred_tomke am 27. Apr. 2007 editiert.]

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