Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  PLT mit Dateiname+Layout als Name erstellen

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:  PLT mit Dateiname+Layout als Name erstellen (1031 mal gelesen)
MattQ
Mitglied
Bauzeichner


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

Beiträge: 51
Registriert: 14.06.2013

erstellt am: 30. Jan. 2015 12: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

Hallo liebe Lispler,

ich stehe vor einem Problem. Zunächst: ich bin absoluter Anfänger im Lispprogrammieren. Eine Lisp einfügen und anwenden ist kein Problem, eine eigene Lisp schreiben ist dann aber doch noch nicht drin.

Ich möchte, eine Lisp erstellen (ein Kollege hat gefragt ob wir sowas haben. Natürlich nicht), die mir eine PLT Datei im Verzeichnis der zu plottenden DWG erstellt. Die PLT soll als Namen den Namen der DWG und des geplotteten Layouts bekommen, also: DWGName-Layoutx.plt

Hier habe ich folgende Lisp gefunden:

Code:
(defun C lottofile ( / FileDiaMode DwgFilePath DwgNamed )
(setq FileDiaMode (getvar "FILEDIA"))
(setvar "FILEDIA" 0)
(setq DwgFilePath (getvar "DWGPREFIX"))
(if (/= (vl-file-directory-p (strcat DwgFilePath "Plot\\" )) T)
(progn
(vl-mkdir (strcat DwgFilePath "Plot\\"))
); progn
); if
(setq DwgNamed (substr (Getvar "DWGNAME") 1 (- (strlen (getvar "DWGNAME")) 4)))
;(command "._Plot" "No" "Model" "Your Page Setup" "Your Printer Here" "Yes" (strcat DwgFilePath DwgNamed ".plt"))
(command "._Plot" "No" "Model" "Previous Plot" "mnt-hp-c5550-1" "Yes" (strcat DwgFilePath "Plot\\" DwgNamed ".plt") "No" "Yes")
(setvar "FILEDIA" FileDiaMode)
)

Diese konnte ich mir schon so zurecht stutzen, dass sie zumindest Plottertechnisch auf meine Bedürfnisse abgestimmt ist. So sieht nun meine Lisp aus:

Code:
(defun C lottofile ( / FileDiaMode DwgFilePath DwgNamed )
(setq FileDiaMode (getvar "FILEDIA"))
(setq s3 (getvar "ctab"))
(setvar "FILEDIA" 0)
(setq DwgFilePath (getvar "DWGPREFIX"))
(if (/= (vl-file-directory-p (strcat DwgFilePath "Plot\\" )) T)
(progn
(vl-mkdir (strcat DwgFilePath "Plot\\"))
); progn
); if
(setq DwgNamed (substr (Getvar "DWGNAME") 1 (- (strlen (getvar "DWGNAME")) 4)))
;(command "._Plot" "No" "Model" "Your Page Setup" "Your printer here" "Yes" (strcat DwgFilePath DwgNamed ".plt"))
(command "._Plot" "N" s3 "" "_IBVK24HP4520_24_Mischen.pc3" "Ja" (strcat DwgFilePath "Plot\\" DwgNamed ".plt") "N" "Ja")
(setvar "FILEDIA" FileDiaMode)
)

Wie bekomme ich nun der Lisp verklickert, dass sie nicht nur den DWG Namen, sondern auch den Layoutnamen verwenden soll?
Diesen Thread habe ich bereits gefunden, konnt aber leider nichts dami anfangen :(

Noch eine Frage: Die Lisp erstellt im Zielverzeichnis einen Ordner der "Plot" heißt.
Dass dafür diese Zeile verantwortlich ist habe ich schon verstanden:

Code:
(if (/= (vl-file-directory-p (strcat DwgFilePath "Plot\\" )) T)

Den Ordner Plot möchte ich allerdings nicht, die PLT soll direkt zur DWG gelegt werden. Reicht es diese Zeile zu löschen, oder entzieht sich da etwas meinem Verständnis?

------------------
Gruß Matthias

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

tunnelbauer
Ehrenmitglied V.I.P. h.c.
Bauingenieur



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

Beiträge: 7085
Registriert: 13.01.2004

ich hab eh keine Probleme damit...

erstellt am: 30. Jan. 2015 12: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 MattQ 10 Unities + Antwort hilfreich

Code:

(setq DwgNamed (substr (Getvar "DWGNAME") 1 (- (strlen (getvar "DWGNAME")) 4)))

erzeugt den Namen. Das Layout bekommst du mit (inkl. .plt):

Code:

(setq DwgNameD (strcat (vl-filename-base (getvar "dwgname")) "-" (vla-get-Name(vla-get-ActiveLayout (vla-get-ActiveDocument (vlax-get-acad-object)))) ".plt"))


ergänzt.

Die von dir zitierte Zeile schaut lediglich nach, ob das Verzeichnis vorhanden ist - legt es aber nicht an. Das macht:

Code:

(vl-mkdir (strcat DwgFilePath "Plot\\"))

EDIT:

Code:

(command "._Plot" "N" s3 "" "_IBVK24HP4520_24_Mischen.pc3" "Ja" DwgNamed "N" "Ja")


erzeugt den Namen wie gewünscht


------------------
Grüsse
Thomas

www.autocadbuch.de

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

MattQ
Mitglied
Bauzeichner


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

Beiträge: 51
Registriert: 14.06.2013

erstellt am: 30. Jan. 2015 13: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

Funktioniert und das auch noch anstandslos. Vielen Dank dafür!

------------------
Gruß Matthias

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