FastFiber

van Attach naar Overlay

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

Vorige topic - Volgende topic

theKruid

Bestaat er een manier om tekeningen met xrefs die ge-attached zijn, de xrefs in overlay te zetten?
Liefst wil ik dit in een script zetten, omdat het om een paar honderd tekeningen gaat.
Dubbel klikken in het xref menu is dus geen optie voor mij.
Ook zijn het per tekening andere xrefs, dus ik kan ze niet detachen en opnieuw koppelen.

EddyBeerke

In de Xrefmanager kun je dat regelen.
Klik op de Xref en pas de dingen aan.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

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

theKruid

Das mijn punt juist.
Het gaat om ongeveer 500 tekeningen.
Ik zie het niet zo zitten om per tekening alles met xrefmanager aan te passen.
Zoiets wil ik in een script zetten.

roy_043

Probeer deze lisp. De lisp moet je per tekening laden en daarna starten met DoIt. De lisp kan gebruikt worden met Babe.
Let op: beperkt getest, dus maak van alles eerst een goede back-up en probeer het eerst op een paar tekeningen.
;;; Gemaakt voor: http://www.cadsite.be/smf/index.php?topic=4049.0
(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
      (progn
        (setq ent (entget (tblobjname "block" (cdr (assoc 2 ent))) '("*")))
        (entmod
          (subst (cons 70 (logior (cdr flagGc) 8)) flagGc ent) ; 8 d.w.z overlay
        )
      )
    )
  )
  (princ)
)

theKruid

klinkt veelbelovend.
Toch wil het met deze lisp niet echt werken.
Misschien ben ik nog niet zo'n held met lisps.
Ik plaats deze "tekst" in een lsp bestand.
Dan laad ik dit met appload.
daarna voer ik het comando "doit" in.... en dan niks.
Ligt dit aan mij, of klopt er iets niet in de lsp?

roy_043

Het is geen lisp die communiceert met de gebruiker. Sla de tekening op na toepassing van de lisp en open de tekening daarna opnieuw en controleer de xrefs.

theKruid


roy_043

Helaas inderdaad. In Bricscad 10 werkt de lisp wel. Dat wordt dan een paar uurtjes klikken voor jou! :mrgreen:
... Voor de zekerheid voeg ik de lisp nog even als bijlage toe, eventueel is er iets misgegaan bij het maken van jouw lisp-bestand.

theKruid


Reimer

Beste Roy,

ik heb de lisp ook even getest (acad 2010) maar geen resultaat. Ik heb de lisp geladen en DoIt gebruikt.

Jouw code gaat voor mij echter iets te ver. Zo kan ik nog niet helemaal volgen waarmee je ENT nu vult "(tblnext "block" (not ent))". Het heeft iets te maken met rewind geloof ik. Tevens ken ik LOGAND en LOGIOR niet.

Kun je jouw code misschien iets toelichten zodat ik kan proberen te achterhalen waar het in acad mis gaat?

Reimer


HofCAD

#10
Citaat van: theKruid op di 20 04 2010, 13:23:12
maar toch bedankt.  :?


Beste Heren,

Kijk eens naar http://discussion.autodesk.com/forums/thread.jspa?threadID=427269
met xreftooverlay.lsp met het commando XREFTOOVERLAY en x2a.lsp met o.a.
de commando's x2a en x2o.

Met vriendelijke groet, HofCAD CSI.
ACADcadabra

roy_043

@ Reimer:

Deze code:
  (while (setq ent (tblnext "block" (not ent)))
    ...
    ...
  )
Is een verkorte versie van:
  (setq ent (tblnext "block" 'T))
  (while ent
    ...
    ...
    (setq ent (tblnext "block"))
  )

Voor wat betreft LOGAND en LOGIOR wil ik verwijzen naar:
http://www.cadsite.be/smf/index.php?topic=3725.0
en naar de Help bestanden.

theKruid

Heel toevallig had ik deze na een hoop zoeken ook gevonden.
Helaas zitten hier ook een paar dingen in die ik niet wil.
Zo kan deze lisp niet omgaan met paperspace/modelspace en plaatst deze lisp lege tekeningetjes in de directory.
Ook worden niet alle xrefs omgezet.
Ik kom er een eind mee, maar ik twijfel of ik dit wel wil gebruiken.
Zeker omdat hij alle xrefs plaatst in 1 layout.
Dat is niet wat ik wil.

zeikerd ben ik hé?  :twisted:

roy_043

Voor de geïnteresseerden:
Ik heb nog iets toegevoegd aan mijn lisp. Het lijkt mij overigens onwaarschijnlijk dat het programma nu wel zal werken onder AutoCad.

theKruid

klopt!
Het werkt niet.  :D

Het lijkt zo simpel, maar nergens een bruikbare optie of truc gevonden.  :(