FastFiber

openen werkt niet bij opening meerdere dwg om samen te voegen

Gestart door delangstevandestraat, do 05 01 2017, 10:37:28

Vorige topic - Volgende topic

delangstevandestraat

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:
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

delangstevandestraat

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)
)
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

bart

misschien begrijp ik je doel helemaal verkeer maar waarom niet gewoon insert?

Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

gery

#3
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.
AutoCAD 2020 - Windows 10

EddyBeerke

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.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

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

EddyBeerke

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.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

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

delangstevandestraat

@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 ;-|



Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

gery

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.
AutoCAD 2020 - Windows 10

roy_043


gery

AutoCAD 2020 - Windows 10

gery

AutoCAD 2020 - Windows 10

delangstevandestraat

@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...
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

FastFiber