yoin

Rudy

Weet iemand of er ergens een lisp of vba bestaat om in 1 keer een purge all, ook de overbodige layouts,
en save te doen.
Kan iemand mij helpen?
Autocad 2013 / 2016

Reimer

Wat zijn volgens jou "overbodige layouts"? Aan welke eigenschappen zou een lisproutine deze kunnen herkennen?

Reimer

Rudy

Citaat van: Reimer op wo 30 03 2011, 16:51:40
Wat zijn volgens jou "overbodige layouts"? Aan welke eigenschappen zou een lisproutine deze kunnen herkennen?

Reimer

Beste Reimer,

Met overbodige layouts bedoel ik layouts waarin geen viewports in voorkomen.
Die dus niet van nut zijn in de tekening.
Rudy
Autocad 2013 / 2016

Reimer

Beste Rudy,

ik kan je wel op weg helpen met een purge en save routine, deze ziet er dan zo uit:

(defun c:pus ()
  (command "-purge" "all" "*" "no")
  (command "-purge" "regapps" "*" "no")
  (command "qsave")
)


De tekst achter c: is de commandonaam, deze kun je naar behoefte aanpassen. Vervolgens wordt eerst Purge-all uitgevoerd en daarna nog een keer purge-regapps. Ten slotte wordt Qsave uitgevoerd.
Zet deze tekst in een txt-bestand en sla deze op als een *.lsp bestand (bv. PUS.lsp)

Ik hoop dat je hier al iets mee geholpen bent.

Reimer

hulpje

Citaat van: Reimer op vr 01 04 2011, 09:29:52
Beste Rudy,

ik kan je wel op weg helpen met een purge en save routine, deze ziet er dan zo uit:

(defun c:pus ()
  (command "-purge" "all" "*" "no")
  (command "-purge" "regapps" "*" "no")
  (command "qsave")
)


De tekst achter c: is de commandonaam, deze kun je naar behoefte aanpassen. Vervolgens wordt eerst Purge-all uitgevoerd en daarna nog een keer purge-regapps. Ten slotte wordt Qsave uitgevoerd.
Zet deze tekst in een txt-bestand en sla deze op als een *.lsp bestand (bv. PUS.lsp)

Ik hoop dat je hier al iets mee geholpen bent.

Reimer

Zelf heb ik hier een scriptje voor, zodat ik eventueel ook een grote groep tekeningen in 1x kan purgen en saven.

;PURGE 14-12-2009
;qsave toegevoegd 22-12-2009
-PURGE
A
*
N
-PURGE
R
*
N
qsave


Zet deze tekst in een txt-bestand en sla deze op als een *.scr bestand (bv. PURGE_REGAPPS.scr)
Sleep dit *.scr bestand je tekening in, waarna de acties worden uitgevoerd.

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

Rudy

Beste reimer,

PUS helpt al een beetje, alles blijkt echter nog niet uit de tekening.
Ook blijven de ongebruikte layouts in de tekening zitten.
Is hier misschien een oplossing voor.

Aan Richard, hoe doe je  het om met dit script een grote groep tekeningen te purgen?
Je moet dit script toch in elke tekening apart inlezen?

mvg

Rudy
Autocad 2013 / 2016

EddyBeerke

Citaat van: Rudy op vr 01 04 2011, 10:42:45
Je moet dit script toch in elke tekening apart inlezen?

Daar hebben we Babe voor die je op deze site kunt downloaden:
http://www.cadsite.be/lisp/babe.php
Kijk ook even naar: http://www.cadsite.be/smf/index.php?topic=2811.0
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

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

hulpje

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

Rudy

Ik heb in mijn archieven nog een purge&save gevonden van een ex-collega.
Er is echter iets mis mee.
Wanneer het programma gebruikt wordt werkt copy past niet meer tot autocad opnieuw gestart wordt.
Ook worden de lege layouts niet gedeleted.
Ik heb de rourine bijgevoegd, kan iemand deze eventueel verbeteren want zelf kan ik niet overweg met lisp.

mvg

Rudy
Autocad 2013 / 2016

EddyBeerke

Met het commando "_layout" ->> "Delete" kun je een naam opgeven van de layout die verwijdert moet worden.
Dit kun je ook in een macro of lisp verwerken.

Ook kun je met de action recorder commando's opnemen en op andere tekeningen afspelen.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

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

roy_043

Het probleem met copy&paste wordt waarschijnlijk veroorzaakt door deze regel:
(vlax-for item regapps (vl-catch-all-apply 'vla-delete (list item)))
Verwijder deze regel (of plaats een ; aan het begin) en probeer het opnieuw.

Rudy

Citaat van: roy_043 op vr 01 04 2011, 14:41:43
Het probleem met copy&paste wordt waarschijnlijk veroorzaakt door deze regel:
(vlax-for item regapps (vl-catch-all-apply 'vla-delete (list item)))
Verwijder deze regel (of plaats een ; aan het begin) en probeer het opnieuw.
Neen, hiermee is het probleem niet opgelost  :cry:
Autocad 2013 / 2016

HofCAD

#12
Geachte Lezers,

Denkt er ook nog iemand  aan het commando WBLOCK en -WBLOCK? :mrgreen:

Met vriendelijke groet, HofCAD CSI.

PS1 Natuurlijk worden daarbij de overbodige Layouts niet verwijderd.
PS2 Je kan nooit alle Layouts verwijderen.
PS3 In je nieuwe tekening kunnen ook bij default Layouts met een Viewport aangemaakt worden.

ACADcadabra

Rudy

Beste allen,

Ik denk dat ik gevonden heb wat ik zoek op:
http://cadtips.cadalyst.com/purge/purge-audit-and-save-tool
er is echter een probleem, de geldige layouts waar je niet actief in bent worden ook verwijderd.
Aangezien ik dus geen ervaring heb met lisp zou ik willen vragen of iemand deze routine zou willen bekijken en mij uitleggen wat er in feite gebeurt wanneer ik deze gebruik.
Ik heb de lisp in bijlage geplaatst.
Dank bij voorbaat.
Autocad 2013 / 2016

HofCAD

#14
Citaat van: Rudy op za 02 04 2011, 13:09:56
er is echter een probleem, de geldige layouts waar je niet actief in bent worden ook verwijderd.
Aangezien ik dus geen ervaring heb met lisp zou ik willen vragen of iemand deze routine zou willen bekijken en mij uitleggen wat er in feite gebeurt wanneer ik deze gebruik.
Beste Rudy,

In Pas.lsp staat de regel:  (vla-get-blocks oDOC)
Via deze regel worden alle blockdefinities opgehaald.
Maar Modelspace en de Layouts zijn ook blocks.
(defun c:AllBlkNames (/ oDOC)
 (vl-load-com)
 (setq oDOC
(vla-get-Blocks
  (vla-get-activedocument
    (vlax-get-acad-object)
  )
)
 )
 (vlax-for item oDOC
   (princ (strcat "\nBlock Name: "
  (vla-get-Name item)
  )
   )
 )
 (princ)
)

Definitie van Modelspace en definitie van één Layout(zeker niet het actieve) en
definities van ingevoegde blocks kunnen nooit verwijderd(gepurged) worden.
Omdat AutoCAD alleen deze voorwaarden stelt en je programma verder
niet discrimineert worden alle andere Layouts verwijderd.

Met vriendelijke groet, HofCAD CSI.

PS1 Ik vind dat je nog steeds geen antwoord heb gegeven op de vraag van Reimer:
Wat zijn volgens jou "overbodige layouts"? Aan welke eigenschappen zou een lisproutine deze kunnen herkennen?
Dit gezien door mijn opmerking:
In je nieuwe tekening kunnen ook bij default Layouts met een Viewport aangemaakt worden.
(kijk eens naar mijn vorig bericht)
PS2 Om bovenstaand programma geen listing te krijgen van Modelspace en Layouts (Block Name: *Model_Space
Block Name: *Paper_Space)
kan je het als onderstaand veranderen:
(defun c:BlkNames1 (/ oDOC BlkName)
 (vl-load-com)
 (setq oDOC
(vla-get-Blocks
  (vla-get-activedocument
    (vlax-get-acad-object)
  )
)
 )
 (vlax-for item oDOC
   (setq BlkName (vla-get-Name item))
   (or (wcmatch BlkName "`**_Space*")
(princ (strcat "\nBlock Name: "
      BlkName
      )
)
   )
 )
 (princ)
)

of ook
(defun c:BlkNames2 (/ oDOC BlkName)
 (vl-load-com)
 (setq        oDOC
(vla-get-Blocks
  (vla-get-activedocument
    (vlax-get-acad-object)
  )
)
 )
 (vlax-for item oDOC
   (setq BlkName (vla-get-Name item))
   (and (/= "*Model_Space" (substr BlkName 1 12))
(/= "*Paper_Space" (substr BlkName 1 12))
(princ (strcat "\nBlock Name: "
BlkName
)
)
   )
 )
 (princ)
)
ACADcadabra

FastFiber