Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  xref

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:  xref (1690 mal gelesen)
fca_mi2
Mitglied
Bauingenieur


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

Beiträge: 505
Registriert: 10.01.2003

ACAD2018

erstellt am: 03. Mrz. 2006 21:38    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

hallo,

wie komme ich an den zuschnitt eines xrefs heran ?

------------------
MfG
Frank

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

WolfgangGutke
Mitglied
Konstrukteur


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

Beiträge: 109
Registriert: 28.09.2004

AutoCAD 2002
AutoCAD 2006
ObjectDCL 2.02

erstellt am: 04. Mrz. 2006 11:32    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 fca_mi2 10 Unities + Antwort hilfreich


xzuschneiden.txt

 
Hallo Frank,

dies Problem hatte ich auch. Folgende Lösung siehe Anhang.

P.S.: Ich verwende in diesem Prog die Zusatzapplikation ObjectDCL. Must das Prog also etwas umbauen.

VG
Wolfgang

------------------
LISP = Lots of Insane Stupid Parantheses

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

fca_mi2
Mitglied
Bauingenieur


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

Beiträge: 505
Registriert: 10.01.2003

ACAD2018

erstellt am: 04. Mrz. 2006 12:05    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

hallo,
vielen dank für die antwort.

wie kann ich mir denn ermitteln, welche bereich des xrefs zugeschnitten ist? also welcher bereich noch sichtbar ist.

------------------
MfG
Frank

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

WolfgangGutke
Mitglied
Konstrukteur


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

Beiträge: 109
Registriert: 28.09.2004

AutoCAD 2002
AutoCAD 2006
ObjectDCL 2.02

erstellt am: 04. Mrz. 2006 12:14    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 fca_mi2 10 Unities + Antwort hilfreich

Tja, gute Frage ;-)

Muss ich erst selber gucken!

VG
Wolfgang

P.S.: Versuche doch mal mit (entget (car (entsel "\nxRef wählen:"))) dir alle GC anzuschauen. Danach die Zuschnittgröße ändern und mit (entget ...) erneut abfragen. Dann findest du bestimmt irgendwelche Unterschiede (GC 410?).

------------------
LISP = Lots of Insane Stupid Parantheses

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

fca_mi2
Mitglied
Bauingenieur


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

Beiträge: 505
Registriert: 10.01.2003

ACAD2018

erstellt am: 04. Mrz. 2006 13:49    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

habe verglichen und nix gefunden... 

------------------
MfG
Frank

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 06. Mrz. 2006 11:21    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 fca_mi2 10 Unities + Antwort hilfreich

Hallo Frank,
wie aus Wolfgangs Programm ersichtlich ist, werden die Umgrenzungen in dictionarys abgelegt. Da kommst Du am besten mit dictsearch ran. Für Deinen Fall mal eingebunden:
Code:
(defun get-clips (block / eig dict clips points)
  (setq eig (entget block));Blockeigenschaften
  (if (and
(setq dict (cdr (assoc 360 eig)));Dictionary existiert -> Umgrenzung ist oder war vorhanden
        (setq clips (dictsearch (cdr (assoc -1 (dictsearch dict "ACAD_FILTER"))) "SPATIAL"));aktuelle Umgrenzung vorhanden
      );Umgrenzung existiert
    (setq points (mapcar 'cdr (multi-assoc 10 clips)))
  )
  points
)


(defun multi-assoc (key liste / return)
  (if (and liste (setq return (assoc key liste)))
    (cons return (multi-assoc key (cdr (member return liste))))
  )
)



Grüsse, Henning

(PS: habe im Moment keine Zeit für lange Erläuterungen, aber such doch mal nach dictionary...)

------------------
VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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

fca_mi2
Mitglied
Bauingenieur


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

Beiträge: 505
Registriert: 10.01.2003

ACAD2018

erstellt am: 06. Mrz. 2006 12:59    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

habe deine routine ausprobiert und sie funktioniert :-)

aber wenn ich ein zugeschnittenes xref kopiere, gibt das progi die gleichen koordinaten zurück

------------------
MfG
Frank

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 06. Mrz. 2006 13:14    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 fca_mi2 10 Unities + Antwort hilfreich

Hallo Frank,
die Koordinaten sind im OKS(als Objekt-Koordinaten) abgespeichert. Du musst sie noch mit trans in WKS/BKS umwandeln.

Ach ja, und noch was: gibt es nur 2 Punkte, ist es ein rechteckiger Zuschneidebereich.

Grüsse, Henning

------------------
VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

[Diese Nachricht wurde von wronzky am 06. Mrz. 2006 editiert.]

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

fca_mi2
Mitglied
Bauingenieur


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

Beiträge: 505
Registriert: 10.01.2003

ACAD2018

erstellt am: 06. Mrz. 2006 17:02    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

ich kriege es nicht hin :-(

es werden immernoch dir punkte von dem zuerst zugeschnittenen xref ausgegeben

------------------
MfG
Frank

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

fca_mi2
Mitglied
Bauingenieur


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

Beiträge: 505
Registriert: 10.01.2003

ACAD2018

erstellt am: 06. Mrz. 2006 20:01    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

hab's schon selbst herausgefunden, man muss nur die hilfe genau lesen :

(trans (nth 0 points) block 0 nil) (trans (nth 1 points) block 0 nil)

DANKE

------------------
MfG
Frank

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

fca_mi2
Mitglied
Bauingenieur


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

Beiträge: 505
Registriert: 10.01.2003

ACAD2018

erstellt am: 07. Mrz. 2006 10: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

sch....

es klappt doch nicht !

------------------
MfG
Frank

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 07. Mrz. 2006 14:15    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 fca_mi2 10 Unities + Antwort hilfreich

Hallo Frank,
hab's jetzt auch mal probiert:
Code:
(defun c:clip-info ( / bl pt)
  (setq bl (car (entsel)))
  (setq pt (get-clips bl))
  (mapcar '(lambda (x) (trans x bl 0)) pt)
)
Du hast tatsächlich recht, aber wie jetzt weiter weiss ich auch nicht spontan. (Das Problem tritt aber nur bei kopierten xrefs auf.) In der AutoCAD-Hilfe steht halt nur:
Definitionspunkt für Zuschneide-Umgrenzung (im OKS; stets größer oder gleich 2), basierend auf einem XRef-Skalierfaktor von 1.
Darauf hab' ich mich verlassen... Wenn Du eine Lösung hast, melde Dich.
Grüsse, Henning

------------------
VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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

fca_mi2
Mitglied
Bauingenieur


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

Beiträge: 505
Registriert: 10.01.2003

ACAD2018

erstellt am: 07. Mrz. 2006 14:39    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

jo, ich hab's irgendwie hingebogen:

;(get-clips (car (entsel)))
(defun get-clips (block / eig dict clips points ex ey dx dy)
  (setq eig (entget block));Blockeigenschaften
  (if (and
(setq dict (cdr (assoc 360 eig)));Dictionary existiert -> Umgrenzung ist oder war vorhanden
(setq clips (dictsearch (cdr (assoc -1 (dictsearch dict "ACAD_FILTER"))) "SPATIAL"));aktuelle Umgrenzung vorhanden
      );Umgrenzung existiert
    (setq points (mapcar 'cdr (multi-assoc 10 clips)))
  )
 
  (setq ex (+ (nth 0 (cdr (assoc 10 eig))) (nth 0 (nth 0 points)) (nth 3 (mapcar 'cdr (multi-assoc 40 clips)))))
  (setq ey (+ (nth 1 (cdr (assoc 10 eig))) (nth 1 (nth 0 points)) (nth 7 (mapcar 'cdr (multi-assoc 40 clips)))))

  (setq dx (- (nth 0 (nth 1 points)) (nth 0 (nth 0 points))))
  (setq dy (- (nth 1 (nth 1 points)) (nth 1 (nth 0 points))))

  (princ "\n")
  (princ
  (list (list (list ex ey)
      (list (+ ex dx) (+ ey dy)))
(list (list (+ (nth 0 (nth 0 points)) (nth 3 (mapcar 'cdr (multi-assoc 40 clips))))
    (+ (nth 1 (nth 0 points)) (nth 7 (mapcar 'cdr (multi-assoc 40 clips)))))
      (list dx dy)))
  )
)


(defun multi-assoc (key liste / return)
  (if (and liste (setq return (assoc key liste)))
    (cons return (multi-assoc key (cdr (member return liste))))
  )
)


Teamwork ist alles ! 

------------------
MfG
Frank

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 07. Mrz. 2006 22:15    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 fca_mi2 10 Unities + Antwort hilfreich

Hi Frank,
Habe mir Deine Funktion mal angesehen. Wesentlich ist da ja, dass Du zu den einzelnen Koordinaten noch die entsprechenden Koordinaten den jeweiligen Basispunkt des Blockes hinzuzählst. Guter Ansatz, entspricht ja der Basispunkt dem null-Punkt des OKS des Blockes, und wenn schon das (trans x bl 0) nicht geht  , muss man's halt von Hand machen... (Ich glaube das mit dem nth 3 und nth 7 kannst Du Dir sparen, weil da - bei mir zumindest - immer 0 steht). Daher könnte man die Funktion noch etwas eindampfen:
Code:
(defun get-clips (block / eig dict clips points)
    ...
    (setq points (mapcar '(lambda (x) (mapcar '+ (cdr (assoc 10 eig)) x)) (mapcar 'cdr (multi-assoc 10 clips))))
  )
)
Tja, aber was ist mit gedrehten Blöcken, mit (unterschiedlich) skalierten...
Na, dann hab' ich Deinen Ansatz halt weitergestrickt: Nullpunkt und Drehung über ein "BKS Objekt", Skalierung einzeln auslesen und auf die ermittelten Clipkoordinaten anwenden. Und Fertig ist die Funktion:
Code:
(defun get-clips (block / eig dict clips points)
  (setq eig (entget block));Blockeigenschaften
  (if (and
        (setq dict (cdr (assoc 360 eig)));Dictionary existiert -> Umgrenzung ist oder war vorhanden
        (setq clips (dictsearch (cdr (assoc -1 (dictsearch dict "ACAD_FILTER"))) "SPATIAL"));aktuelle Umgrenzung vorhanden
      );Umgrenzung existiert
;    (print clips)
    (setq points (mapcar 'cdr (multi-assoc 10 clips)))
  )
  (command "_ucs" "_ob" block)
  (setq points (mapcar '(lambda (x) (mapcar '* x (list (cdr (assoc 41 eig)) (cdr (assoc 42 eig)) (cdr (assoc 43 eig))))) points))
  (setq points (mapcar '(lambda (x) (trans x 1 0)) points))
  (command "_ucs" "_p")
  (setq points (mapcar '(lambda (x) (trans x 0 1)) points))
)
Bleibt eigentlich nur die Frage, wieso Autocad das (trans x bl 0) nicht richtig macht

Grüsse, Henning

------------------
VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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