Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Datei öffnen per Lisp

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:  Datei öffnen per Lisp (5882 mal gelesen)
s.wickel
Mitglied
Bauingenieur Wasserwirtschaft


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

Beiträge: 422
Registriert: 17.12.2001

erstellt am: 20. Mrz. 2002 08:19    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!

Ich wollte ein LISP schreiben, dass den normalen Datei öffnen Dialog von ACAD umgeht und statt dessen den magereren getfiled-Dialog anzeigt. Aber warum funktioniert das nicht? Das Lisp sieht so aus:

(defun C:WOPEN()
  (if (not Wopen_datnam) (setq Wopen_datnam "d:"))  ;Vorgabe für Dateiname setzen
  (setq Wopen_datnam (getfiled "Zeichnung Öffnen" Wopen_datnam "DWG; DXF" 4))  ;Dateiname wählen
  (setvar "filedia" 0)
  (command "_open" Wopen_datnam)  ;Datei öffnen
  (setvar "filedia" 1)
  (princ)
)

Wenn ich die Funktion lade und mit "wopen" eine Zeichnung öffnen will, dann bekommen ich immer die Meldung :

  Befehl: wopen
  _open
  Befehl: D:\Temp\Kanal.dwg Unbekannter Befehl "D:\TEMP\KANAL.DWG". Drücken Sie F1-Taste für Hilfe.

  Befehl:

Welchen Fehler habe ich gemacht? Der Openbefehl gibt NIL zurück und der Dateiname wird als Befehl interpretiert.

Stefan

PS: Wer wissen will warum ich das mache sollte mal bei http://www.cad.de/foren/ubb/Forum54/HTML/001144.shtml vorbei surfen!

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

CADwiesel
Moderator
CAD4FM UG




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

Beiträge: 1973
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 20. Mrz. 2002 09:51    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 s.wickel 10 Unities + Antwort hilfreich

hAI
Das Problem ist allerdings , dass der code nur bis zu dem Open command ausgeführt wird. Alles dannach kannste vergessen.

(defun C:WOPEN ()
  (if (not Wopen_datnam)
    (setq Wopen_datnam "d:")
    )                                  ;Vorgabe für Dateiname setzen
  (setq Wopen_datnam
        (getfiled "Zeichnung Öffnen" Wopen_datnam "DWG; DXF" 4)
        )                              ;Dateiname wählen
  (setvar "filedia" 0)
(if (zerop (getvar "DBMOD"))
  (command "._OPEN" Wopen_datnam)
  (command "._OPEN" "_Y" Wopen_datnam))        ;Datei öffnen
  ) ;_ end of defun

------------------
Gruß
CADwiesel

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

glichten
Mitglied
Techniker

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

Beiträge: 1
Registriert: 22.03.2002

erstellt am: 22. Mrz. 2002 21:21    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 s.wickel 10 Unities + Antwort hilfreich

Hallo Stefan,
ich habe das selbe Problem. Dieser Befehl funktioniert in Autocad R14
einwandfrei.
Ich habe meine komplette Zeichnungsarchivierung mit diesen Befehlen
(_open, _new) aufgebaut.
Dieser Befehl funktioniert bis zur Version Autocad R14 enwandfrei.
(command "_open" "_y" "zeichnung")

Aufruf an alle! Bitte Lösung suchen.

Georg

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

nahe
Ehrenmitglied



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

Beiträge: 1738
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 23. Mrz. 2002 07:42    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 s.wickel 10 Unities + Antwort hilfreich

Hallo Stefan

vieleicht hilft Dir das weiter. Zu finden unter http://www.autodesk.com/cgi-bin/external.pl?url=http://pointa.autodesk.com/gotoPointA.jsp?dest=cc

  Opening a read-only DWG with AutoLISP and ActiveX 
ID    53780 
Applies to:    AutoCAD

Date    6/6/2000 

Question
How do I use AutoLISP to open a read-only drawing ? I've tried various
combinations of (command "OPEN" ..), but the OPEN command locks up when the
Read-Only Warning dialog displays and prompts for user input.
Answer
The solution to this depends on the document mode.

In SDI mode, setting the EXPERT system variable to 5.

In MDI mode, the easiest way to open a read-only drawing is to use the ActiveX
interface.

The following code demonstrates both approaches:
(defun OpenAReadOnlyDWG ()

(setq MDImode (getvar "SDI"))
(setq aDwgFile (findfile "Junk.Dwg"))

(if aDwgFile
  (if (= MDImode 0)
(progn  ; Multiple Document Mode
  (vl-load-com)
  (setq acadApplication (vlax-get-acad-object))
  (setq acadDocuments (vla-Get-Documents acadApplication))
  (vla-Open acadDocuments aDwgFile :vlax-True)
)
; in SDI mode it's not possible to use ActiveX
(progn
  (setq oldexpert (getvar "EXPERT"))
  (setvar "EXPERT" 5)
  (command "OPEN" aDwgFile)
  (if (> (getvar "CMDACTIVE") 0) (command "Y") )
  (setvar "EXPERT" oldexpert)
)
    )
    (princ (strcat "\nDrawing File: " aDwgFile " was not found !"))
)
(princ)
)
Note that when SDI = 1, in the first release of AutoCAD 2000, there's a problem
that causes AutoCAD to abort when you try to run either a VBA macro, or an
ActiveX function from Lisp that attempts to open a drawing. The capability to
use the Open Method when SDI = 1, has been disabled in a later release.

Another way to open a readonly file would be by using a script, for instance
this accomplishes the same thing as the lisp code, but in SDI mode:
SDI
1
FILEDIA
0
CMDDIA
0
EXPERT
5
OPEN
JUNK
Y
FILEDIA
1
CMDDIA
1
EXPERT
0

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

Dieter Jannediddi
Mitglied
Kaufmann

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

Beiträge: 5
Registriert: 09.04.2002

erstellt am: 09. Apr. 2002 13:50    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 s.wickel 10 Unities + Antwort hilfreich

Eine einigermassen "saubere" Lösung für die Verwendung des _new oder
_open Befehls innerhalb von LISP bietet sich mit einem Script an.

Der Ablauf in Stichworten:

+ per LISP der gewünschten Dateinamen etc. ermitteln
+ per LISP eine temporäre SCRIPT Datei mit OPEN/NEW Befehlen und dem
  Dateinamen anlegen
+ per LISP das SCRIPT ausführen
+ SCRIPT öffnet die gewünschte Zeichnung

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

s.wickel
Mitglied
Bauingenieur Wasserwirtschaft


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

Beiträge: 422
Registriert: 17.12.2001

Bricscad V7 - V11

erstellt am: 09. Apr. 2002 14:17    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 alle zusammen.

Danke für die Antworten. Meine Frage hat sich erübrigt, weil das SP 1 für ACAD 2002 mein Problem gelöst hat. Aber Trotzdem bekommt ihr alle was. Leider hatte ich den Beitrag in letzter Zeit aus dem Auge verloren.

Stefan

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