yoin

delangstevandestraat

Ik heb een block geselecteerd met ssget,
en in die block ben ik op zoek naar de tekst die in een attrib zit,

ik heb vroeger al zo teksten laten wijzigen in lisp maar dan had ik iedere keer de tekst effectief aangeklikt in autocad, nu moet het meer vanzelf lopen zonder interactie, vandaar met ssget,...

maar hoe geraak ik dan aan die tekst waarde... ??
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

roy_043


delangstevandestraat

heb je daar misschien iets meer uitleg bij want VL heb ik al altijd angstvallig vermeden :-|
dat ziet er nog veel ingewikkelder uit, vandaar
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

delangstevandestraat

#3
hieronder stukje code waarmee ik de attrib value gevonden heb na een ssget
het staat opgesplitst in stapjes, om ev te bekijken in watch,
zo probeer ik toch altijd te volgen waar iets vandaan komt

  (setq selset (ssget "x" (list (cons 410 (getvar "ctab")) (cons 2 "blocknaam"))))
  (setq ent (ssname selset 0))                                       ;
  (setq details (entget ent))
  (setq v6 (assoc -1 details))
  (setq v7 (cdr v6))
  (setq v8 (entnext v7))
  (setq next (entget v8))
  (setq v9 (assoc 1 next))
  (setq attrib (cdr v9))


of in t kort :
(setq selset (ssget "x" (list (cons 410 (getvar "ctab")) (cons 2 "blocknaam"))))
  (setq ent (entget(ssname selset 0)))                                       ;
  (setq attrib (cdr (assoc 1 (entget (entnext (cdr (assoc -1 ent)))))))


ere wie ere toekomt, ik heb dit gedistilleerd uit een stukje van hofcad
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

roy_043

Hmm, vreemde code:
(ssname selset 0)
en
(cdr (assoc -1 ent))
bevatten dezelfde waarde...

Misschien is dit interessant als je geen VL wilt gebruiken:
http://www.cadsite.be/smf/index.php?topic=4759.msg25215#msg25215
Zoek naar de functie 'kg:InsertEname->AttribElist'.

delangstevandestraat

Dag roy,

wat bedoel je met

"hmmm vreemde code" ?

interessant ?
of
het klopt niet ?

want mijn lisp doet wel wat ie moet doen   :D
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

roy_043

In jouw code ga je van A via B en C weer naar A. Met andere woorden: jouw code bevat onnodige stappen.

delangstevandestraat

#7
onnodige ? daar had ik niet op gelet ?

ik zal ondertussen nog eens via watch de verschillende stappen bekijken ;-)

ben er intussen zelf uitgekomen, ge hebt gelijk,(waar ik niet aan twijfelde) maar wat straffer is : ik heb het gezien en code aangepast

 
(setq selset (ssget "x" (list (cons 410 (getvar "ctab")) (cons 2 "blocknaam")))) 
(setq attrib (cdr (assoc 1 (entget (entnext (ssname selset 0))))))
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)