Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Script-fähige XREF-Pfad-Binden-Routine

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Script-fähige XREF-Pfad-Binden-Routine (543 mal gelesen)
CAD-Tötti
Mitglied



Sehen Sie sich das Profil von CAD-Tötti an!   Senden Sie eine Private Message an CAD-Tötti  Schreiben Sie einen Gästebucheintrag für CAD-Tötti

Beiträge: 116
Registriert: 27.09.2003

ACAD 2009

erstellt am: 02. Okt. 2003 21:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi,

ich möchte foldendes Problem lösen:
ich brauche eine Scriptfähige Lisp-Routine, die XREFs mit der Option Einfügen bindet. Dabei sollen geclipte XREFS hinterher als geclipte Blöcke erhalten bleiben und nicht einfach verschwinden.

Hat jemand von Euch eine gute Idee für einen LISP-Befehl ?

Danke,

CAD-Tötti :-)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADwiesel
Moderator
CAD4FM UG




Sehen Sie sich das Profil von CADwiesel an!   Senden Sie eine Private Message an CADwiesel  Schreiben Sie einen Gästebucheintrag für CADwiesel

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 05. Okt. 2003 12:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für CAD-Tötti 10 Unities + Antwort hilfreich

wasse isse damidde?

(defun C:Find-xref (/ f EARX_BTAA enams xbpath)
  (setq EARX_BTAA (tblnext "BLOCK" T))
  (while
    (/= EARX_BTAA nil)
    (setq f (cdr (assoc 70 EARX_BTAA))
          ) ;_ ende von setq
    (if
      (= 4 (logand f 4))
        (if (not (member (cdr (assoc -2 EARX_BTAA)) enams))
          (setq enams (cons (cdr (assoc -2 EARX_BTAA)) enams)
                xbpath(cons (cdr (assoc 1 EARX_BTAA)) xbpath))
          ) ;_ ende von if
        ) ;_ ende von if
    (setq EARX_BTAA (tblnext "BLOCK"))
    ) ;_ end of while
  (cons enams xbpath)
  ) ;_ ende von defun
(defun M:xeinf (/        blk_list  blk_data  blk_name  blk_pfad
                  elem_li  pfad_list dummy    filter    satz
                  ins_list  n        ent_name  ent_data  p
                  x        y        w        ins
                  )
  (setq blk_list (list))
  (setq blk_data (tblnext "BLOCK" t))
  (while blk_data
    (setq blk_name (cdr (assoc 2 blk_data)))
    (setq blk_pfad (cdr (assoc 1 blk_data)))
    (if (and (/= (boole 1 (cdr (assoc 70 blk_data)) 4) 0)
            (not (equal
                    blk_pfad
                    ""
                    ) ;_ ende von equal
                  ) ;_ ende von not
            ) ;_ ende von and
      (progn
        (setq blk_data (entget (tblobjname "BLOCK" blk_name)))
        (setq pfad_list blk_pfad)
        (cond
          ((/= (setq dummy (findfile pfad_list)) nil)
          (setq filter (list (cons 0 "INSERT") (cons 2 blk_name)))
          (setq satz (ssget "_x" filter))
          (if satz
            (progn
              (setq ins_list (list))
              (setq n (1- (sslength satz)))
              (repeat (sslength satz)
                (setq ent_name (ssname satz n))
                (setq ent_data (entget ent_name))
                (setq p (cdr (assoc 10 ent_data)))
                (setq x (cdr (assoc 41 ent_data)))
                (setq y (cdr (assoc 42 ent_data)))
                (setq w (cdr (assoc 50 ent_data)))
                (setq ins_list (cons (list dummy p x y w) ins_list))
                (setq n (1- n))
                ) ;_ ende von repeat
              (command "-xref" "l" (cdr (assoc 2 blk_data)))
              (foreach ins ins_list
                (command "_insert"
                          (nth 0 ins)
                          (nth 1 ins)
                          (nth 2 ins)
                          (nth 3 ins)
                          (nth 4 ins)
                          ) ;_ ende von command
                (setq elem_li (cons (entlast) elem_li))
                ) ;_ ende von foreach
              ) ;_ ende von progn
            ) ;_ ende von if
          )
          ) ;_ ende von cond
        ) ;_ ende von progn
      ) ;_ ende von if
    (setq blk_data (tblnext "BLOCK"))
    ) ;_ ende von while
  elem_li
  ) ;_ ende von defun

------------------
Gruß
CADwiesel
Besucht uns im
CHAT

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CAD-Tötti
Mitglied



Sehen Sie sich das Profil von CAD-Tötti an!   Senden Sie eine Private Message an CAD-Tötti  Schreiben Sie einen Gästebucheintrag für CAD-Tötti

Beiträge: 116
Registriert: 27.09.2003

ACAD 2009

erstellt am: 05. Okt. 2003 14:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Dankeschön, der war schon mal sehr gut, aber :-) :

a)
warum
(defun M:xeinf (/        blk_list  blk_data  blk_name  blk_pfad"
und nicht
(defun C:xeinf (/        blk_list  blk_data  blk_name  blk_pfad ???

b)
gedreht eingefügte XREFs dreht die Routine herum

c)
geclipte XREFs "entclippt" die Routine, und das war genau der Punkt :-).

Hat da jemand noch die Patentlösung für ?

Grüße,

CAD-Tötti

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz