Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Unterschied Objektdaten Polylinie / Ansichtsfenster

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:  Unterschied Objektdaten Polylinie / Ansichtsfenster (305 mal gelesen)
Manuel486
Mitglied
Technischer Zeichner Elektro


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

Beiträge: 207
Registriert: 31.01.2020

Windows 10 Pro - 64-Bit -
Lenovo Thinkstation P520 -
Intel Xeon W-2255 CPU @ 3.70 GHz 10 Kerne -
3x32GB DDR4 RAM @ 2933 MHz -
WD Blue SN570 SSD 1000GB -
Samsung MZVLB512HAJQ-000L7 SSD 500GB -
NVIDIA Quadro P2200 5GB -
Elgato Stream Deck 15 Tasten -
AutoCAD MEP 2019 -
Revit 2018.3.3 + 2019.2.6 + 2020.2.9 + 2021.1.8 + 2022.1.4 + 2023.1.2 + 2024.1.0

erstellt am: 11. Aug. 2023 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

Ich bekomme diese beiden Objekte nicht gefiltert...

Polylinie (laut Eigenschaftenfenster):

Code:
Befehl: (entget(car(entsel)))

Objekt wählen:
((-1 . <Objektname: 23767357560>) (0 . "LWPOLYLINE") (5 . "54B6") (102 . "{ACAD_REACTORS") (330 . <Objektname: 2376732f6c0>) (102 . "}") (330 . <Objektname: 2376736b030>) (100 . "AcDbEntity") (67 . 1)
(410 . "XXX") (8 . "090 Layout Zeichnung") (62 . 7) (6 . "Continuous") (48 . 1000.0) (370 . 5) (100 . "AcDbPolyline") (90 . 4) (70 . 129) (43 . 0.0) (38 . 0.0) (39 . 0.0) (10 -310.856 475.674) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 -300.818 475.674)
(40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 -300.818 473.174) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 -310.856 473.174) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (210 0.0 0.0 1.0))


Ansichtsfenster (laut Eigenschaftenfenster):

Code:
Befehl: (entget(car(entsel)))

Objekt wählen:
((-1 . <Objektname: 237673573f0>) (0 . "LWPOLYLINE") (5 . "549F") (102 . "{ACAD_REACTORS") (330 . <Objektname: 237673573d0>) (102 . "}") (330 . <Objektname: 2376736b030>) (100 . "AcDbEntity") (67 . 1)
(410 . "XXX)") (8 . "0") (6 . "Continuous") (48 . 1000.0) (370 . 5) (100 . "AcDbPolyline") (90 . 4) (70 . 129) (43 . 0.0) (38 . 0.0) (39 . 0.0) (10 -375.753 268.671) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 -234.585 268.671) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 -234.585 458.671)
(40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 -375.753 458.671) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (210 0.0 0.0 1.0))


Warum steht beim Ansichtsfenster auch "LWPOLYLINE" ?

Wenn ich dieses Script drüber laufen lasse passiert nichts:

Code:
(if (ssget "_X" (list '(0 . "VIEWPORT")(cons 410 (getvar 'CTAB))))(command "_.-LAYER" "_Make" "E-_AUSSCHNITTS-FENSTER" "_Color" "41" "E-_AUSSCHNITTS-FENSTER" "" "_.-HATCH" "_Select" "_P" "" ""))

Logisch. Es gibt kein "VIEWPORT" in der Zeichnung.
Wie bekomme ich da einen Filter hin der mir Ansichtsfenster raus sucht die auf "LWPOLYLINE" liegen?

------------------
Gruß
Manuel

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: 21752
Registriert: 03.06.2002

Alles

erstellt am: 11. Aug. 2023 13:47    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 Manuel486 10 Unities + Antwort hilfreich

Ich überlege ob ich auf ein Schnitzel mit Cola beim persönlichen Treffen bestehe, aber vorab:

>>"Warum steht beim Ansichtsfenster auch "LWPOLYLINE" ?"
Weil du eine Pick- oder Klickwahl verwendet hast? und es sich um ein zugeschnittenes Ansichtsfenster gehandelt hat,
die Daten welche du sieht sind nicht vom Ansichtsfenster, sondern von dem Zuschneideobjekte (Hier wohl eine Polylinie).

Markiere mal so ein Ansichtfenster und schau auf die Eigenschaften [STRG+1],
da siehst du direkt beim ersten Eintrag (Objekttyp) eine Auffälligkeit, da steht nämlich
Ansichtsfenster (1) und im Normalfall würde da keine (1) stehen wenn man nur ein Objekt in der Auswahl hat        
Klick auf den Objekttyp und du kannst sehen: Ansichtsfenster UND Polylinie...


>>"Logisch. Es gibt kein "VIEWPORT" in der Zeichnung."
Natürlich hast du ein "VIEWPORT" in der Datei und falls du in einem Layout bist, dann hast du auch mind. eines im aktuellen Bereich.
Wenn du deine Anweisung einmal per Hand durcharbeitest, dann siehst du das Problem dabei [F2].

Also, eintippen undein Auge in die Befehlszeile richten:
Befehl: CMDECHO 1
Befehl: (ssget "_X" (list '(0 . "VIEWPORT")(cons 410 (getvar 'CTAB))))
  Hier siehst du das ein Viewport gefunden wird (eher mind. zwei !)
  EDIT: deswegen sollte der ssgetFilter auch besser so aussehen:
   (ssget "_X" (list'(0 . "VIEWPORT")'(-4 . ">")'(69 . 1)(cons 410 (getvar 'CTAB))))
   Das ignoriert das System Layoutansischtfenster, welches das Layout selbst darstellt   

Zurück zu dem Problem:
Befehl: _.-HATCH _Select _P  
[F2]

Lösung: Du müßtest in diesen Fällen das Zuschneide-Objekt übergeben, nicht das Ansichtsfenster.


>>"Wie bekomme ich da einen Filter hin der mir Ansichtsfenster raus sucht die auf "LWPOLYLINE" liegen?"
Der Gruppencode 340 zeigt auf das Zuschneideobjekt (falls vorhanden)
https://help.autodesk.com/view/OARX/2024/DEU/?guid=GUID-2602B0FB-02E4-4B9A-B03C-B1D904753D34

EDITIERT - Ich habe ein ssget-Beispiel hinzugefügt welches das System Ansichtsfenster übergeht..

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: 1742
Registriert: 11.10.2004

Window 11
ACAD 2021
CIVIL 2021
BricsCAD ab V14
11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz
32.0GB RAM
NVIDIA GeForce MX450<P>

erstellt am: 11. Aug. 2023 13:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Manuel486 10 Unities + Antwort hilfreich

Hallo Manuel,
Dein Ansichtfenster ist bestimmt aus einem Polylinien-Objekt erstellt, dann sind die beiden Objekte verknüpft und liegen direkt übereinander.
Entweder Du versuchts es mal mit aktivierte "wechselde Auswahl" oder Du versuchts es über SSGET, damit kann Du Objekte auswählen und eine Filterliste anhängen:
Code:

(if (and
        (setq aws(ssget '((0 . "VIEWPORT"))))
        (=(sslength aws)1))
    (setq objAnsfen(ssname aws 0)))

Wenn Du das Ansichtfenster/Polylinie kreuzt, dann sollten aus den 2 Objekte genau eins gefiltert werden, und zwar das Ansichtsfenster, das habe ich in die Variabel objAnsfen gespeichert

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

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

das Flächenstempel_Tool

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

Manuel486
Mitglied
Technischer Zeichner Elektro


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

Beiträge: 207
Registriert: 31.01.2020

Windows 10 Pro - 64-Bit -
Lenovo Thinkstation P520 -
Intel Xeon W-2255 CPU @ 3.70 GHz 10 Kerne -
3x32GB DDR4 RAM @ 2933 MHz -
WD Blue SN570 SSD 1000GB -
Samsung MZVLB512HAJQ-000L7 SSD 500GB -
NVIDIA Quadro P2200 5GB -
Elgato Stream Deck 15 Tasten -
AutoCAD MEP 2019 -
Revit 2018.3.3 + 2019.2.6 + 2020.2.9 + 2021.1.8 + 2022.1.4 + 2023.1.2 + 2024.1.0

erstellt am: 11. Aug. 2023 16: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 überlege ob ich auf ein Schnitzel mit Cola beim persönlichen Treffen bestehe, aber vorab:"
Können wir gerne wieder mal machen 

Ich habe mich etwas doof ausgedrückt.
Er findet "VIEWPORT" aber führt dieses Script nicht komplett aus.

Code:
;Erstellt um alle vorhandenen Ansichtsfenster eine Polylinie auf dem Layer "E-_AUSSCHNITTS-FENSTER" / NEU 11.08.2023 /
;
(if (ssget "_X" (list '(0 . "VIEWPORT,LWPOLYLINE")(cons 410 (getvar 'CTAB))))(command "_.-LAYER" "_Make" "E-_AUSSCHNITTS-FENSTER" "_Color" "41" "E-_AUSSCHNITTS-FENSTER" "" "_.-HATCH" "_Select" "_P" "" ""))
(if (ssget "_X" (list '(0 . "HATCH")'(8 . "E-_AUSSCHNITTS-FENSTER")(cons 410 (getvar 'CTAB))))(command "HATCHGENERATEBOUNDARY" "_P" "" "_.ERASE" "_P" "" "_.-LAYER" "_Make" "0" ""))

Der Fehler liegt hier:
>>"Befehl: _.-HATCH _Select _P"
Ich habe das Script jetzt an eine Stelle in meinem LISP gesetzt, an der nur noch Polylinien sein können die Ansichtfenster enthalten.
Weil ich vorher:

Code:
(if (ssget "_X" (list '(0 . "LWPOLYLINE,POLYLINE")(cons 410 (getvar 'CTAB))))(progn (initcommandversion)(command "_.EXPLODE" "_P" "")))

Drüber laufen lasse. Und Explode keine Ansichtsfenster auflösen kann.
Ist jetzt nicht so wie ich mir es gedacht hatte, aber das Ergebnis passt.

Aufgabenstellung war:
Um alle Ansichtsfenster eine Polylinie legen, die auf einem bestimmten Layer liegt.

------------------
Gruß
Manuel

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: 21752
Registriert: 03.06.2002

Alles

erstellt am: 11. Aug. 2023 16:53    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 Manuel486 10 Unities + Antwort hilfreich


>>"führt dieses Script nicht komplett aus."
Ja, weil die internen Routinen, welche versuchen das Zuschneide-Objekt vor dem Anwender zu verstecken,
dazwischen hauen. Per Hand ausgeführt siehst du dann die Meldung das dein Objekte ausgefiltert wird im Hatch-Befehl.


>>"Ich habe das Script jetzt an eine Stelle in meinem LISP gesetzt, an der nur noch Polylinien sein können"
>>"die Ansichtfenster enthalten"
>>"Weil ich vorher ... drüber laufen lasse. Und Explode keine Ansichtsfenster auflösen kann."

Bzw. die internen Routinen die Zuschnitt-Objekte herausfiltern und nicht an Explode übergeben.

Andere mögliche Zuschnitt-Objekte mal ignoriert, im Sinne von BTN: Clever gelöst!
(aber nur in deinem speziell Fall, wo man ohnehin zum Haare raufen alle Objekte zerstört in der DWG  )


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