Comando per esportare in DXF

HOCKRIM

Utente Junior
Professione: Disegnatore CAD
Software: AutoCAD
Regione: ITALIA
#1
Salve a tutti. Avrei bisogno di un chiarimento: ho creato 2 pulsanti contenenti 2 macro separate per esportare un file DWG in DXF versione 2004.
Il primo pulsante contiene questa macro:

^C^CATTDIA;0;ATTREQ;1;QSAVE;_DXFOUT;;V;2004;;(alert "Esportazione effettuata con successo");

e si preme la solo la prima volta o se non esiste il file DXF con lo stesso nome del DWG.


Il secondo pulsante contiene la macro:

^C^CATTDIA;0;ATTREQ;1;-QSAVE;_DXFOUT;;SI;V;2004;;(alert "Esportazione effettuata con successo");

e si preme quando esiste il file DXF con lo stesso nome del DWG.

Si può fare un comando lisp che esegue DXFOUT in DXF 2004 e verifichi se esiste o meno il file DXF nella stessa cartella del DWG e se esiste lo sovrascrive automaticamente mentre se non esiste lo crea?
Oppure se si può, c'è la possibilità di unificare il comando in un pulsante solo, onde evitare che l'utente sbagli a premere pulsante e di conseguenza la macro non funziona correttamente?

Grazie.
 
Ultima modifica:

GP.

Utente Senior
Professione: Nientologo
Software: uozapp
Regione: Vercelli
#2
Nella seconda riga di codice Inserisci un nome di percorso valido per il tuo pc.
Se alla richiesta del nome del dxf premi INVIO confermi quello che il programma ti propone.

Codice:
(defun c:dxf  ()
    (setq percorso "D:\\pippo\\")
    (setq nomedis (getstring t (strcat "\nNome del File  <" (vl-filename-base (getvar 'dwgname)) ">: ") ) )
    (if (equal nomedis "") (setq nomedis (vl-filename-base (getvar 'dwgname))))
    (if (findfile (strcat percorso nomedis ".dxf"))
        (command "_saveas" "DXF" "V" "2004" "" (strcat percorso nomedis) "_y")
        (command "_saveas" "DXF" "V" "2004" "" (strcat percorso nomedis))
    )
    (princ)
)
 

HOCKRIM

Utente Junior
Professione: Disegnatore CAD
Software: AutoCAD
Regione: ITALIA
#3
Grazie mille. Ho provato, funziona, però a me servirebbe lo stesso con il comando dxfout e non saveas perché con quest'ultimo si chiude il dwg e apre il dxf, mentre a me serve che il dwg rimanga aperto.
 

GP.

Utente Senior
Professione: Nientologo
Software: uozapp
Regione: Vercelli
#4
Sovrascrive sempre, chiaramente se il dxf non è aperto.

Codice:
(defun c:dxf ()
    (command "dxfout" (strcat (getvar 'dwgprefix) (vl-filename-base (getvar 'dwgname))) "_V" "2004" "")
)
 

HOCKRIM

Utente Junior
Professione: Disegnatore CAD
Software: AutoCAD
Regione: ITALIA
#5
Grazie mille GP, proprio quello che mi serviva, funziona egregiamente.