FastFiber

Alles op laag 0 en kleur 9, echter teksten in kleur rood

Gestart door avsd, do 31 10 2013, 09:16:33

Vorige topic - Volgende topic

avsd

Met het onderstaande programmaatje wil ik alles op laag nul zetten met de kleur 9.
Alleen de teksten en attributen wil ik kleur 1 en met style stabicad-018 zetten.
Dit gaat goed met teksten en Mteksten. Echter voor attributen werkt het niet.
Iemand een idee hoe ik dit kan oplossen?

bvd Alexander
PS Iedereen die gewerkt heeft aan het programmatje van een paar weken geleden bedankt, het gaf een goede opmaak voor dit programmaatje.


(defun c:laag0 (/ actDocObj)
(command "style" "stabicad-018" "arial"  "90" "1" "0" "no" "no")
  (vl-load-com) 
  (vla-startundomark (setq actDocObj (vla-get-activedocument (vlax-get-acad-object)))) 
  (vlax-for blockDefObj (vla-get-blocks actDocObj)
    (vlax-for obj blockDefObj
      (vla-put-layer obj "0")
      (vla-put-color obj 9)
      (if
        (or
        (= (vla-get-ObjectName Obj) "AcDbText") ;Deze werkt goed voor teksten
        (= (vla-get-ObjectName Obj) "AcDbMText") ;Deze werkt goed voor Mteksten
        (= (vla-get-ObjectName Obj) "AcDbAttributeDefinition") ;deze werkt niet
        (= (vla-get-ObjectName Obj) "AcDbAttribute") ;deze werkt ook niet
        )
        (progn
          (vla-put-stylename Obj "STABICAD-018")
          (vla-put-color obj 1)
        );progn
      );if
    );vlax-for
  );vlax-for
  (vla-regen actDocObj acallviewports)
  (vla-endundomark actDocObj)
  (princ)
)

roy_043

De attributes (attribute references) 'hangen' aan inserts (block references) en zijn bijv. zo te benaderen:
(if
  (and
    (vlax-property-available-p obj 'hasattributes)
    (= (vla-get-hasattributes obj) :vlax-true)
  )
  (setq attObjList (vlax-invoke obj 'getattributes))
)