FastFiber

Veranderen van de orde van lagen in autocad

Gestart door Ben, ma 08 08 2005, 09:35:35

Vorige topic - Volgende topic

Ben

Voor een opdrachtje moet ik pictogrammen plaatsen op enkele plannetjes.  Maar nadat ik deze geplaatst had bleken ze onder enkele andere lagen te staan die op dat plan stonden.  Weet er iemand hoe ik deze kan veranderen.  
Ik weet dat dit met een AutoLisp commando kan, maar het lukt mij niet om het te gebruiken.  Zijn er ook andere mogelijkheden om de orde van de lagen te veranderen.

Voor de volledigheid zet ik er eventjes het AutoLisp programma bij.  Het zou kunnen dat dit juist is, alleen ben ik een echte beginneling met Autocad en lukt het mij niet om het AutoLisp programma juist in te laden denk ik.

Kan mij hiet iemand mee helpen.
Dank u


(defun wijzigorde (file /)
; wijzigen prioriteit van de lagen
;
; de tekstfile die als argument wordt opgeroepen
; bevat als eerste lijn de nieuwe onderste laag
; de laatste lijn wordt de nieuwe bovenste laag
;
;
(setq lagenlijst ())                             ; ledige lagenlijst
(setq lagenfile (open file "r"))                 ; open de file voor lezen
(setq geenfoutvlag ())                           ; vlag staat ledig = er is filefout
;
 (if lagenfile                                   ; indien lagenfile
  (progn
    (setq geenfoutvlag 1)                        ; er is geen filefout meer
    (setq laag (read-line lagenfile))
    (while laag
       (setq lagenlijst (append lagenlijst (list laag)))
       (setq laag (read-line lagenfile))
    );einde while
   );einde progn
                                                 ; indien geen lagenfile
  (progn
   (princ "\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
   (princ "\n!!! FOUT: de file werd niet geopend,                               !!!")
   (princ "\n!!! staat de tekstfile met de lagenorde wel in de opgegeven path ? !!!")
   (princ "\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
   (princ)
  );einde progn
 );einde if
;
 (setvar "cmdecho" 0)
 (setvar "highlight" 0)
 (foreach la lagenlijst

Ben

Ah ja, mocht dat belangrijk zijn ik werk met Autocad 2004

WebRacer

Dit is een  :roll: probleem hoor... eerst en vooral, de lisp staat er niet volledig op..., dan in het regeltje lagenfile staat een verwijzing naar file maar er word naar geen file gevraagt.?...?
eerst even het volledige lisp'ke , dan kunnen we verder...
?

Ben

Dit is de Lispcode die ik op de help heb gevonden.  Zelf ken ik niet zoveel van AutoLisp.  Weet ge soms niet waar ik zo van die lispprogramma's kan downloaden om die daarna gewoon te laden.  

En btw als er natuurlijk een andere methode is om de lagen te veranderen is dat natuurlijk veel beter.  Ik weet niet of dit de enige methode is.

WebRacer

waar heb je dat gevonden die lispcode?
niet de volledige code staat op deze site...
het stopt waar het programma pas echt begint... vanaf de foreach
?

bart

Deze is door mij aangepast (zelf ooit een keer ergens opgehaalt

de rest van de lisp.

(foreach la lagenlijst
  (progn
    (princ (strcat "\nVerwerking laag " la " ..."))
    (setq ss (ssget "x" (list (cons 8 la))))
     (if ss
           (progn
             (command "copy" ss "" "0,0" "")
             (command "erase" ss "")
           );einde progn
        (princ "!!! deze laag komt niet voor in de tekening !!!")
     );einde if
   );einde progn
 );einde foreach
 (if geenfoutvlag
           (princ "\n!!! EINDE VERWERKING !!!")        ;afgeprint indien geen filefout
 ); einde foutvlag
 (setvar "cmdecho" 1)
 (setvar "highlight" 1)
 (princ)
);einde defun lagenorde




*********


het tekst bestand

*0_SITUATIE
*0_agrijs_05
*0_agrijs_10
*0_agrijs_15
*0_agrijs_20
*0_agrijs_25
*0_AGRIJS_25_STEMPEL
*0_agrijs_30
*MTX*
*MX-*
*0_SOLID
*0_ARCERING*
*0_m*
*0_r*
*0_h*
*0_w*
*0_ge*
*0_gr*
*0_b*

hierboven een voorbeeld voor een tekst bestandje

het programma werkt met de laagnaam als uitgangspunt.
En plaast de eerst genoemde laag boven op.

let op niet genoemde lagen komen dus helemaal onderop te liggen.
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

WebRacer

Heb dat dus even aangepast, maar niet getest... das voor u.

(defun c:wijzigorde (/ lagenlijst filenam lagenfile geenvlagfout laag ss )
(setq lagenlijst ())
(setq filenam (strcat (getvar "DWGPREFIX") (substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 4))))
(setq filenam (getfiled "Geef naam en pad op voor txt-File" filenam "txt" 4))
(setq lagenfile (open filenam "r"))
(setq geenfoutvlag ())
(if lagenfile
 (progn
   (setq geenfoutvlag 1)
   (setq laag (read-line lagenfile))
   (while laag
     (setq lagenlijst (append lagenlijst (list laag)))
     (setq laag (read-line lagenfile))
   )
 )
 (progn
   (princ "\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
   (princ "\n!!! FOUT: de file werd niet geopend, !!!")
   (princ "\n!!! staat de tekstfile met de lagenorde wel in de opgegeven path ? !!!")
   (princ "\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
   (princ)
 )
)
(setvar "cmdecho" 0)
(setvar "highlight" 0)
(foreach la lagenlijst
 (progn
   (princ (strcat "\nVerwerking laag " la " ..."))
   (setq ss (ssget "x" (list (cons 8 la))))
   (if ss
     (progn
   (command "copy" ss "" "0,0" "")
   (command "erase" ss "")
     )
     (princ "!!! deze laag komt niet voor in de tekening !!!")
   )
 )
)
(if geenfoutvlag
 (princ "\n!!! EINDE VERWERKING !!!")
)
(setvar "cmdecho" 1)
(setvar "highlight" 1)
(princ)
)
(princ "\nStart commando met 'WIJZIGORDE'.")(princ)
?

Ben

Zeer bedankt webracer.  Ik merk wanneer ik het programma laad dat het werkt. Maar bij het opvragen van een file herkent hij geen enkele van mijn autocad bestanden.  Nochtans hebben alle files meerdere lagen.  Ook als ik op voorhand mijn file open en daarna het lispke inlaad vraagt hij nog naar een file.  En wederom herkent hij geen enkele van mijn autocad files.

Misschien ben ik door mijn gebrek aan ervaring heel dom bezig, dat zou ook kunnen.

WebRacer

de file die hij telkens vraagt is de txt-file waar uw lijst met lagen staan in de juiste volgorde.... heeft niets met tekeningen te maken!
?

Ben


Gene

Het lijkt misschien te simpel maar kan je dat icoontje niet gewoon selecteren zodat er grips opzitten en vervolgens in je lagentabel de laag selecteren waarin je dat icoontje wil hebben.


Groetjes

Ben

Het zou zeer handig zijn mocht er ook een handigere methode zijn om de prioriteit van de lagen te veranderen, want via autolisp vind ik persoonlijk heel omslachtig.
Alleen begrijp ik niet goed hoe je door grid (???) te verkrijgen bij een icoontje de prioriteit van de lagen gaan veranderen?

WebRacer

Beste Ben,
mms kunnen we hiervoor eennuttige routine schrijven nietwaar...
als je nou eens volledig uitlegde wat je wil bereiken en wat het moet kunnen.... dan kunnen we een topic plaatsen 'Maken van een Layer-Sorter voor teken-lagen' ofzoiets. en dan word er wel een progje gemaakt  die u de lagen vlgs. prio laat sorteren ofzo, en dan 'ok' en alles word netje geplaatst.

Het enige probleem dat ik heb is: waar maakt het verschil uit welke laag over de welke staat?Welk soort tekeningen zijn dat, welke doelgroep is dat?
?

Ben

OK, merci voor het geduld trouwens.  

Dit is hetgeen waar ik momenteel mee bezig ben.
Ik doe vakantiewerk op een ministerie.  Daar heb de opdracht gekregen om de preventieplannen te maken.  Dit zijn plannetjes die op verschillende plaatsten in het gebouw op de muren wordt gehangen om de mensen uit te leggen waar ze naartoe moeten in geval van brand.
Op deze plannen moeten dus pictogrammen (brandblussers, ea ) geplaatst worden.  Ook heb ik de gangen van de gebouwen een andere kleur gegeven.

Het probleem is hetvolgende:
Soms staat de pictogrammen onder de vluchtweg of onder de muren van het gebouw getekend, ondanks dat ik ze als laatste heb erbij getekend.  Ook zijn de sommige lijntjes die de trappenin de gangen voorstellen (die staan in dezelfde layer van de muren van het gebouw) niet te zien onder de gekleurde gang.  

Een andere probleem is dat wanneer ik na het wat prutsten het toch lijkt alsof als in de juiste volgorde staat van lagen, dat wanneer ik het naar pdf converteer dat ik dan weer op hetzelfde probleem schuif van verborgen pictogrammen en lijntjes.

Let wel, al mijn pictogrammen staan in dezelfde layer en toch bevinden de helft van de pictegrammen zich wel helemaal vanboven, terwijl andere  onder de gekleurde gang  verscholen zitten.

Om het kort te zeggen, ik speel niet met autocad, autocad speelt met mij.  En laat ik zeggen dat dit zeer frustrerend kan werken.

Zo dit is mijn probleem.  
Ik hoop dat er een simpele oplossing voor is, want toen ik dat lispke van u probeerde vond ik niet waar de txt files stonden.

Het zou mss duidelijker zijn als ik een beeld van mijn plannen zou laten zien, maar dit is helaas niet toegelaten van mijn chef, omdat alle inbraakmogelijkheden ook op de plannen staan.


En nog eens, ik waardeer u hulp zeer, ge hebt meer geduld met mij dan ik met autocad.

Dnereb

Je moet eens naar het commando draworder kijken
ik denk dat je daarmee veel beter bent geholpen.
overigens maak ik regelmatig tekeningen voor de brandweer om een vergunnig te verkrijgen voor een evenement.
Als je adviezen wilt over richtlijnen of plaatsing van symbolen stuur mij dan een prive bericht op deze site of mail naar Berend@partyloo.nl


Berend

yoin