FastFiber

van Attach naar Overlay

Gestart door theKruid, ma 19 04 2010, 11:17:55

Vorige topic - Volgende topic

Reimer

Beste Roy,

ik probeer toch nog om jouw lisp werkende te krijgen. Ik heb onderstaande gebruikt en krijg de melding dat er een attached xref is gevonden. Dit klopt ook.

(defun c:DoIt ( / ent flagGc)
  (while (setq ent (tblnext "block" (not ent)))
    (setq flagGc (assoc 70 ent))
    (if (= (logand (cdr flagGc) 4) 4) ; 4 d.w.z. xref
      (princ "attached xref gevonden")
    )
  )
)

Het probleem zit hem dus blijkbaar in het aanpassen van de xref. Heb je hier ook alternatieven voor?

De volgende regel geeft mij netjes de eigenschappen van de attached xref.
(setq ent (entget (tblobjname "block" (cdr (assoc 2 ent))) '("*")))

De volgende regel veranderd (70 . 36) wel in (70 . 44), helaas wordt deze niet doorgevoerd naar de xref toe.
(subst (cons 70 (logior (cdr flagGc) 8 )) flagGc ent)

Reimer

roy_043

Citaat van: Reimer op vr 23 04 2010, 16:23:28Heb je hier ook alternatieven voor?
Ja... maar het wordt dan wel behoorlijk omslachtig.

Ik heb nog wat rondgeneusd en deze link gevonden:
http://www.theswamp.org/index.php?topic=25232.0
Dit programma is anders dan de voorbeelden die HofCAD heeft aangedragen, maar het volgt wel hetzelfde principe:
1.
De inserts van de te wijzigen Xref tijdelijk vervangen door inserts van een niet bestaande Xref met de juiste ATTACH/OVERLAY instelling.
2.
De te wijzigen Xref detachen.
3.
De inserts uit 1. weer koppelen aan de originele Xref maar nu met de juiste ATTACH/OVERLAY instelling.
4.
Waarbij er schijnbaar (zie genoemde link) nog problemen zijn met geneste Xrefs.

Uit het feit dat verschillende mensen deze omslachtige weg volgen, moet ik concluderen dat AutoCAD het simpelweg aanpassen van group code 70 niet accepteert.

Overigens had ik mijn simpele lisp tot vandaag alleen getest met ongeneste Xrefs. Ik geef toe dat dit, gegeven de probleemstelling: attach naar overlay, bepaald geen goede test is. Maar tot mijn verbazing, en opluchting, werkt de lisp in Bricscad ook met geneste Xrefs. Het maakt daarbij niet uit, opnieuw tot mijn verbazing, of je onder- of bovenaan de nestingsboom begint.

Mijn test van vandaag:
A.dwg: bevat geen Xref
B.dwg: bevat 1 insert van Xref A
C.dwg: bevat 1 insert van Xref A en 1 insert van Xref B
D.dwg: bevat 1 insert van Xref A, 1 insert van Xref B en 1 insert van Xref C

yoin