FastFiber

LISP 1 Druk op knop plotten...

Gestart door hulpje, vr 28 11 2014, 09:15:51

Vorige topic - Volgende topic

hulpje

CADsiters,

Jullie hulp is gewenst bij het volgende probleem. (AutoCAD 2015)

Ik heb een routine draaien waarmee ik met 1 druk op de knop een print kan maken.
Met deze routine kan ik o.a. snel PDF-en, DWF-en maken, alsmede een A3 print op een afdelingsprinter.
Nu ben ik mijn routine aan het uitbreiden met o.a. instellingen voor een kleuren plotter.
Binnen de bestaande LISP routine, kopieer ik een deel en vervang o.a. de PC3 instellingen etc.
Ook pas ik de defun aan bijv:  (defun c:COLORWAVEA0  ......)
Dan save ik mijn LISP, laad hem opnieuw in AutoCAD en voer dan de C:COLORWAVEA0 uit.

Dan gebeurt er niks.

Command: COLORWAVEA0
Command:
Command: *Cancel*
Command: *Cancel*
Command:


Als ik dan de defun verander in (defun c:1PPPDF_A0-currtab) wat een bestaande defun is, mijn LISP opsla en opnieuw laad in AutoCAD, dan werkt de LISP wel en wordt mijn kleuren plotter aangestuurd.

Dit is het stukje code wat de kleuren printer aanstuurt:
;;;A0 1:1 Landscape CURRTAB --> Rechtstreeks naar de Plotter printen.
(defun c:COLORWAVEA0 ( / currtab dwgnameonly cdname savepath)
(setq currtab (getvar "ctab"))
(setq dwgnameonly (getvar "dwgname"))
(setq cdname (substr dwgnameonly 1 (- (strlen dwgnameonly) 4)))
(setq Savepath "C:/1PickPlot/DWF-Bestanden/") 
(if (= (getvar "tilemode") 1)
(progn
(command "-plot" "y" currtab "ColorWave550-WPD2.pc3" "A0 (841x1819mm)" "Millimeters" "Landscape" "n" "view" "plot_841x1819" "1:1" "0,0" "y" "bijenkorf.ctb" "y" "n" "n" "n" (strcat Savepath cdname) "y" "y")
)
)
(princ)
)
Iemand een advies?

P.s. als iemand er serieus naar wil kijken, dan wil ik eventueel wel de hele LISP file per mail versturen!

Richard
HELAAS BESTAAT CADToppers.com niet meer
ACP-er (AutoDesk Certified Professional)

roy_043

Ik denk dat je moet kijken naar het 'if' gedeelte van jouw code. Voeg eventueel een 'princ' toe die wordt uitgevoerd als de test expressie niet waar is.

hulpje

#2
Roy,

Het blijft toch vreemd, als je de DEFUN aanpast, de routine wel werkt?

Hoe en waar moet ik de 'princ' toevoegen

Richard

P.s. Ik heb het ondertussen ook even geprobeerd bij een AutoCAD 2014 werkstation, daar werkt het ook niet op.
HELAAS BESTAAT CADToppers.com niet meer
ACP-er (AutoDesk Certified Professional)

roy_043

(if (= (getvar "tilemode") 1)
  (progn
    (princ "\nWAAR. ")
    (command "-plot" "y" currtab "ColorWave550-WPD2.pc3" "A0 (841x1819mm)" "Millimeters" "Landscape" "n" "view" "plot_841x1819" "1:1" "0,0" "y" "bijenkorf.ctb" "y" "n" "n" "n" (strcat Savepath cdname) "y" "y")
  )
  (princ "\nNIET WAAR. ")
)

hulpje

Resultaat:

Command: 1PPC550A0

NIET WAAR. "\nNIET WAAR. "

Command:
Command: *Cancel*

Command: *Cancel*

Command:
HELAAS BESTAAT CADToppers.com niet meer
ACP-er (AutoDesk Certified Professional)

roy_043

Jouw code print alleen als de variabele tilemode op 1 staat.
Dit heb jij zelf zo bepaald neem ik aan.

Je kunt twee dingen doen:
Zet de tilemode in de test dwg op 1.
Pas de code aan zodat wordt geprint ongeacht de waarde van tilemode.

EddyBeerke

TILEMODE 1 = Modelspace
TILEMODE 0 = Paperspace, laatst geopende tabblad.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

hulpje

Maar het ligt niet aan de tilemode.
Deze zit er idd bewust in, maar is niet echt nodig.
Ik ga altijd naar mijn tabblad en activeer dan een button op mijn toolpalette.
Dit ging eigenlijk altijd goed, totdat ik dus een aanvulling ging maken op de LISP. (Routine stamt al uit 2009)

Als ik mijn DEFUN verander, dan doet dit stukje lisp het wel. (Met en zonder de toevoeging van de PRINC)

Het blijft dus nog steeds een raadsel voor mij....
HELAAS BESTAAT CADToppers.com niet meer
ACP-er (AutoDesk Certified Professional)

EddyBeerke

Je zou eens kunnen debuggen en dan stap voor stap bekijken waar het mis gaat.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

hulpje

Er valt niks te debuggen...
Als je de DEFUN aanpast, dan werkt dit gedeelte van de LISP wel.
HELAAS BESTAAT CADToppers.com niet meer
ACP-er (AutoDesk Certified Professional)

bart

komt de lisp soms in een lus omdat je de name COLORWAVEA0 nogmaals gebruikt in de lisp?
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

EddyBeerke

Citaat van: hulpje op za 29 11 2014, 00:47:56
Er valt niks te debuggen...
Als je de DEFUN aanpast, dan werkt dit gedeelte van de LISP wel.
Wat pas je dan aan...
Als er iets niet werkt heb je blijkbaar toch geen correcte code, of wel?
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

EddyBeerke

Bij mij werkt dit alleen in modelspace... In PaperSpace krijg je een melding "Niet geplot":
(defun c:COLORWAVEA0 ( / currtab dwgnameonly cdname savepath)
(setq currtab (getvar "ctab"))
(setq dwgnameonly (getvar "dwgname"))
(setq cdname (substr dwgnameonly 1 (- (strlen dwgnameonly) 4)))
(setq Savepath "D:/") 
(if (= (getvar "tilemode") 1)
(progn
(command
"plot"
;|Detailed plot configuration? [Yes/No] <No>: y|; "Y"
;|Enter a layout name or [?] <Model>:|; currtab
;|Enter an output device name or [?] <None>: dwg to pdf.pc3|; "DWG To PDF.pc3"
;|Enter paper size or [?] <ISO A0 (841.00 x 1189.00 MM)>:|; "ISO A0 (841.00 x 1189.00 MM)"
;|Enter paper units [Inches/Millimeters] <Millimeters>:|; "Millimeters"
;|Enter drawing orientation [Portrait/Landscape] <Landscape>:|; "Landscape"
;|Plot upside down? [Yes/No] <No>: n|; "n"
;|Enter plot area [Display/Extents/Limits/View/Window] <Display>: v|; "view"
;|Enter view name <>: plot_841x1819|; "plot_841x1819"
;|Enter plot scale (Plotted Millimeters=Drawing Units) or [Fit] <Fit>: 1:1|; "1:1"
;|Enter plot offset (x,y) or [Center] <0.00,0.00>: 0,0|; "0,0"
;|Plot with plot styles? [Yes/No] <Yes>: y|; "Y"
;|Enter plot style table name or [?] (enter . for none) <>: acad.ctb|; "acad.ctb"
;|Plot with lineweights? [Yes/No] <Yes>: y|; "Y"
;|Enter shade plot setting [As displayed/legacy Wireframe/legacy Hidden/Visual styles/Rendered] <As displayed>:|; ""
(strcat Savepath cdname)
;|Save changes to page setup [Yes/No]? <N> n|; "N"
;|Proceed with plot [Yes/No] <Y>: y|; "Y"
)
)
(princ "\nNiet geplot")
)
(princ)
)


Let wel even op je papierformaat en je view name! Ook even jou ctb-naam goed zetten.
Dit is met Acad 2014!
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

hulpje

Eddy (en de rest),
Ik ga proberen om het probleem zo duidelijk mogelijk uit te leggen:

Ik heb een LISP file, waarin meerdere instellingen staan, om te kunnen printen / plotten.
Deze LISP ga ik uitbreiden, met eerder genoemde instellingen.
Ik kopieer een werkend stuk uit mijn bestaande LISP en ga dat aanpassen
Mijn 1e stap is dan de defun aanpassen, deze was bijv. 1PPDFA0, waarmee ik met 1 druk op de knop een PDF op A0 maak.
De defun wordt dan COLORWAVEA0.
Dan pas ik al mijn instellingen aan, zoals PC3 etc.
Dan laad ik mijn LISP en probeer dan de COLORWAVEA0 te starten.
Dit werkt dan niet. (Zie eerdere berichten)
Op het moment dat ik de defun verander in de 1PPDFA0, die wel werkt voor printen naar een A0 PDF, en ik laad opnieuw mijn LISP en voer de 1PPDFA0 uit, dan wordt de Colorwave aangesproken (Zoals de bedoeling is, maar met de verkeerde defun)

Het ligt dus niet aan de instellingen van het printen, maar aan de waarde van DEFUN.

De vraag is dus, waarom werkt de defun wel met de 1PPDFA0 en niet met de COLORWAVEA0?
HELAAS BESTAAT CADToppers.com niet meer
ACP-er (AutoDesk Certified Professional)

EddyBeerke

Stuur mij jou hele lisp dan kijk ik er naar.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

FastFiber