FastFiber

Purge & Save in 1 commando - Nog een probleem

Gestart door Rudy, wo 30 03 2011, 16:16:24

Vorige topic - Volgende topic

Rudy

Beste HofCad,

Ik denk dat ik het begrepen heb.
Als ik je uitleg zo een beetje volg, is het dus zo goed als onmogelijk om "lege" layouts (zonder een viewport)
uit de tekening te verwijderen via een lisp.
Ik zal de overbodige layouts, zoals voorheen manueel verwijderen.
Hiermee beschouw ik dit probleem als afgesloten.
Dank aan allen voor de hulp!

PS: HofCad
Zou je bijgevoegde lisp ook nog eens kunnen bekijken.
Wanneer ik deze toepas werkt copy paste niet meer en de inbreng van roy_043 (waarvoor dank) bracht ook geen soelaas.
Autocad 2013 / 2016

HofCAD

#16
Citaat van: Rudy op zo 03 04 2011, 10:03:57
Beste HofCad,

Ik denk dat ik het begrepen heb. :nigoe:
Als ik je uitleg zo een beetje volg, is het dus zo goed als onmogelijk om "lege" layouts (zonder een viewport)
uit de tekening te verwijderen via een lisp.
Beste Rudy,

Bovenstaande heb ik nooit geschreven en dus daar sta ik ook niet achter. :twisted: :twisted: :twisted:
Ik heb alleen bedoeld, dat je nog steeds geen echt goed criterium geeft. :shock: :shock: :shock:
Layouts met een viewport kunnen overbodig zijn, en layouts kunnen
zonder viewports nodig zijn.
In layouts kan een viewport bewust of onbewust aangemaakt zijn.
(Bijv.: door een bepaalde template of via OPTIONS->Display->'Create Viewport in New Layouts')

Een goed criterium zou kunnen zijn: In mijn DWG's beginnen alle layouts namen met de prefix 'Rudy'
en je kan mijn DWG's herkennen doordat 'Author' altijd 'Rudy' is.
Of in mijn DWG's met 'Author' is 'Rudy', zit er in een onnodige layout geen titelblok met de naam 'Rudy'.

Waarschuwing: DelLayouts kijkt alleen of er geen viewports zijn.
(defun c:DelLayouts (/ ~Tm LayoutsLst i Layout)
 (Setq ~Tm (getvar "TILEMODE"))
 (setvar "TILEMODE" 1)
 (setq LayoutsLst (layoutlist))
 (setq i 0)
 (repeat (length LayoutsLst)
   (setq Layout (nth i LayoutsLst))
   (if (< (SSlength
    (ssget "_X" (list '(0 . "VIEWPORT") (cons 410 Layout)))
  )
  2
)
     (command "_.LAYOUT" "_D" Layout)
   )
   (setq i (1+ i))
 )
 (setvar "TILEMODE" ~Tm)
 (princ)
)


Met vriendelijke groet, HofCAD CSI.

PS Vandaag is het dag van 'De Ronde' of de Hoofdmis.
ACADcadabra

Rudy

Beste HofCad,

Wreed bedankt, dit is wat ik bedoelde. :vreegoe:
Deze opdracht zou nu moeten verwerkt worden in de lisp Purge&Save.lsp of PAS.lsp die ik eerder postte.
In  Purge&Save.lsp zit echter een foutje, copy paste werkt niet meer na uitvoering hiervan.
Zou je dit nog eens willen bekijken? :roll:
Indien dit zou lukken ben ik je eeuwig dankbaar! :D

Met vriendelijk groet,

Rudy
Autocad 2013 / 2016

HofCAD

#18
Beste Rudy,

Het is van het programma Purge&Save dom :nigoe: om alle Named Object Dictionaries
te verwijderen met de regel: (PurgeAllNamedObjectDictionaries)
Bij de volgende Dictionaries wordt o.a. een poging gedaan tot verwijdering:
"ACAD_COLOR", "ACAD_GROUP", "ACAD_LAYOUT", "ACAD_MATERIAL", "ACAD_MLEADERSTYLE",
"ACAD_MLINESTYLE", "ACAD_PLOTSETTINGS", "ACAD_PLOTSTYLENAME", "ACAD_SCALELIST",
"ACAD_TABLESTYLE", "ACAD_VISUALSTYLE" en "AcDbVariableDictionary".
Na Purge&Save hou je daarvan enkel de volgende Dictionaries over:
"ACAD_GROUP", "ACAD_LAYOUT", "ACAD_MLINESTYLE", "ACAD_PLOTSETTINGS"  en
"ACAD_PLOTSTYLENAME".
Na verwijdering van ACAD_TABLESTYLE kun je niet een Copy Paste uitvoeren,
en bij het commando TABLESTYLE loopt AutoCAD dan vast.

Met vriendelijke groet, HofCAD CSI.

PS Zie http://www.cadsite.be/smf/index.php?PHPSESSID=6fd0093f91c9aba6218935341889d8b7&topic=4806.0
PS Zie http://www.cadsite.be/smf/index.php?topic=4806.msg25429#msg25429
ACADcadabra

Rudy

Beste HofCad,

Ik heb de lisp juist getest en dit is wat ik zocht.  :lol:
Nogmaals dank voor de hulp en de nuttige informatie.  :vreegoe:

Met vriendelijke groeten,

Rudy
Autocad 2013 / 2016

Rudy

#20
Citaat van: Rudy op di 05 04 2011, 09:05:24
Beste HofCad,

Ik heb de lisp juist getest en dit is wat ik zocht.  :lol:
Ik ben toch nog een probleempje tegen gekomen bij het uitvoeren van de lisp RudyPurge&Save (zie boven)
Namelijk het volgende:
                  ; error: bad argument type: lselsetp nil
Dit komt voor wanneer ik een tekening purge zonder layouts met een viewport. Is dit mogelijk de reden?
Is er hier een oplossing voor ?
Het zou zo moeten zijn dat wanneer er geen layouts met viewport ontdekt worden, dat de routine dan gewoon afgewerkt wordt.
Autocad 2013 / 2016

yoin