Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  ssget _c ist zoomabhängig?

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:  ssget _c ist zoomabhängig? (1676 mal gelesen)
Peter2
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3701
Registriert: 15.10.2003

Win 10/64 Pro
AutoCAD MAP 3D 2018
BricsCAD 22

erstellt am: 19. Mai. 2008 23: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

Ich berechne per Lisp zwei Punkte und erfasse dann mit "ssget _C punkt1 punkt2" Elemente. Nun habe ich gemerkt, dass das Ergebnis anscheinend zoom abhängig ist. Wenn man weit hinauszoomt werden auch Elemente erwischt, die etwas außerhalb des Fensterbereiches liegen. Zoomt man klar hinein, werden die aussenliegenden Elemente nicht erfasst.

Also scheint das Verhalten identisch mit der grafischen Auswahl, wo man bei rausgezoomten Elementen mit der Pickbox oft auch mehr erwischt als geplant.

Funktioniert also "ssget _C" (und_w wahrscheinlich auch) vor allem grafisch und nicht mathematisch (datenbankmässig)?

Peter

------------------
Für jedes Problem gibt es eine einfache Lösung.
Die ist aber meistens falsch. ;-)

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 19. Mai. 2008 23:18    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 Peter2 10 Unities + Antwort hilfreich

genau.

------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

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: 19. Mai. 2008 23: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 Peter2 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Peter2:
Funktioniert also "ssget _C" (und_w wahrscheinlich auch) vor allem grafisch und nicht mathematisch (datenbankmässig)?

Jein. Es funktioniert nicht grafisch, weil ja auch Elemente außerhalb des Bilfschirms gefunden werden können, und es arbeitet nicht in der Zeichnungsdatenbank, weil manchmal Elemente sehr weit außerhalb des Bildschirms nicht gefunden werden.

Die Sache hat mit Perfomrance zu tun: CAD-Programm und ähnliche arbeiten bei sehr vielen Operationen nicht mit der Datenbank, in der die realen Zahlenwerte gespeichert sind, weil die Operationen mit diesen Realzahlen viel langsamer (so um den Faktor 1.000) ablaufen als  dieselben Operationen mit Ganzzahlen.

AutoCAD baut deshalb für Bildschirmoperationen eine zweite Datenbak auf - die sogenannte Displayliste. In dieser sind die Daten der Zeichnungselemente nur ganzzahlig gerundet dargestellt. Man kann den Effekt sehr gut sehen, wenn man beispielsweise einen sehr kleinen Kreis zeichnet und dann groß drauf zoomt - der Kreis wird dann sehr deutlich erkennbar als Polygon dargestellt.

Je nach Anzahl der Zeichnungselemente und Größe des Zeichungsbereichs werden nicht alle Elemente in der Displayliste erfasst, um Speicher zu sparen, und um Zeit beim Aufbau der Displayliste zu sparen. Man kann das recht gut erkennen, wenn man in einer großen Zeichnung mit vielen Elementen in ein sehr kleines Detail hinein zoomt, dort REGENeriert (der Befehl REGEN aktualisiert die Displayliste), und dannach mit der Option "dynamisch" zoomt. Dabei wird das Zoomen nur innerhalb des Bereichs erlaubt, der von der Displayliste erfasst wird.

Früher übrigens war Speicherplatz so knapp, dass im normalen Arbeitsspeicher eines Rechners gar kein Platz für den Aufbau einer Displayliste war. Um sinnvoll mit AutoCAD arbeiten zu können, waren deshalb spezielle Grafikkarten nötig, die mit extra Speicher für die Displayliste ausgerüstet waren. Alleine eine halbwegs brauchbare Grafikkarte für AutoCAD kostete vor 15 Jahren etwa so viel, wie drei komplette Rechner heute.  Und ohne so eine teure Karte war an professionelles Arbeiten mit AutoCAD gar nicht zu denken.

Tom

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

Peter2
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3701
Registriert: 15.10.2003

Win 10/64 Pro
AutoCAD MAP 3D 2018
BricsCAD 22

erstellt am: 19. Mai. 2008 23: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

Danke an beide für die Antworten.

In meinem konkreten Fall heisst das, dass ich wegen der Rundungsfehler nicht die gewünschte Auswahl bekomme?

Peter

------------------
Für jedes Problem gibt es eine einfache Lösung.
Die ist aber meistens falsch. ;-)

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

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 20. Mai. 2008 08: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 Peter2 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von archtools:
Jein. Es funktioniert nicht grafisch, weil ja auch Elemente außerhalb des Bilfschirms gefunden werden können, und es arbeitet nicht in der Zeichnungsdatenbank, weil manchmal Elemente sehr weit außerhalb des Bildschirms nicht gefunden werden.
Tom

Bist Du Dir ganz sicher ?
Ich kenne es anders. SSget mit Fenster, Kreuzen usw. erkennt keine Objekte ausserhalb des Bildschirmes.
Habs jetzt ausprobiert. In 0,0 befindet sich eine Kreis Radius 1
mit
(ssget "_CROSS"  (list -10 -10) (list 10 10))
wird dieser gefunden

jetzt pane ich den kreis aus dem Bildschirm raus, und der vorige SSGET ergibt nil

------------------

Ing. Anton Fuchs
WWW.FFZELL.AT.TC

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: 20. Mai. 2008 08: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 Nur für Peter2 10 Unities + Antwort hilfreich

@Fuchsi,
ich denke Tom´s Aussage bezog hierbei nicht speziell auf eine Fensterwahl 

------------------
die alte SUCHfunktion.. - System-Angaben - User:FAQ(Adesk)

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

Peter2
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3701
Registriert: 15.10.2003

Win 10/64 Pro
AutoCAD MAP 3D 2018
BricsCAD 22

erstellt am: 20. Mai. 2008 09: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

Zitat:
Original erstellt von fuchsi:
...Ich kenne es anders. SSget mit Fenster, Kreuzen usw. erkennt keine Objekte ausserhalb des Bildschirmes.

Bedenke diverse Probleme beim Zoomen (panen mit der mittleren Maus, zoomen mit dem Mausrad) - irgendwann geht das Ding nicht mehr. Dann machst du "regen" und es läuft wieder.

Hast du deinen Test auch mit einem "zwischendurch - regen" gemacht?

Peter

------------------
Für jedes Problem gibt es eine einfache Lösung.
Die ist aber meistens falsch. ;-)

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

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 20. Mai. 2008 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 Nur für Peter2 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Peter2:
Hast du deinen Test auch mit einem "zwischendurch - regen" gemacht?
[/i]

Ja. Sobald der Kreis in meinem Test ausserhalb (und nur ganz wenig ausserhalb) des Bildschirmes ist, auch mit einem REGEN dazwischen , wird er mit einem
(ssget "_C"  (list -10 -10) (list 10 10))
nicht gefunden.

Alle SSGET-Objekltwahlen, die normalerweise interaktiv sind (Fenster Fensterpolygon, Kreuzen, Kreuzenpoliygon und Zaun) funktionieren nur, wenn das zu wählenden Teil zumindest zum Teil am Bildschirm sichtbar ist.

Mit der Option X und diversen Filterlisten, tritt dieses Phänomen nicht auf.

------------------

Ing. Anton Fuchs
WWW.FFZELL.AT.TC

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: 20. Mai. 2008 11: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 Peter2 10 Unities + Antwort hilfreich

Jepp, funktioniert genau wie "per Hand" - ist kein "Lisp-Problem"
(aber ein Problem schon, heul)

Ich finde es andersherum viel interessanter: "Fensterwahl innerhalb
eines Objektehaufens (Zeichnung) und man hat es weit weg gezoomt dabei ;D
Statt das eine/einzige Objekt zu fangen welches sich wirklich innerhalb des
angegebenen Fensters befindet wählt er nun halt ein paar mehr, oder gar alle ;D
Also: Vorher immer eine gescheite Ansicht berechnen und einen Zoom ausführen

Das Thema wird ja immer wieder gekaut - und jeder fliegt darüber irgendwann mal
auf die Nase (wenn er nicht vorher, zB. im Forum, davon schon gehört hatte)

------------------
die alte SUCHfunktion.. - System-Angaben - User:FAQ(Adesk)

[Diese Nachricht wurde von cadffm am 20. Mai. 2008 editiert.]

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

bu
Mitglied
die Frage habe ich mir auch schon gestellt


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

Beiträge: 265
Registriert: 29.06.2004

AutoCAD 2010 Mechanical

erstellt am: 20. Mai. 2008 13:33    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 Peter2 10 Unities + Antwort hilfreich

Hallo,

ich möchte das Niveau der Diskussion nicht zu sehr unterlaufen aber ein (command "_zoom" "_w" p1 p2) vor dem (ssget "_c" p1 p2) -> um sicher zu ghen dass alle gewünschten Objekte gefunden werden. Im Notfall danach wieder ein (command "_zoom" "_p").

Für jedes Problem gibt es eine einfache Lösung.
Die ist aber meistens falsch. ;-) -> Vielleicht ist das die Ausnahme !!!

------------------
Gruss bu

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

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 20. Mai. 2008 13: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 Peter2 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von bu:
Hallo,

ich möchte das Niveau der Diskussion nicht zu sehr unterlaufen aber ein (command "_zoom" "_w" p1 p2) vor dem (ssget "_c" p1 p2) -> um sicher zu ghen dass alle gewünschten Objekte gefunden werden. Im Notfall danach wieder ein (command "_zoom" "_p").

Für jedes Problem gibt es eine einfache Lösung.
Die ist aber meistens falsch. ;-) -> Vielleicht ist das die Ausnahme !!!


Naja, ist eh klar.
Nur wenn ich sowas einbaue, würgen mich meine Anwender, wenn ich dauernd in der Zeichnung rumzoome !

Da würde ich eher mal alle Objekte (vielleicht mit diversen Filtern nach Layer, Objekttyp je nach Anwendung) wählen, und diese durchlaufen, ob sie sichmit einer gedachte Linie mit diesen 2 Punkten schneiden (intersectwith)

Ist sicherlich wesentlich schneller, als 2 x Zoomen.

------------------

Ing. Anton Fuchs
WWW.FFZELL.AT.TC

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: 20. Mai. 2008 21:16    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 Peter2 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von fuchsi:
Bist Du Dir ganz sicher ?
Ich kenne es anders. SSget mit Fenster, Kreuzen usw. erkennt keine Objekte ausserhalb des Bildschirmes.
Habs jetzt ausprobiert. In 0,0 befindet sich eine Kreis Radius 1
mit
(ssget "_CROSS"  (list -10 -10) (list 10 10))
wird dieser gefunden

jetzt pane ich den kreis aus dem Bildschirm raus, und der vorige SSGET ergibt nil


Stimmt - hab's jetzt auch ausprobiert. Dabei hätte ich geschworen, dass das früher mal im Bereich der Displayliste funktioniert hat und nicht nur auf dem Bildschirm. Kann es sein, dass sich das irgend wann in den letzten 15 Jahren mal geändert hat?

Gruß
Tom

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

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 21. Mai. 2008 08: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 Peter2 10 Unities + Antwort hilfreich

Glaube ich nicht. Ich progge jetzt seit 16 Jahren rund um Acad (begonnen mit der 9er Version). Also das war eigentlich imho immer schon so.

------------------

Ing. Anton Fuchs
WWW.FFZELL.AT.TC

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