Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  (entlast) => nicht das aktuelle letzte Objekt

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:  (entlast) => nicht das aktuelle letzte Objekt (1373 mal gelesen)
joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 21. Sep. 2013 18: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


KeinEntlastestObjekt_dwg.txt

 
Hallo,
ich habe folgendes Problem:
Ich befinde mich im Modelbereich und erzeuge über ENTMAKE eine Linie im Layout-Bereich "Layout1". Die Linie soll dann weiter ausgewertet und angepasst werden, daher möchte ich mit(ENTLAST) darauf zugreifen. Allerdings wird mir (ENTLAST) nicht aktualisiert. Wenn ich dasselbe in "Layout2" mache wird (ENTLAST) aktualisiert. 

Zum Testen folgender Code:

Code:

(defun c:test ( / )
  ;;;aktueller GC5 von ENTLAST
  (alert (setq gc5 (cdr(assoc 5 (entget(entlast))))))
  (entmake (list (cons 0 "LINE")(cons 410 "Layout1")
                (cons 10 '(0.0 0.0))(cons 11 '(10.0 0.0))))
  ;;;Hier wird ENTLAST nicht aktualisiert
  (alert (setq gc5 (cdr(assoc 5 (entget(entlast))))))
  (entmake (list (cons 0 "LINE")(cons 410 "Layout2")
                (cons 10 '(0.0 0.0))(cons 11 '(10.0 0.0))))
  ;;;Hier wird ENTLAST aktualisiert.
  (alert (setq gc5 (cdr(assoc 5 (entget(entlast)))))))

Ich habe die Zeichnung beigepackt und hoffe das es einer von Euch a) nachvollziehen kann und b) eventuell eine Lösung hat. Vielen Dank im Voraus.

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Kordinaten einlesen Youtube

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

Meldin
Mitglied



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

Beiträge: 381
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 22. Sep. 2013 10:56    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 joern bosse 10 Unities + Antwort hilfreich

Hallo,
ich kann es in 2012 nicht nachvollziehen habe deinen code etwas umgebastelt damit das erste alert nicht in einen Fehler rattert vielleicht liegt ja da schon der Fehler.
Code:
(defun c:test (/)
;;;aktueller GC5 von ENTLAST
  (if (setq Letztes (entlast))
  (if (setq gc5 (cdr (assoc 5 (entget Letztes))))
  (alert gc5)))
  (entmake (list (cons 0 "LINE")
(cons 410 "Layout1")
(cons 10 '(0.0 0.0))
(cons 11 '(10.0 0.0))
  )
  )
;;;Hier wird ENTLAST nicht aktualisiert
    (if (setq gc5 (cdr (assoc 5 (entget (entlast)))))
  (alert gc5))
  (entmake (list (cons 0 "LINE")
(cons 410 "Layout2")
(cons 10 '(0.0 0.0))
(cons 11 '(10.0 0.0))
  )
  )
;;;Hier wird ENTLAST aktualisiert.
    (if (setq gc5 (cdr (assoc 5 (entget (entlast)))))
  (alert gc5))
)

------------------
Gruß Wolfgang

Alias: Rabbit007 und Wolli1 die aus unerklärlichen Gründen aus dem System hier gelöscht wurden. 

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 22. Sep. 2013 12: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

Hallo Wolfgang,
danke erstmal für Deine Antwort.
Ich habe es nochmal probiert, auch mit Deinem verbesserten Code, das Ergebnis ist bei mir dasselbe:
"103D4" beim Alert des ENTLASTEN-Objektes
"103D4" nach ERzeugung Linie in Layout1
"10428" nach Erzeugung Linie in Layout2

Bei Prüfung der Linien hat Linie im Layout1 den GC5 "10427" und die Linie im Layout2 "10428"

Alles noch sehr seltsam.
Dann habe ich vor der Erzeugung der Linien ein (setvar "CTAB" "Layout1/2") ausgeführt, also vorher auch das Layout aktivieren, dann wird auch das korrekte ENTLASTE-Objekt zurückgegeben.

Code:

(defun c:test1 (/)
;;;aktueller GC5 von ENTLAST
  (if (setq Letztes (entlast))
  (if (setq gc5 (cdr (assoc 5 (entget Letztes))))
  (alert gc5)))
  (setvar "CTAB" "Layout1")
  (entmake (list (cons 0 "LINE")
(cons 410 "Layout1")
(cons 10 '(0.0 0.0))
(cons 11 '(10.0 0.0))
  )
  )
;;;ENTLAST korrekt
    (if (setq gc5 (cdr (assoc 5 (entget (entlast)))))
  (alert gc5))
  (setvar "CTAB" "Layout2")
  (entmake (list (cons 0 "LINE")
(cons 410 "Layout2")
(cons 10 '(0.0 0.0))
(cons 11 '(10.0 0.0))
  )
  )
;;;ENTLAST korrekt
    (if (setq gc5 (cdr (assoc 5 (entget (entlast)))))
  (alert gc5))
  (setvar "CTAB" "Model")
)

Also, interessant allemal, ich habe für mich bereits einen Plan B, so daß eine Lösung nicht mehr so wichtig für mich ist.

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Kordinaten einlesen Youtube

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: 23. Sep. 2013 06: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 joern bosse 10 Unities + Antwort hilfreich

Meines bescheidenen Wissens nach, liefert dir entlast das letzte, der Zeichnungsdatenbank, hinzugefügte Element. Es is unerheblich, in welchem Layout du dich da befindest, oder es erstellt wurde.

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

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 23. Sep. 2013 07: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 Martin,
ich bin genau Deiner Meinung, aber es hat nicht funktioniert. Hast Du es mit der angehängten Zeichnung selber mal ausprobiert? Konntest Du es nachvollziehen?

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Kordinaten einlesen Youtube

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: 23. Sep. 2013 08:06    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 joern bosse 10 Unities + Antwort hilfreich

1. Einschränkung, auch wenn es hier nicht interessiert: Entlast liefert das letzte "OberObjekt", keine Attribute, keiner Vertex.. obwohl diese nach der Polyline oder nach dem Insert kommen.

2. Zum Thema, ich will das Problem jetzt nicht verfolgen, aber wenn es um ein entmake-Objekt geht, nimmt man für gewöhnlich entmakeX

[EDIT: Ich kann es nachvollziehen, jedoch mit "meinem" Layout2  ]

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

[Diese Nachricht wurde von cadffm am 23. Sep. 2013 editiert.]

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 23. Sep. 2013 08: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 Sebastian,

Zitat:
[EDIT: Ich kann es nachvollziehen, jedoch mit "meinem" Layout2  ]

Schön das ich nicht der Einzige bin
Und entmakeX habe ich irgendwie noch nie auf dem Schirm gehabt, werde ich demnächst mal ein Augenmerk drauf legen.

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Kordinaten einlesen Youtube

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

Meldin
Mitglied



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

Beiträge: 381
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 23. Sep. 2013 09: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 Nur für joern bosse 10 Unities + Antwort hilfreich

Doch! muss mich korrigieren. Es ist so wie du schreibst.
Zum testen wenig Zzeit daher mal so ins blaue ist eltlast nicht das erste ssget "x".

------------------
Gruß Wolfgang

Alias: Rabbit007 und Wolli1 die aus unerklärlichen Gründen aus dem System hier gelöscht wurden. 

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: 23. Sep. 2013 11: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 joern bosse 10 Unities + Antwort hilfreich

Erklärungsversuch :
die Lispfunktion (entlast) gibt's sicher länger als Modell und Papierbereich ... und der Papierbereich ist ja eine Layoutcollection und nur das letzte aktive (Paper)Layout ist der Paperspace ... und wenn du im letzte aktive (Paper)Layout deine Linie erzeugt,liefert entlast auch das, was du willst ...
Ein Layoutobjekt besteht ja im Wesentlichen aus der Plotkonfiguration und einem Blockcontainer , der die Viewports und alle anderen Objekte enthält.

Kann sein, das da die Datenbank erst dann aktualisiert wird , bzw. für entlast zugänglich wird, wenn das Layout zum Paperspace geworden ist ..

Wenn du deine Objekte via ActiveX erzeugst, liefern die add-Methoden das jeweilige Objekt zurück...

oder entmakex ... :

(defun c:testus ( / )
  ;;;aktueller GC5 von ENTLAST
  (alert (strcat "vorher  \n"(setq gc5 (cdr(assoc 5 (entget(entlast)))))))
  (setq a(entmakex (list (cons 0 "LINE")(cons 410 "Layout1")
                (cons 10 '(0.0 0.0))(cons 11 '(10.0 0.0)))))

  ;(vla-regen(vla-get-activedocument(vlax-get-acad-object)) acallviewports)
  ;;;Hier wird ENTLAST nicht aktualisiert
  (alert (strcat "nachher1 \n"(setq gc5 (cdr(assoc 5 (entget a))))))
  (setq a(entmakex (list (cons 0 "LINE")(cons 410 "Layout2")
                (cons 10 '(0.0 0.0))(cons 11 '(10.0 0.0)))))
  ;;;Hier wird ENTLAST aktualisiert.
  (alert (strcat "nachher2\n"(setq gc5 (cdr(assoc 5 (entget a))))))
)
   


------------------
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



Bauzeichner/in (m/w/d)

Wir sind ein inhabergeführtes Ingenieurbüro im Baugewerbe und unterstützen unsere Kunden bei der Planung, Koordination und Umsetzung von Bauprojekten. Unser Fokus liegt dabei auf der Erstellung von präzisen und maßstabsgetreuen Bauplänen. Dabei setzen wir auf modernste Technik und arbeiten eng mit unseren Kunden und Partnern zusammen, um optimale Ergebnisse zu erzielen. Unsere langjährige Erfahrung ...

Anzeige ansehenTechnischer Zeichner, Bauzeichner
joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 23. Sep. 2013 11:27    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 Thomas,
danke für die tolle Erklärung, für mich ist das Thema jetzt entgültig gelöst. Für die Zukunft werde ich in solchen Fällen dann entmakeX oder den ADD-Methoden verwenden.

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Kordinaten einlesen Youtube

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