Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Formatgröße übergeben

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:  Formatgröße übergeben (1319 mal gelesen)
CADchup
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3329
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 31. Mrz. 2003 15:58    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

Hi Lispler,

mit
(vla-GetPaperSize(vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object))) 'width 'height)
wird die Größe des aktuellen Papierformats in die Variablen width und height gespeichert.
Hat jemand eine Idee, ob und wie man solche Abmessungen mit VLisp in das Layout rein bekommt?

Hintergrund: Ich möchte das Papierformat, das beim "Drucken" oder "Seite einrichten" vom Anwender gewählt wurde, autom. für einen anderen Drucker benutzen, ohne dass der Anwender das nochmal einstellen muss. Leider kann ich (vla-get-CanonicalMediaName) nicht benutzen, da die Formate der Drucker unterschiedliche Namen haben.
<seufz>

Idee?

------------------
www.cadditions.de

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: 31. Mrz. 2003 22:39    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 CADchup 10 Unities + Antwort hilfreich

Hallo CADchup,

da wirst du wohl um eine Umsetzungstabelle nicht umhin kommen. Ambesten alle Blattformate mit 'nem kleinen Tool rausschreiben lasse und diese dann manuell vergleichen und dann eine Umsetzungstabelle dazu aufbauen.
Ich würde die gleichen Formate (mit unterschiedlicher Bezeichnug in ein Liste schreiben lassen, die ich dann nach dem gesucheten Wert durchforste.
Spontan würde ich folgenden Aufbau wählen.
Liste 1 (in der ich gleiche Formate zusammenfasse):
'(
("A4" "ISO A4" "A4 Hochformat")
("A3" "ISO A3" "A3 Hochformat")
)
Liste 2 (die die Druckerspezifikation enthalt):
'(
("Drucker 1" . ("A4" "A3"))
("Drucker 2" . ("ISOA4" "ISOA3"))
("Drucker 3" . ("A4 Hochformat" "A3 Hochformat"))
)

Vom Ablauf her würde ich dann in Liste 2 schauen, welche Formate der Drucker unterstützt. Dann würde ich aus Liste eins die möglichen Formatbezeichnungen (bekommt man ja mit member sehr leicht raus, welche Liste genommen werden muß) mit denen vom Drucker vergleichen. Ist's gleich - hastes geschafft.
FF ein möglicher Code:

Code:

(defun c:ppp (/ pli dli qp zdr mglpbez zpapier)
(setq pli '(
("A4" "ISO A4" "A4 Hochformat")
("A3" "ISO A3" "A3 Hochformat")
)
dli '(
("Drucker 1" . ("A4" "A3"))
("Drucker 2" . ("ISO A4" "ISO A3"))
("Drucker 3" . ("A4 Hochformat" "A3 Hochformat"))
)
qp "A4";Papierformat, welches übertragen werden soll
zdr "Drucker 2";Zieldrucker, für den das Format gesucht wird.
mglpbez (car (apply 'append;mögliche Papierbezeichnung
(mapcar '(lambda (P)
(if (member qp P)
(list P)
)
)
pli
)
))
zpapier (apply 'append (mapcar '(lambda (PB)
(if (member PB mglpbez)
(list PB)
)
)
(cdr (assoc zdr dli));mögliche Zielformate
)
)
)
(if zpapier
(princ (strcat "\nZielpapierbezeichnung: " (car zpapier)))
(princ (strcat "\nDrucker " zdr "unterstützt Paierformat nicht"))
)
(princ)
)

Bei Fragen...

Grüße Holger

------------------
Holger Brischke
CADlon - Lisp over night!
Neue Tool's im Free-&Download
Zugang zum Download schon gesichert?

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

CADchup
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3329
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 01. Apr. 2003 09:02    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 Holger,

vielen Dank, aber leider sind die Voraussetzungen etwas anders und je länger ich darüber nachdenke, desto weniger sehe ich eine Lösungsmöglichkeit:
Das Problem ist zum Einen, dass die Namen der Papierformate der Drucker unterschiedlich sein können ("A3" "A4" bei dem einen, "ISO A3 Querformat" "ISO A4 Hochformat" bei dem andern) und ich somit nie über (members) an das passende Format komme und zum andern, dass das Problem "Überlänge" nicht berücksichtigt werden kann!
Deshalb hoffte ich auf eine Lösung über die echte Papiergröße. Konnte nur bisher noch keinen Weg finden, diese Größe zu übergeben.

Gruß
CADchup

------------------
www.cadditions.de

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: 1968
Registriert: 05.09.2000

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

erstellt am: 01. Apr. 2003 09:35    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 CADchup 10 Unities + Antwort hilfreich

ach, und wenn Du die Lösung raushast, dann melde dich doch bitte mal, weil ich an einem ähnlich gelagerten Problem arbeite

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

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: 01. Apr. 2003 12: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 CADchup 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von CADchup:
Hallo Holger,

...
Das Problem ist zum Einen, dass die Namen der Papierformate der Drucker unterschiedlich sein können ("A3" "A4" bei dem einen, "ISO A3 Querformat" "ISO A4 Hochformat" bei dem andern) und ich somit nie über (members) an das passende Format komme...



Darum habe ich ja gesagt, dass du dir Liste vorher bauen mußt. Das kann man ja mit einem Tool geschehen lassen, welches die beiden Listen schreibt. Kannst ja in meinem Beispiel mal einen Anderen Drucker (setq zdr "Drucker 3")und ein anderes Quellformat angebn (setq qp "ISO A3")angeben. Als Ergebnis sollte dann das A3-Format des Druckers 'Drucker 3' ausgegeben werden.
Zitat:


...
und zum andern, dass das Problem "Überlänge" nicht berücksichtigt werden kann!
...



Tja - da sehe ich auch keine Möglichkeit. Habe es nicht getestet. Ich habe jedoch eine pmp-Datei angelegt, auf die alle unsere Plotter zugreifen. Somit sind alle Papierformate für alle Plotter gleich benannt.
Zitat:


Deshalb hoffte ich auf eine Lösung über die echte Papiergröße. Konnte nur bisher noch keinen Weg finden, diese Größe zu übergeben.

Gruß
CADchup


Bei Fragen ...

Grüße Holger

------------------
Holger Brischke
CADlon - Lisp over night!
Neue Tool's im Free-&Download
Zugang zum Download schon gesichert?

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

CADchup
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3329
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 01. Apr. 2003 12:57    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

Jetzt verstehe ich, was Du mit den Listen meintest. Wäre ausbaufähig, wenn es keine Überlängen gäbe...

Ich probiere einen anderen Ansatz. Vielleicht komme ich so weiter:
(vla-GetPaperSize (vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object))) 'w 'h)
liefert die Plotabmessungen in w und h und
(vla-get-PlotOrigin (vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object))))
den Nullpunkt des Plots als Variant.
Wenn ich den autom. Plot über Fenster und diese beiden Punkte mache, müsste es doch passen, oder?
Habe nur Verständnisprobleme bez. VARIANTS und ARRAYS. Wie konvertiere ich Daten aus einem VARIANT in eine Liste, damit ich addieren kann? Und wie konvertiere ich wieder zurück? Muss ich das überhaupt und gibt es eine verständliche Erklärung für sowas?

Gruß
CADchup

------------------
www.cadditions.de

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: 01. Apr. 2003 21:10    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 CADchup 10 Unities + Antwort hilfreich

Hallo CADchup,

in der VLisp- Hilfe sind die Konvertierungs geschichten von Variant, safearray,... eigentlich drin. Da ich selber (im Moment) noch ein Verständnisproblem mit diesem vla-... habe, möchte ich hier keine Erklärung abgeben. Die könnte falsch und/oder verwirrend sein. Suche mal in der Hilfe nach safearray, da solltest du das Gesuchte auch finden.

(Bei Fragen ...) 

Grüße Holger

------------------
Holger Brischke
CADlon - Lisp over night!
Neue Tool's im Free-&Download
Zugang zum Download schon gesichert?

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

mkl-cad
Mitglied
Technischer Zeichner


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

Beiträge: 378
Registriert: 23.07.2003

ACAD 2002
Express Tools 1-9
Architektural Desktop
Windows XP
Server Windows 2003
3 GHz Rechner
1 GB RAM
80 GB Festplatte
ATI FireGL V3100
2 17" Flachbildschirme

erstellt am: 29. Jul. 2004 16: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 CADchup 10 Unities + Antwort hilfreich

Hallo Lispler,

fand diesen Betrag sehr interessant. In ACAD kann man ja für Plotter oder Drucker eine benutzerspezifische Papiergröße angeben, wie in den vorangegangenen Beiträgen angesprochen. Gibt es eine Möglichkeit diese Papiergröße per Lisp zu ändern?

Dann währe auch das Problem von CADchup gänzlich gelöst. Die Konfigurationsdatei düfte dann nur nicht auf ein Netzlaufwerk liegen.

------------------
  Martin  

[Diese Nachricht wurde von mkl-cad am 31. Jul. 2004 editiert.]

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: 30. Jul. 2004 08:15    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 CADchup 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von mkl-cad:
... Gibt es eine Möglichkeit diese Papiergröße per Lisp zu ändern.

Das wäre natürlich SUPER, nach sowas such ich auch schon lange.

------------------
Gruß, Ernst

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