yoin

j-o-s

Ik heb een vraag (deze zal wel al vaker geplaatst zijn)

ik heb een aantal layouts (laat ons zeggen 10 stuks) deze wil ik allemaal printen
Kan dit ook in een keer? en een keer moet het met een pdf printer en de andere keer met een gewone hp1220 en een andere keer met een hp 350
ik heb al een keer select all gedaan maar dit werkt niet. Kan ook zijn dat ik iets verkeert doe

gr j-o-s

Joop

Kijk hier eens:

http://www.cadsite.be/smf/index.php/topic,1084.msg5881.html#msg5881

In deze topic staat een routine om alle layouts te printen
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

j-o-s

alvast bedankt ik ga het uitproberen
eerst ff uitzoeken hoe lisp werkt

gr j-o-s

j-o-s

#3
Ik heb hem uitgeprobeert hij zegt dit:

$ (c:DoIt)

"Now plotting layout: Layout1"
"Now plotting layout: Layout10"
"Now plotting layout: Layout2overzicht"
"Now plotting layout: Layout3"
"Now plotting layout: Layout4"
"Now plotting layout: Layout5"
"Now plotting layout: Layout6"
"Now plotting layout: Layout7"
"Now plotting layout: Layout8"
"Now plotting layout: Layout9"
"Now plotting layout: LayoutA0" nil
_$
_$
_$


maar hij vraagt niet welke printer er gebruikt moet worden
wil je mij vertellen hoe ik dit moet oplossen of kan dat ook in de lisp geschreven worden
als dit kan wil je dan dit voor mij doen want ik heb er geen verstand van.

gr j-o-s

Joop

Hierin zet je de plotstyle op color dependent.
In oudere tekeningen worden "named plot style tables" gebruikt en deze leveren problemen op.

  (if (= (getvar "pstylemode") 0)
    (command "convertpstyles")
  ) ;_ end of if


In de systeemvaribele "layoutlist staan alle layouts die in de tekening zijn aangemaakt.
Stop deze in een user variabele.
(setq all_layouts (layoutlist))

De rest is de standaard plotroutine die je gebruikt om vanuit LISP te printen.
Aleen gebruik je nu de lijst met layoutnamen en niet alleen modelspace.

Terwijl ik dit schrijf komt jouw bericht binnen, dus zal ik nog wat duidelijker zijn.

(command "-plot"         ;Plot-command
   Â     "y"         ;Detailed plot configuration?
   Â     a_layout         ;Enter a layout name
   Â     "NLP12280"         ;Enter an output device name Vul hier je eigen plotter/printer in.
   Â     "A3"         ;Enter paper size Hier de gewenste pairformaat
   Â     "m"         ;Enter paper units
   Â     "l"         ;Enter drawing orientation
   Â     "n"         ;Plot upside down?
   Â     "e"         ;Enter plotarea
   Â     "f"         ;Enter plot scale
   Â     "0,0"         ;Enter plot offset
   Â     "y"         ;Plot with plot styles
   Â     "_zwart.ctb"      ;Enter plot style table name Hier je pen configuratie
   Â     "y"         ;plot with lineweights
   Â     "n"         ;Scale lineweights with plot scale?
   Â     "n"         ;Plot paper space first?
   Â     "n"         ;Remove hiddenlines?   
   Â     "n"         ;Write the plot to a file
   Â     "n"         ;Save changes to layout?
   Â     "y"         ;Proceed with plot?
   Â    )

De rode zijn gegevens die voor elke printer specifiek zijn en moeten daarom voor alle printers en plotters aangepast worden.
De rest zijn opties die per tekening kunnen verschillen.

Wat je hier doet is het zelfde als wanneer je op de command line _plot intypt.
Namelijk alle vragen van de plotroutine( zonder gebruik van dc)l beantwoorden.
Prbeer het maar eens op de command line.
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

Reimer

Met publish kun je meerdere layouts tegelijk plotten. Je kunt hier per layout een pagesetup toekennen, of allemaal met dezelfde pagesetup plotten. In de pagesetup ligt vast welke (pdf-) printer moet worden gebruikt.

Reimer

j-o-s

#6
ik doe wat fout
als ik bij printers en faxapparaten kijk staat daar mijn printer omschreven als HP deskjet 1220c
deze heb ik ingevult op de plaats waar jij hebt gezegt.
opgeslagen en toen op load active edit window gedrukt


(defun c:DoIt ()
  (if (= (getvar "pstylemode") 0)
    (command "convertpstyles")
  ) ;_ end of if
  (setq volgnr 0)
  (setq all_layouts (layoutlist))
  (setq l (vl-list-length all_layouts))
  (while (< volgnr l)
    (setq a_layout (nth volgnr all_layouts))
    (setq str (strcat "Now plotting layout: " a_layout))

    (print str)
    (setq volgnr (1+ volgnr))
    (command "-plot"         ;Plot-command            ;
   Â     "y"         ;Detailed plot configuration?      ;
   Â     a_layout         ;Enter a layout name         ;
   Â     "HP DeskJet 1220C"      ;Enter an output device name      ;
   Â     "A4"         ;Enter paper size         ;
   Â     "m"         ;Enter paper units         ;
   Â     "l"         ;Enter drawing orientation      ;
   Â     "n"         ;Plot upside down?         ;
   Â     "e"         ;Enter plotarea            ;
   Â     "f"         ;Enter plot scale         ;
   Â     "0,0"         ;Enter plot offset         ;
   Â     "y"         ;Plot with plot styles         ;
   Â     "_zwart.ctb"      ;Enter plot style table name      ;
   Â     "y"         ;plot with lineweights         ;
   Â     "n"         ;Scale lineweights with plot scale?   ;
   Â     "n"         ;Plot paper space first?      ;
   Â     "n"         ;Remove hiddenlines?         ;
   Â     "n"         ;Write the plot to a file      ;
   Â     "n"         ;Save changes to layout?      ;
   Â     "y"         ;Proceed with plot?         ;
   Â    )
  )

)

hij zegt nu dit:

_$ (c:doit)

"Now plotting layout: Layout1"
"Now plotting layout: Layout10"
"Now plotting layout: Layout2overzicht"
"Now plotting layout: Layout3"
"Now plotting layout: Layout4"
"Now plotting layout: Layout5"
"Now plotting layout: Layout6"
"Now plotting layout: Layout7"
"Now plotting layout: Layout8"
"Now plotting layout: Layout9"
"Now plotting layout: LayoutA0" nil

Ik neem aan dat nu de printer moet gaan rammellen.
Dit gebeurt niet.


Ook heb ik publish geprobeerd maar
nu print hij aan de zijkant de tij en de datum en welke printer
dit wil ik niet dus dit is ook niet de oplossing


Gr j-o-s

j-o-s

#7
Joop

Het is opgelost :ole: :pintje:
Ik ben erachter gekomen dat inplaats van _zwart.ctb hier grayscale.ctb moet staan
Nu doet hij het
Alleen nu nog ff uitzoeken hoe ik landscape of portraint moet invullen

Ok dit is gelukt

Heel erg bedankt

Gr j-o-s

rlouage

Dag Jos en ...

Ik denk dat jullie het toch allemaal wel heel ver zoeken. In plaats van een lisp programma te maken, kunnen jullie ook eenvoudig weg een macro maken en koppelen aan een icoontje.
Begin uw macro met        -plot;Y;"naam layout";"naam printer"; .....      (de min schakelt de dialoogbox uit en de ; staat voor enter)


succes en vriendelijke groeten,

Robrecht

Joop

rlouage,

Je hebt gelijk, .......als het om een of twee tekeningen gaat.
Maar wat als het er vijf of vijftig of tweehonderd zijn?

AutoCAD heeft geen (naar mijn mening) goede batch verwerking.
Niet voor plotten en al helemaal niet voor alle andere wijzigingen die vaak nodig zijn.

Hiervoor heb ik dan ook BaBe gemaak.

The sky is the limit en ik ben lui.

Joop
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

j-o-s

bij mij gaat het om 27 tekeningen met het gemiddelde van 15 layouts

ik ben heel blij met de lisp
ik heb het gisteravond uitgeprobeerd en het scheelt aanzienlijk veel tijd.

gr j-o-s

j-o-s

Ik heb nog een andere vraag kan ik ook als ik deze lisp gebruik aangeven per layout of deze in landschap of portret moet worden afgedrukt

gr j-o-s

bart

Citaat van: j-o-s op ma 20 03 2006, 09:29:35
Ik heb nog een andere vraag kan ik ook als ik deze lisp gebruik aangeven per layout of deze in landschap of portret moet worden afgedrukt

gr j-o-s

er van uitgaande dat de instellingen al correct in je layout aanwezig zijn
zou je een enter kunnen toepassen  in plaats van iets aan te geven
dan wordt de default waarde aangehouden.
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

j-o-s

#13
en hoe geef ik de enter dan aan ?
is dit gewoon een spatie?
dit is de lisp
volgens mij moet deze regel dan veranderen >>> Enter drawing orientation <<<<


heb het al gevonden

bedankt  j-o-s