CADsite forum

AutoCAD => Autolisp => Topic gestart door: delangstevandestraat op do 05 01 2017, 10:37:28

Titel: openen werkt niet bij opening meerdere dwg om samen te voegen
Bericht door: delangstevandestraat op do 05 01 2017, 10:37:28
vroeger had ik een stuk code en dat werkte perfect
(defun c:mapAfdruka3 (/ Dwgs file DwgName scrFile foldername)
  (setq folderName "C:\\AFDRUKMAP a3 kopie TBD"
  )
  (setq Dwgs (vl-directory-files folderName "*.dwg"))
  (setq scrFile (open (strcat folderName "\\batchJob.scr") "w"))
  (foreach file Dwgs
    (setq DwgName (strcat "\"" folderName "\\" file "\""))
    (write-line ".Open" scrFile)
    (write-line DwgName scrFile)
    (write-line "-plot" scrFile)
    (write-line "yes" scrFile)
    (write-line "model" scrFile)
    (write-line "\\\\PSMSC008\\PRSTLEL5" scrFile)
    (write-line "A3 (297 x 420 mm)" scrFile)
    (write-line "millimeters" scrFile)
    (write-line "Landscape" scrFile)
    (write-line "No" scrFile)
    (write-line "Extents" scrFile)
    (write-line "Fit" scrFile)
    (write-line "Center" scrFile)
    (write-line "Yes" scrFile)
    (write-line "Easy.ctb" scrFile)
    (write-line "Yes" scrFile)
    (write-line "As" scrFile)
    (write-line "No" scrFile)
    (write-line "Yes" scrFile)
    (write-line "Yes" scrFile)
    (write-line "QSAVE" scrFile)
    (write-line "close" scrFile)
  ) ; end foreach loop
  (close scrFile)
  (command ".script" (strcat folderName "\\batchJob.scr"))
  (princ)
)



nu is dit reeds enkele jaren geleden en zijn we enkele autocad versies verder, alsook bij andere klant ;-)

en ik heb deze code geprobeerd te recycleren, echter het openen doet ie niet... ?

  (setq Dwgs (vl-directory-files folderName "*.dwg"))
  (setq scrFile (open (strcat folderName "\\batchJob.scr") "w"))
  (foreach file Dwgs
    (setq DwgName (strcat "\"" folderName "\\" file "\""))
    (write-line ".Open" scrFile)
    (write-line DwgName scrFile)
    (write-line "ZOOM" scrFile)
    (write-line "EXTENTS" scrFile)
    (write-line "COPYBASE" scrFile)
    (write-line basepos scrFile)
    (write-line lop scrFile)
    (write-line rbp scrFile)
    (write-line "" scrFile)
    (write-line "QSAVE" scrFile)
    (write-line "CLOSE" scrFile)
    (setq pos (getpoint (strcat "\nGeef invoegpunt voor blad " dwgname)))
    (write-line "_PASTECLIP" scrfile)
    (write-line pos scrfile)   
   ) ; end foreach loop




ik heb het ook al geprobeerd zonder de scrfile (omdat dit eigenlijk niet nodig is als alles goed loopt)
maar ook hier wilt ie niet openen...




(defun c:alimp (/ Dwgs file DwgName foldername)
  (setq folderName "D:\\AMOTSLA"
oldosmode (getvar "OSMODE" )
old3dosmode (getvar "3DOSMODE")
basepos (list 0 0 0)
lop (list -10 -10 0)
rbp (list 450 300 0))
  (setvar "OSMODE" 1)
  (setq Dwgs (vl-directory-files folderName "*.dwg"))
  (foreach file Dwgs
    (setq DwgName (strcat "\"" folderName "\\" file "\"" ))
    (command-s ".Open" DwgName)
    (command "ZOOM" "EXTENTS")
    (command "COPYBASE" basepos lop rbp "")
    (command "QSAVE")
    (command "CLOSE")
    (setq pos (getpoint (strcat "\nGeef invoegpunt voor blad " file)))
    (command "_PASTECLIP" pos)   
   ) ; end foreach loop
  (setvar "OSMODE" oldosmode) ; osmode
  (setvar "3DOSMODE" old3dosmode)


  (princ)
)



het zal weer iets doms zijn waar ik met mijn 2 blonde hersencellen overkijk zeker  :oops:
Titel: Re: openen werkt niet bij opening meerdere dwg om samen te voegen
Bericht door: delangstevandestraat op do 05 01 2017, 12:02:06
ik denk dat ik al een stap in de juiste richting ben met de redenering dat ik geen acties kan uitvoeren in een nieuw geopende tekening vanuit een bestaande tekening, vandaar dat er eerst een script moest gemaakt worden,
vandaar heb ik de code ik die richting aangepast, maar nog steeds niet ok...

dus nog steeds HELP ! ;-)

(defun c:alimp (/ Dwgs file DwgName foldername)
  (setq folderName "D:\\AMOTSLA"
oldosmode (getvar "OSMODE" )
old3dosmode (getvar "3DOSMODE")
basepos (list 0 0 0)
lop (list -10 -10 0)
rbp (list 450 300 0))
  (setvar "OSMODE" 1)
  (setq Dwgs (vl-directory-files folderName "*.dwg"))
  (foreach file Dwgs
    (setq pos (getpoint (strcat "\nGeef invoegpunt voor blad " file)))
    (setq DwgName (strcat "\"" folderName "\\" file "\"" ))
    (setq scrFile (open (strcat folderName "\\batchJob.scr") "w"))
    (write-line ".Open" scrFile)
    (write-line DwgName scrFile)
    (write-line "ZOOM" scrFile)
    (write-line "EXTENTS" scrFile)
    (write-line "COPYBASE" scrFile)
    (write-line basepos scrFile)
    (write-line lop scrFile)
    (write-line rbp scrFile)
    (write-line "" scrFile)
    (write-line "QSAVE" scrFile)
    (write-line "CLOSE" scrFile)
    (close scrFile)
    (command ".script" (strcat folderName "\\batchJob.scr"))
    (command "_PASTECLIP" pos)   
   ) ; end foreach loop
  (setvar "OSMODE" oldosmode) ; osmode
  (setvar "3DOSMODE" old3dosmode)
  (princ)
)
Titel: Re: openen werkt niet bij opening meerdere dwg om samen te voegen
Bericht door: bart op do 05 01 2017, 12:29:32
misschien begrijp ik je doel helemaal verkeer maar waarom niet gewoon insert?

Titel: Re: openen werkt niet bij opening meerdere dwg om samen te voegen
Bericht door: gery op zo 08 01 2017, 15:28:19
Citaat van: delangstevandestraat op do 05 01 2017, 12:02:06
(defun c:alimp (/ Dwgs file DwgName foldername)
  (setq folderName "D:\\AMOTSLA"
oldosmode (getvar "OSMODE" )
old3dosmode (getvar "3DOSMODE")
basepos (list 0 0 0)
lop (list -10 -10 0)
rbp (list 450 300 0))
  (setvar "OSMODE" 1)
  (setq Dwgs (vl-directory-files folderName "*.dwg"))
  (foreach file Dwgs
    (setq pos (getpoint (strcat "\nGeef invoegpunt voor blad " file)))
    (setq DwgName (strcat "\"" folderName "\\" file "\"" ))
    (setq scrFile (open (strcat folderName "\\batchJob.scr") "w"))
    (write-line ".Open" scrFile)
    (write-line DwgName scrFile)
    (write-line "ZOOM" scrFile)
    (write-line "EXTENTS" scrFile)
    (write-line "COPYBASE" scrFile)
    (write-line basepos scrFile)
    (write-line lop scrFile)
    (write-line rbp scrFile)
    (write-line "" scrFile)
    (write-line "QSAVE" scrFile)
    (write-line "CLOSE" scrFile)
    (close scrFile)
    (command ".script" (strcat folderName "\\batchJob.scr"))
    (command "_PASTECLIP" pos)   
   ) ; end foreach loop
  (setvar "OSMODE" oldosmode) ; osmode
  (setvar "3DOSMODE" old3dosmode)
  (princ)
)

U probeert meerdere malen in de LISP routine een script te starten en dat gaat niet. LISP wacht niet tot een script is uitgevoerd maar gaat gewoon verder.
Titel: Re: openen werkt niet bij opening meerdere dwg om samen te voegen
Bericht door: EddyBeerke op ma 09 01 2017, 09:04:36
Kijk eens naar de lispfile van Joop:
http://www.cadsite.be/smf/index.php?topic=2811.msg30279#msg30279
Ik weet niet of het intussen wel weer goed werkt maar je kunt er veel van leren.
Titel: Re: openen werkt niet bij opening meerdere dwg om samen te voegen
Bericht door: EddyBeerke op ma 09 01 2017, 10:43:23
Toevoeging op mijn laatste bericht:
Babe is aangepast en werkt nu voor AutoCAD 2016.
Mochten er toch nog errors zijn laat dat even weten in deze post:
http://www.cadsite.be/smf/index.php?topic=2811.msg30279
Suc6 en veel plezier hiermee.
Titel: Re: openen werkt niet bij opening meerdere dwg om samen te voegen
Bericht door: delangstevandestraat op ma 09 01 2017, 11:11:59
@bart,
ik heb nu inderdaad als work aroun met insert gewerkt omdat het deze keer kàn, maar meest
kan insert niet omdat ik niet de volledige tekening nodig heb enkel datgene wat in het copybase venstertje (tussen lop en rbp) geselecteerd wordt ;-)

@eddybeer

Babe doet met ieder dwg hetzelfde, en ik moet niet met iedere dwg hetzelfde doen, al lijkt het wel op elkaar

@gery, oke dat snap ik,  maar ik had dat in eerste post ook zo geschreven dat er eigenlijk maar één script werd gemaakt waar alles instond, nl : de broncode waar ik het uitgehaald had heeft jarenlang gewerkt, het is dus bij het openen dat het ergens foutloopt,  denk ik toch ;-|



Titel: Re: openen werkt niet bij opening meerdere dwg om samen te voegen
Bericht door: gery op ma 09 01 2017, 11:32:09
Citaat van: delangstevandestraat op ma 09 01 2017, 11:11:59
@gery, oke dat snap ik,  maar ik had dat in eerste post ook zo geschreven dat er eigenlijk maar één script werd gemaakt waar alles instond, nl : de broncode waar ik het uitgehaald had heeft jarenlang gewerkt, het is dus bij het openen dat het ergens foutloopt,  denk ik toch ;-|
In de code uit uw 1e post wordt idd slechts één totaalscript gemaakt en gestart, en dat werkt.
In uw meest recent geposte code wordt per tekening een script gemaakt én gestart (met overigens steeds dezelfde script naam) en dat werkt niet. De LISP voert alle LISP code zeer snel na elkaar uit zonder de scripts en voert na het beeïndigen van de routine enkel de laatste script uit.
Titel: Re: openen werkt niet bij opening meerdere dwg om samen te voegen
Bericht door: roy_043 op ma 09 01 2017, 14:26:58
SDI?
Titel: Re: openen werkt niet bij opening meerdere dwg om samen te voegen
Bericht door: gery op wo 25 01 2017, 10:49:12
Al een oplossing gevonden?
Titel: Re: openen werkt niet bij opening meerdere dwg om samen te voegen
Bericht door: gery op wo 15 02 2017, 11:39:06
Citaat van: gery op wo 25 01 2017, 10:49:12
Al een oplossing gevonden?
Enne?
Titel: Re: openen werkt niet bij opening meerdere dwg om samen te voegen
Bericht door: delangstevandestraat op do 16 02 2017, 09:54:43
@gery
nee, ondertussen eigenlijk niet meer naar gezocht omdat tot nu toe de work around (via insert) het telkens goed doet,

misschien neem ik dit weer op eens het niet meer werkt...