FastFiber

Lagen mysterie (opgelost)

Gestart door AdenRob, wo 14 08 2013, 14:11:38

Vorige topic - Volgende topic

EddyBeerke

Citaat van: roy_043 op do 15 08 2013, 15:26:23
Een voorbeeld hoe je lagen 'unpurgable' kunt maken:
; (LayerPurgePrevention "OnsBedrijfLayerPurgePrevention" '("NewLayer1" "NewLayer2" "BestaatNiet"))
(defun LayerPurgePrevention (dictName layerNameList / layerEnameList)
  (dictremove (namedobjdict) dictName)
  (if
    (setq layerEnameList
      (vl-remove
        nil
        (mapcar
          (lambda (layerName) (tblobjname "layer" layerName))
          layerNameList
        )
      )
    )
    (dictadd
      (namedobjdict)
      dictName
      (entmakex
        (vl-list*
          '(0 . "XRECORD")
          '(100 . "AcDbXrecord")
          (mapcar
            '(lambda (layerEname) (cons 340 layerEname))
            layerEnameList
          )
        )
      )
    )
  )
)


Bij mij loopt de code vast op: (lambda (layerName) (tblobjname "layer" layerName))
Geprobeerd met en zonder nieuwe layers, met acad 2013.
Wat zou dat kunnen zijn?
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

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

roy_043

Oops :oops:
Het moet zijn:
'(lambda (layerName) (tblobjname "layer" layerName))
Met quote dus.

EddyBeerke

Citaat van: roy_043 op ma 19 08 2013, 15:32:36
Oops :oops:
Het moet zijn:
'(lambda (layerName) (tblobjname "layer" layerName))
Met quote dus.

Bedankt hem 'm gefixed, en het werkt.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

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

jo-king

De layers zijn inderdaad nog in gebruik; namelijk in een style.

Ik heb de dwg even open gedaan in AutoCAD Architecture; waar er inderdaad nog een user-defined wall-style stond, met de betreffende layers in gebruik.. (zie printscreen in bijlage)

Ook al wordt deze wall-style niet gebruikt, hij bestaat wel. (net zoals een dimension style een layer kan bevatten)

de gewone autocad purge werkt niet op architectural objects...
je moet dit in de stylemanager zelf doen, waarna je de layers perfect kan purgen met de gewone purge (zie bijlage)


mvg,

Jo.




CAD/BIM consultant
Autodesk Reseller
Revit Certified professional

AdenRob

#19
@ jo-king:
Bedankt voor je reactie!  :vreegoe: Dit is wat we zochten!
Jammer dat AutoCAD niet voorziet in het purgen van deze objecten... Misschien (weer) iets voor op de wishlist. Gelukkig kunnen we de lagen en de inhoud van de lagen verwijderen met het commando LAYDEL. Op deze manier worden dan hopelijk de wall-styles verwijderd? Echter kunnen we dit niet checken aangezien we niet in het bezit zijn van AutoCAD architecture noch SUPERPURGE. In de bijlage de tekening met de inmiddels verwijderde lagen d.m.v. het commando LAYDEL. Zou je misschien nog even voor ons willen controleren of de wall-styles nu uit de tekening zijn verwijderd?  :roll:

@ Bart/Eddy:
Helaas krijgen we de lisp nog (steeds) niet werkend... Kan één van jullie ons misschien uitleggen op welke regel we de laagnamen op moeten geven. Of misschien dat jullie ons een kopie van jullie LISP willen sturen. Dan kunnen we zelf uitzoeken wat we verkeerd doen.

Met vriendelijke groet,
AdenRob

jo-king

Ik heb de nieuwe tekening even open gedaan & mijn vermoedens werden hierbij bevestigd...

De layers zijn er wel uit, maar de style blijft bestaan.
De verwijderde layers worden in de style blanco...
zie bijlage

Normaal kan je reseller je hierbij wel helpen
of misschien kan je AutoCAD Architecture als trial installeren?

groetjes,

Jo.
CAD/BIM consultant
Autodesk Reseller
Revit Certified professional

EddyBeerke

Citaat van: jo-king op wo 21 08 2013, 16:22:11
Ik heb de nieuwe tekening even open gedaan & mijn vermoedens werden hierbij bevestigd...

De layers zijn er wel uit, maar de style blijft bestaan.
De verwijderde layers worden in de style blanco...
zie bijlage

Normaal kan je reseller je hierbij wel helpen
of misschien kan je AutoCAD Architecture als trial installeren?

groetjes,

Jo.


Werkt het ook niet met "wblock -> Entire drawing"?

Citaat van: AdenRob op wo 21 08 2013, 15:49:50
...
@ Bart/Eddy:
Helaas krijgen we de lisp nog (steeds) niet werkend... Kan één van jullie ons misschien uitleggen op welke regel we de laagnamen op moeten geven. Of misschien dat jullie ons een kopie van jullie LISP willen sturen. Dan kunnen we zelf uitzoeken wat we verkeerd doen.

Met vriendelijke groet,
AdenRob

Dit is e lisp:
; (LayerPurgePrevention "OnsBedrijfLayerPurgePrevention" '("NewLayer1" "NewLayer2" "BestaatNiet"))
(defun LayerPurgePrevention (dictName layerNameList / layerEnameList)
  (dictremove (namedobjdict) dictName)
  (if
    (setq layerEnameList
      (vl-remove
        nil
        (mapcar
          '(lambda (layerName) (tblobjname "layer" layerName))
          layerNameList
        )
      )
    )
    (dictadd
      (namedobjdict)
      dictName
      (entmakex
        (vl-list*
          '(0 . "XRECORD")
          '(100 . "AcDbXrecord")
          (mapcar
            '(lambda (layerEname) (cons 340 layerEname))
            layerEnameList
          )
        )
      )
    )
  )
)


Deze werkt door deze regel op de commandoregel in te typen:
(LayerPurgePrevention "OnsBedrijfLayerPurgePrevention" '("NewLayer1" "NewLayer2" "BestaatNiet"))
De namen van de layers zijn dan: "NewLayer1", "NewLayer2" en "BestaatNiet".
Hier kun je je eigen layers opgeven
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

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

bart

als je met superpurg AEC_WALL_STYLES verwijderd (in de hard mode)

Kan je vervolgens met de gewone purge de lagen verwijderen

Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

AdenRob

#23
@ Roy_043:
Allereerst onze hartelijk dank voor je lisp  :vreegoe:

@ jo-king:
Bedankt voor het testen! We zijn door dit topic veel wijzer geworden wat betreft het opschonen van een tekening. Een trail versie downloaden zou voor de korte termijn een goede oplossing kunnen zijn, echter wie weet welke andere CAD-applicaties nog meer een dwg kunnen vervuilen... Wellicht is het kopen van het programma superpurge een duurzamere oplossing ofwel wachten tot AutoCAD de purge functie uitbreid.

@EddyBeerke:
Bedankt voor je uitleg! Nu krijgen wij de lisp ook werkend.
Een Wblock maken hebben we nog niet getest. Dit zullen we binnenkort even doen.

@Bart:
Ook jij bedankt voor je reactie. We zullen binnenkort (in een rustigere periode) de trail versie van superpurge eens downloaden.