Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Information aus 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:  Information aus Xref (1236 mal gelesen)
fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 16. Mrz. 2017 17:12    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

Guten Tag

ich möchte gern an eine Information ran kommen. Ich habe mehrere Xrefs an einer Zeichnung hängen. Eine bestimmte Xref endet immer mit "_az".

Bsp.

Zeichnung1 - Xref = test1_az

Zeichnung2 - Xref = test2_az

usw. die Angehängte Zeichnung endet immer auf "unterstrich a z" und es gibt immer nur eine Xref pro Zeichnung die auf "_az" endet.

Ziel:

(setq dwgnameaz (*_az)) ;sternchen immer mit entsprechenden Namen versehen.


Danke und gruss fmfm

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 16. Mrz. 2017 22:42    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 fmfm 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von fmfm:
Guten Tag

ich möchte gern an eine Information ran kommen. Ich habe mehrere Xrefs an einer Zeichnung hängen. Eine bestimmte Xref endet immer mit "_az".

Bsp.

Zeichnung1 - Xref = test1_az

Zeichnung2 - Xref = test2_az

usw. die Angehängte Zeichnung endet immer auf "unterstrich a z" und es gibt immer nur eine Xref pro Zeichnung die auf "_az" endet.

Ziel:

(setq dwgnameaz (*_az)) ;sternchen immer mit entsprechenden Namen versehen.


Danke und gruss fmfm



Eine XRef ist erst mal ein ganz stinknormales Insert, und als solches kannst Du es schnell finden:

(setq sset (ssget "X" '((0 . "INSERT") (2 . "*az")))

Alle damit gefundenen Blockreferenzen kannst Du dann darauf prüfen, welche ein XREF ist. Dazu ist in der Blockdefinition der Gruppencode 70 mit dem Bitwert 4 codiert (typischerweise ist der Wert 36). Ob das der Fall ist, kannst Du einfach mit (logand <70codevalue> 4) prüfen.

Ach ja: die Blockdefinition kriegst Du einfach mit (tblobjname "BLOCK" name), und den Namen dafür mit (cdr (assoc 2 (entget <insertentity> ))) aus dem Insert, das in Deinem oben gefundenen Auswahlsatz steht. Wenn der Block ein XRef ist, dann steht unter Gruppencode 1 der komplette Pfadname der referenzierten DWG-Datei.


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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 17. Mrz. 2017 10:09    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

Command: (setq dwgnameaz (ssget "X" '((0 . "INSERT") (2 . "*BA"))))
<Selection set: 24f>

Ich denke ich habe eine Information hier abgespeichert. Bin mir aber nicht sicher wie du es meinst mit dem Auslesen. Wir wäre der Code dafür.

Bei einem anderen Thread habe ich mal das gelernt:

(setq BLK (tblobjname "BLOCK" "ba"))
(setq BLK (entget BLK))

(setq dwgnameba (cdr(assoc 1 BLK)))

wenn in ein Stern davor setze, klappt das leider nicht:

(setq BLK (tblobjname "BLOCK" "*az"))
(setq BLK (entget BLK))

(setq dwgnameaz (cdr(assoc 2 BLK)))


lg

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 17. Mrz. 2017 10:13    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 fmfm 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von fmfm:
hi

Command: (setq dwgnameaz (ssget "X" '((0 . "INSERT") (2 . "*BA"))))
<Selection set: 24f>

Ich denke ich habe eine Information hier abgespeichert. Bin mir aber nicht sicher wie du es meinst mit dem Auslesen.


In dem Fall solltest Du erst mal einen Lisp-Grundkurs absolvieren.

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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 17. Mrz. 2017 10:23    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

ups ja mein fehler hab das ausversehen falsch kopiert

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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 10. Apr. 2017 12:04    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

Command: -XREF
Enter an option [?/Bind/Detach/Path/pathType/Unload/Reload/Overlay/Attach] <Attach>: ?
Enter xref name(s) to list <*>: *_az
Xref name                        Xref Type    Path
----------------------            ---------    ----------
"freiburg101_4455_-_az"                  Overlay      C:\Deutschland\BW\Freiburg\Denzlingerstrasse\freiburg101_4455_-_az.dwg
Total Xref(s): 1

Hallo

kann ich nur diese information Abrufen? "freiburg101_4455_-_az"  ; das ist der Xrefname

Danke
Gruss

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 10. Apr. 2017 12:34    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 fmfm 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von fmfm:
kann ich nur diese information Abrufen? "freiburg101_4455_-_az"  ; das ist der Xrefname

.... was willst du denn abrufen ...

letztendlich kannst du auch diese Zeichnung im Hintergrund öffnen und dann via Lisp (fast) alles auslesen, was du willst ...

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 10. Apr. 2017 12:48    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

ziel:

(Setq xref1 (freiburg101_4455_-_az))

Allerdings ist ja der name immer unterschiedlich bis ... "_az"

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 10. Apr. 2017 12:57    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 fmfm 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von fmfm:
ziel:

(Setq xref1 (freiburg101_4455_-_az))

Allerdings ist ja der name immer unterschiedlich bis ... "_az"


... und welche Probleme hast Du dabei? Warum befolgst Du nicht meinen Rat, aus dem DXF-Gruppencode 1 der XREFs den kompletten Pfad, oder aus DXF-Gruppencode 2 den Insertnamen auszulesen? Was hindert Dich daran, alle diese Pfade/Blocknamen in einer Liste zu sammeln?

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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 10. Apr. 2017 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

ich komm nich nach

Kannst du bitte ein Beispiel machen

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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 10. Apr. 2017 13: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

(tblobjname "BLOCK" "*az")

Das funktioniert leider nicht

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 10. Apr. 2017 13:08    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 fmfm 10 Unities + Antwort hilfreich

na dann nimm tblnext  und hangel dich durch die Blocktabelle .... ich verstehe dein Problem nicht. Sorry.

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 10. Apr. 2017 13: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 Nur für fmfm 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von fmfm:
ich komm nich nach

Kannst du bitte ein Beispiel machen


Ja, könnte ich.

Ich empfehle Dir lieber, Dich erst mal mit den elementaren Grundlagen von Lisp vertraut zu machen. Du hast bisher ja noch nicht eine Frage gestellt, die auch nur ansatzweise mit Lisp zu tun hat. Ganz offensichtlich spekulierst Du darauf, dass Dir hier jemand kostenfrei eine Lösung liefern wird. Aber immer mehr Lisp-Experten folgen hier meinem Prinzip, nur Hilfe zur Selbsthilfe zu geben. Wenn Du dazu nicht bereit bist, dann bist Du hier falsch.

[Diese Nachricht wurde von archtools am 10. Apr. 2017 editiert.]

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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 10. Apr. 2017 14:03    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

Command: *Cancel*
Command: (tblnext "BLOCK" "*az")
((0 . "BLOCK") (2 . "AVE_RENDER") (70 . 0) (4 . "") (10 0.0 0.0 0.0) (-2 . <Entity name: 7ffffb4c2e0> ))


und jetzt? da steht nirgends das was ich brauche

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 10. Apr. 2017 14:07    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 fmfm 10 Unities + Antwort hilfreich

ja .. du hast die Funktion ja auch - für deine Zwecke - fehlerhaft angewandt und auch der Aufruf ist nicht unbedingt korrekt. Nutze doch einfach mal die Hilfe oder Google  mit tblnext als Suchbegriff! Da findest du einiges an Beispielen.

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 10. Apr. 2017 17: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

hmm nach langem probieren komme ich leider immer noch nicht auf die Lösung.
Weisst du die Lösung?

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 10. Apr. 2017 17:25    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 fmfm 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von fmfm:
hmm nach langem probieren komme ich leider immer noch nicht auf die Lösung.
Weisst du die Lösung?

Probieren ist kein Lösungsansatz. Du solltest dich wirklich mit den Basics befassen. Mit Hilfe derer verstehst du dann auch, die Hilfestellung, die dir hier gegeben wird. Ein Mindestmaß an Wissen ist notwendig, um sich hier gewinnbringend austauschen zu können.
Warum dein Probieren nicht zum Erfolg führt, kann ja Ursachen in der Syntax oder dem Verständnis der Funktionen haben - wir wissen es nicht.
Darum empfehle ich dir, wenn du die Lösung kurzfristig brauchst, Geld dafür in die Hand zu nehmen, und einen Dienstleister mit der Umsetzung zu beauftrage oder dich in die Basics der Lisp-Programmierung einzuarbeiten. Letzteres ginge natürlich auch mithilfe eines Dienstleisters, was die Zeit der Einarbeitung verkürzen würde.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 10. Apr. 2017 17:31    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

wieso wird hier ständig wiederholt das man mit Geld (fast) alles kaufen kann. Glaubt ihr echt wenn meine Firma mir Geld zur verfügung stellen würde, würde ich euch lieber "anbetteln"?

So wichtig ist das nicht. Ich muss es einfach manuell machen (mehr wird von mir auch nicht Erwartet).

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 10. Apr. 2017 17:44    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 fmfm 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von fmfm:
hmm nach langem probieren komme ich leider immer noch nicht auf die Lösung.
Weisst du die Lösung?

Die habe ich Dir schon in meiner ersten Antwort genannt. Du musst einen Auswahlsatz bilden, alle Elemente dieses Auswahlsatzes durchlaufen, bei jedem prüfen, ob es Deinen Kriterien genügt, und musst es im Falle des Falles dann in einer Liste sammeln.

So eine Vorgehensweise nach einem Rezept nennt man Algorithmus. Diesen brauchst Du jetzt nur noch in eine Lisp-Funktion zu übersetzen. Wenn Du dabei Probleme hast, kannst Du Dich im Einzelfall dann mit Deinem konkreten Problem hierher wenden.

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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 10. Apr. 2017 18:29    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

mich irritiert folgendes:

ich habe nun Probiert "*12" anstatt "*az" einzugeben


Command: (tblnext "BLOCK" "*12")
((0 . "BLOCK") (2 . "zeichnung_ab") (70 . 12) (4 . "") (10 0.0 0.0 0.0) (1 . "zeichnung_ab.dwg") (-2 . <Entity name: 7ffffb60100> ))

dann kommt das was ich brauche aber von einer anderen Xref. Es macht für mich keinen Sinn.

dann gebe ich folgendes ein:

Command: (tblnext "BLOCK")

dann kommt die erste Xref mit Inhalt.

Dann gebe ich das ein

Command: (tblnext "BLOCK" )

dann kommt die 2te Xref mit Inhalt

dann gebe ich das ein:

Command: (tblnext "BLOCK"  )

bis irgendwann meine richtige Xref aufgezählt wird.

dann merk ich mir die Leerzeichen. Öffne eine neue Zeichnung und Probier es dort mit den Leerzeichen, leider funktioniert es nicht.

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 10. Apr. 2017 18:55    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 fmfm 10 Unities + Antwort hilfreich

AutoCAD-Hilfe (F1)
Lispfunktion TBLNEXT

Da steht (tblnext table-name [rewind])
Ein Beispiel noch dazu: (tblnext "layer" T) und noch eines (tblnext "block")
usw.

(Funktion TABELLE rewind)

Bei Rewind steht:
rewind
If this argument is present and is not nil, the symbol table is rewound and the first entry in it is retrieved.

Wenn ich deine Zeile ansehe, versuchst du an der Stelle eine Zeichenkette zu übergeben,
welche im Grunde ein Namensmuster für Blöcke sein soll. Laut Hilfe und ich echt möchte
aber tblnext keinen Blocknamen "oder so ähnlich" von dir haben, sondern nur die Info
ob das erste Tabellenobjekt zurückgegeben werden soll, oder das Nächste.

Erstelle eine DWG mit 3 Layern und teste direkt in der Befehlszeile:
(tblnext "LAYER" T) => ((0 . "LAYER") (2 . "0") (70 . 0) (62 . 80) (6 . "Continuous"))
(tblnext "LAYER")??
(tblnext "LAYER")??
(tblnext "LAYER")??
(tblnext "LAYER")nil

Oder dann auch mal so:
(tblnext "LAYER" T) => ((0 . "LAYER") (2 . "0") (70 . 0) (62 . 80) (6 . "Continuous"))
(tblnext "LAYER")??
(tblnext "LAYER" T) => ((0 . "LAYER") (2 . "0") (70 . 0) (62 . 80) (6 . "Continuous"))
(tblnext "LAYER")??
(tblnext "LAYER")??

Wenn man eine Lispfunktion (tblnext) auf diese Art und Weise für sich selbst begreiflich macht,
dann hat man es drauf und vorallem merkt man es sich dann auch.

Damit du später über tblnext durch die Blöcle laufen kannst, bei jedem Block abfragen ob
es sich um eine Xref handelt (F1 Thema lesen DXF BLOCK), dafür benötigst du eine Schleifenfunktion.
FOREACH besser WHILE in dem Fall zB. Auch diese Funktion ist in der F1 beschrieben usw.

tblnext arbeitet "merkwürdig", aber dennoch:
Nach wie vor, oder heute erst recht, rate ich die sehr dazu in dem Tutorial (erneut) auf Seite1 anzufangen
und die grundlegendsten Infos (Syntax und bereits die ersten Funktionen) zu lernen.

Das Tutorial würde auch weiter gehen und so Aufgaben werden dort auch behandelt.
("Schleife" durch die Tabelleneinträge von Layer und Block etc.)

Tutorial, Lisp Referenz, DXF Referenz - das hast du alles schon.
Hier mal ne Release14 Lisp-Hilfe in Deutsch als Nachschlagewerk.
http://ww3.cad.de/foren/ubb/Forum145/HTML/000395.shtml


------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 11. Apr. 2017 10:45    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 Cadffm

Zitat:
keinen Blocknamen "oder so ähnlich" von dir haben, sondern nur die Info
ob das erste Tabellenobjekt zurückgegeben werden soll, oder das Nächste.

Es gibt Pläne da hängen mehr oder weniger Xrefs dran.
Spielt das eine Rolle? Ist dieser Befehl in diesem Fall überhaupt einsetzbar? (Ändert sich die Reihenfolge der Bezeichnungen wenn mehr oder weniger Blöcke vorhanden sind?)

Zitat:
Erstelle eine DWG mit 3 Layern und teste direkt in der Befehlszeile:

ich bin diese Woche leider nur an einer Station mit Light Version. Schade das es hier nicht funktioniert. Vielleicht komme ich am Donnerstag dazu es zu testen.

Ja ich muss mich durch diese 1000 Seiten durchkämpfen, klar macht es mehr Sinn wenn ich hier nicht so "billig" fragen stellen würde. Wenn man aber manchmal einfach nur das Ergebnis sieht, dann kann man oft auch Rückwirkend lernen (wie bisher).

Ich schau das ich jetzt mehr Zeit in die Vorlagen und Anleitungen investiere, weil mir das Thema "Lisp" einfach sehr viel Spass macht.

Danke und Gruss

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 11. Apr. 2017 11: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 Nur für fmfm 10 Unities + Antwort hilfreich

na ok ... in der Hoffnung, das es nicht beim Copy&Paste bleibt und du was draus lernst ... hier etwas lerngerecht aufgeblähter Code zum Thema :

(defun DT:GET-XREFS(SUCHSTRING / EINTRAG BLOCKDATA BLOCKNAME ISXREF? XREFPFAD LISTE)
  (or(=(type SUCHSTRING)'STR)(setq SUCHSTRING "*"))
  (while (setq EINTRAG (tblnext "BLOCK" (null EINTRAG)))
    (setq BLOCKDATA(entget(tblobjname "BLOCK" (cdr(assoc 2 EINTRAG)))))
    (setq BLOCKNAME(strcase(cdr(assoc 2 BLOCKDATA))))
    (setq ISXREF? (=(logand(cdr(assoc 70 BLOCKDATA)) 4)4))
    (setq XREFPFAD(cdr(assoc 1 BLOCKDATA)))
    (if (and (wcmatch BLOCKNAME (strcase SUCHSTRING))
            ISXREF?
            (=(type XREFPFAD)'STR)
        )
      (setq LISTE(cons (list BLOCKNAME XREFPFAD) LISTE))  
    )
  )
  LISTE
)


Aufruf dann
(DT:GET-XREFS "*az")

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 11. Apr. 2017 12: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 Nur für fmfm 10 Unities + Antwort hilfreich

Dann noch einen Teil der Fragen beantwortet:


Zitat:
Es gibt Pläne da hängen mehr oder weniger Xrefs dran. Spielt das eine Rolle?

Nein, mit tblnext geht man durch die Blocktabelle, welche ALLE definierten Blöcke der Datei enthält.

Zitat:
(Ändert sich die Reihenfolge der Bezeichnungen wenn mehr oder weniger Blöcke vorhanden sind?)

Objekte, auch nicht-grafische Objekte, liegen in ihrer Erstellreihenfolge vor, von daher wäre hier wohl zu antworten: Ja, ändert sich.
Daher geht man durch alle Einträge und vergleicht ob der jeweilige Tabelleneintrag mit den eigenen Kriterien überein stimmt,
falls JA <mach irgendwas>, falls NEIN, nächster Eintrag..bis zum Ende.

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 27. Apr. 2017 17:08    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 versuchs mal für mich nachvollziehbar zu machen

Beispiel:
der 3te Block ist meine gesuchte Xref, namens: balu_1234_-_az

(tblnext "BLOCK" t)

((0 . "BLOCK") (2 . "abc123") (70 . 12) (4 . "") (10 0.0 0.0 0.0) (1 . "abc123.dwg") (-2 . <Entity name: 7ffffb60100> )) ;frei erfunden

(setq block1 (cdr(assoc 2 Block))) ;hab die Unterlagen gerade nicht zur Hand, ich hoffe "(cdr(assoc 2 Block))" das ich das noch richtig in erinnerung habe.

(= *az (strcat block1)); ergibt nil

... weitersuchen weil Ergebnis "nil" ....

(tblnext "BLOCK")

((0 . "BLOCK") (2 . "abc456") (70 . 12) (4 . "") (10 0.0 0.0 0.0) (1 . "abc456.dwg") (-2 . <Entity name: 7ffffb60100> )) ;frei erfunden

(setq block1 (cdr(assoc 2 Block)))

(= *az (strcat block1)); ergibt nil

... weitersuchen weil Ergebnis "nil" ....

(tblnext "BLOCK")

((0 . "BLOCK") (2 . "balu_1234_-_az") (70 . 12) (4 . "") (10 0.0 0.0 0.0) (1 . "balu_1234_-_az.dwg") (-2 . <Entity name: 7ffffb60100> )) ;frei erfunden

(setq block1 (cdr(assoc 2 Block)))

(= *az (strcat block1)); ergibt "T"

!block1 = balu_1234_-_az


Ich hoffe ich hab Theoretisch recht...

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: 28. Apr. 2017 11:04    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 fmfm 10 Unities + Antwort hilfreich

ja hastde super gemacht!
Grundsätzlich richtig - jetzt nur noch den kot in code umsetzen

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

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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 28. Apr. 2017 11:12    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

das wort "kot" passt garnicht ins forum

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 28. Apr. 2017 11:54    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 fmfm 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von fmfm:
das wort "kot" passt garnicht ins forum

Da irrst du dich. Das Forum145 ist ein Programmier-Forum und in der Programmierung ist es sehr wohl üblich Codes als "Kot" zu betiteln,
unabhängig der Programmiersprache.

Aber es wird für gewöhnlich nur im Sprachgebrauch genutzt, weniger in Schriftform (nur 3 weitere Treffer im Forum), daher werde ich CADwiesel hiermit rügen:

@CADwiesel
Bitte formuliere deine Gedanken in schriftlicher Form anders, umgehe das Wort Kot, danke.

@fmfm
Im Detail (näher wie 2,50m vor dem Monitor) stimmt so ziemlich nichts an den Zeilen, man erkennt nur das der grundsätzliche Ablauf in die richtige Richtung geht.
Glaskugel: Du gehst davon aus das (tblnext "BLOCK" t) Daten an ein Symbol mit dem Namen "BLOCK" bindet, dem ist nicht so.
(tblnext "LAYER") spricht die Layertabelle an, (tblnext "BLOCK") die Blocktabelle.
(setq LayerData (tblnext "LAYER" "list den ersten Layer aus, Layer \"0\""))
-
= *az (strcat block1)); ergibt nil // das wird sich so schnell auch nicht ändern, (strcat block1) ist wenig sinnvoll
und (= *az wird auch nicht funktionieren(in deinem Fall).
-Daher Schritt für Schritt aufbauen und jeden Schritt im in Acad testen.

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 28. Apr. 2017 12:30    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 fmfm 10 Unities + Antwort hilfreich

ähmmm ... ein Stück weiter oben steht schon CODE zum (zeilenweise) testen ...

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 28. Apr. 2017 12:37    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 fmfm 10 Unities + Antwort hilfreich

@CADmium
denk nicht weiter drüber nach

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 02. Mai. 2017 18:03    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

Zitat:
ähmmm ... ein Stück weiter oben steht schon CODE zum (zeilenweise) testen ...


(defun DT:GET-XREFS(SUCHSTRING / EINTRAG BLOCKDATA BLOCKNAME ISXREF? XREFPFAD LISTE) ; dient zur Info?
  (or(=(type SUCHSTRING)'STR)(setq SUCHSTRING "*")) ;ergibt "T" also muss hier az rein?
  (while (setq EINTRAG (tblnext "BLOCK" (null EINTRAG))) ;EINTRAG? welcher EINTRAG zb. BLK?
    (setq BLOCKDATA(entget(tblobjname "BLOCK" (cdr(assoc 2 EINTRAG)))))
    (setq BLOCKNAME(strcase(cdr(assoc 2 BLOCKDATA))))
    (setq ISXREF? (=(logand(cdr(assoc 70 BLOCKDATA)) 4)4)) ;XREF FRAGEZEICHEN? keine Ahnung
    (setq XREFPFAD(cdr(assoc 1 BLOCKDATA)))
    (if (and (wcmatch BLOCKNAME (strcase SUCHSTRING))
            ISXREF?
            (=(type XREFPFAD)'STR)
        )
      (setq LISTE(cons (list BLOCKNAME XREFPFAD) LISTE))  
    )
  )
  LISTE
)


Aufruf dann
(DT:GET-XREFS "*az")

Bin total Überfordert. Es fühlt sich an als wäre Montag und Dienstag zugleich.

Ich werde mal weiter versuchen hier etwas lesen zu können...

Auf einer Skala von 1-10 (10 = sehr lustig) wie lustig findet ihr meine Beiträge?

[Diese Nachricht wurde von fmfm am 02. Mai. 2017 editiert.]

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 02. Mai. 2017 19:03    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 fmfm 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von fmfm:
(defun DT:GET-XREFS(SUCHSTRING / EINTRAG BLOCKDATA BLOCKNAME ISXREF? XREFPFAD LISTE) ; dient zur Info?
;;; Nein, dient der Deklaration von Argumenten und lokalen Variablen
;;; Im Tutorial wird dies bereits ab Seite9 angerissen, man kommt also bereits innerhalb der ersten Stunden/Tage dazu. Auf Seite9 anfangen wäre aber wohl das versiegeln eine 8seitigen Wissenslücke.

(or(=(type SUCHSTRING)'STR)(setq SUCHSTRING "*")) ;ergibt "T" also muss hier az rein?
;;; dort wird untersucht ob das Argument SUCHTSTRING bereits vorhanden ist (ein String ist),
;;; falls nicht, wird der Suchstring "*" gesetzt. (DT:GET-XREFS nil) würde also SUCHSTRING "*" zur Folge haben.

  (while (setq EINTRAG (tblnext "BLOCK" (null EINTRAG))) ;EINTRAG? welcher EINTRAG zb. BLK?
;;; Das ist ein sehr eleganter, aber wenig anfängerfreundlicher Weg um tblnext beim ersten mal mit und danach ohne Argument aufzurufen, Klick
;;; Beim ersten Aufruf ist das Symbol/die Variable EINTRAG nicht nicht definiert, also (tblnext "BLOCK" (null nil))
;;; (null nil) ergibt T, also (tblnext "BLOCK" T) = Erster Eintrag der BLOCKtabelle.
;;; Beim zweiten Aufruf existiert EINTRAG, existiert bedeutet ungleich nil, also WAHR (enthält die tblnext-Daten von (tblnext "BLOCK" T),
;;; also: (null ((0 . "BLOCK") (2 . "MyBlock") (70 . 1) (10 0.0 0.0 0.0) (-2 . <Objektname: 7ff6ad605d50>:nozwinker ) = (tblnext "BLOCK" nil)
    (setq BLOCKDATA(entget(tblobjname "BLOCK" (cdr(assoc 2 EINTRAG)))))
    (setq BLOCKNAME(strcase(cdr(assoc 2 BLOCKDATA))))
    (setq ISXREF? (=(logand(cdr(assoc 70 BLOCKDATA)) 4)4)) ;XREF FRAGEZEICHEN? keine Ahnung
;;; Dann schau dir die Definition des BLOCK Objektes im DXF an, insbesondere den Gruppencode 70:
FollowMeLink!
;;; Wobei man für persönliches Testen der verschiedenen Einträge sich wohl mal einen Tag Zeit nehmen sollte,
;;; denn so ganz eindeutig bzw. dem Benutzer-Vokabular entsprechend sind die Beschreibungen ja nicht.
    (setq XREFPFAD(cdr(assoc 1 BLOCKDATA)))
    (if (and (wcmatch BLOCKNAME (strcase SUCHSTRING))
            ISXREF?
            (=(type XREFPFAD)'STR)
        )
      (setq LISTE(cons (list BLOCKNAME XREFPFAD) LISTE))  
    )
  )
  LISTE
)


Aufruf dann
(DT:GET-XREFS "*az")

---schnipp---

Auf einer Skala von 1-10 (10 = sehr lustig) wie lustig findet ihr meine Beiträge?
Ich würde es nach heutigen Erkenntnissen mit einer 2 auf der Lustigkeitsskala bewerten.
[/i]


------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

fmfm
Mitglied
Facility Management


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

Beiträge: 258
Registriert: 18.10.2016

AutoCad 2019

erstellt am: 18. Mai. 2017 11:34    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

bin leider überfordert... hab mich auch durch die Vorlagen durchgearbeitet... komme im moment nicht weiter...

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