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
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.
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.
(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. ")
)
Resultaat:
Command: 1PPC550A0
NIET WAAR. "\nNIET WAAR. "
Command:
Command: *Cancel*
Command: *Cancel*
Command:
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.
TILEMODE 1 = Modelspace
TILEMODE 0 = Paperspace, laatst geopende tabblad.
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....
Je zou eens kunnen debuggen en dan stap voor stap bekijken waar het mis gaat.
Er valt niks te debuggen...
Als je de DEFUN aanpast, dan werkt dit gedeelte van de LISP wel.
komt de lisp soms in een lus omdat je de name COLORWAVEA0 nogmaals gebruikt in de lisp?
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?
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!
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?
Stuur mij jou hele lisp dan kijk ik er naar.
Citaat van: EddyBeerke op ma 01 12 2014, 12:40:13
Stuur mij jou hele lisp dan kijk ik er naar.
Ik heb je een PM gestuurd, ik ben alleen vergeten om de bijlage erbij te doen, die komt er nu aan!
Richard, heb je even tijd?
Ik ben hier te vinden....
http://www.cadsite.be/chat/
Ik ben er!
Probleem is opgelost, ik zal nog uitleggen wat het probleem was.
Wat het probleem nu precies was, laat zich moeilijk omschrijven.
Er zat sowieso nog 1 foutje in het stukje code dat ik hier op de site heb gezet.
Via Teamviewer heb ik samen met Eddy Beerke naar het probleem zitten kijken en na +/- een uurtje, was het probleem opgelost.
Inmiddels is mijn complete LISP klaar en kan dit topic gesloten worden.
Eddy, BEDANKT!
Citaat van: hulpje op di 02 12 2014, 13:27:18
Eddy, BEDANKT!
Daar doen we het voor! :vreegoe: :pintje:
Eddy,
Ik wilde hem per mail aan je sturen, maar mijn ZIP wordt geweigerd