| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: LW-Poly -> AcDb2dPolyline (2635 mal gelesen)
|
Geos Mitglied Vermessungstechniker i.R.
Beiträge: 1017 Registriert: 21.09.2001 ACAD Map 2010, Win 7 Pro eigene Lisp's<P>HW: Core i7 860, 2.8 GHz 3.3 GB, NVIDIA GeForce GTS 250
|
erstellt am: 05. Aug. 2011 08:55 <-- editieren / zitieren --> Unities abgeben:
Hallo War bisher nie ein Problem, oder ich hab's in der Form noch nie gebraucht ...? Jedenfalls hab ich LWPOLYLINEs die aber eigentlich "AcDb2dPolyline" sein sollten (DWG wird ausserhalb von ACAD erstellt). Die Umwandlung gelingt manchmal - manche PLs ja, andere nein, beim nächsten DWG-Start wieder nicht - bin ich schon blöd? Es sollte doch mit PEDIT > kurveAngleichen funktionieren. (PLINETYPE = 0) Nun krieg ich zwar eine ausgerundete Polylinie - Befehl: liste sagt POLYLINE (entget(car(entsel))) sagt POLYLINIE (vlax-get-property ... sagt AcDb2dPolyline aber in den Eigenschaften (STRG+1) bekomme ich nicht >2D-Polyline.jpg< angezeigt sondern >polyline.jpg< ("Angleich./Glätten-Kurve" fehlt)! Was habe ich übersehen?
------------------ Schöne Grüße Ernst www.geopaint.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 05. Aug. 2011 09:01 <-- editieren / zitieren --> Unities abgeben: Nur für Geos
|
Arcuso Mitglied Vermessung
Beiträge: 70 Registriert: 25.07.2011
|
erstellt am: 05. Aug. 2011 11:38 <-- editieren / zitieren --> Unities abgeben: Nur für Geos
Hallo Geos ! Die LW-Polylinien hat man sich scheinbar seinerzeit für AutoCAD LT ausgedacht, um in 2D Speicher einzusparen. Es fehlen ja auch die Z-Werte in den Scheitelpunkten. Das ist ja heute kein Thema mehr und ich finde eigentlich keinen praktischen Vorteil bei den LWs. Der Befehl _PEDIT/Kurven anpassen wandelt eine LW in eine 2D mit lauter Bögen um, weil in die gefittete Poly zusätzliche Scheitelpunkte eingefügt werden müssen, damit alle Bogen-Übergänge tangential verlaufen. Das erkennt man dann im GC 70 (2), was eine LW nicht kennt. Mit der internen Differenzierung zwischen regulären und zusätzlichen Scheiteln (auch wieder im GC 70 der Vertices) wird es ja erst möglich, mit _PEDIT beliebig umzuschalten (Kurven anpassen bzw. löschen). In der Eigenschaften-Palette fehlt beim Objekt LWPOLYLINE der Schalter zum Angleichen der Kurven, weil dann ja daraus eine POLYLINE wird und sich die Palette damit selbst ein Bein stellen würde. In der Praxis wirkt sich der Objekt-Wechsel mit Boardmitteln nicht aus, nur wenn man z.B. per Lisp vorher auf die Objekt-Daten der LW und danach auch auf die der neuen 2D-Polylinie zugreifen will. MfG Arcuso Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 05. Aug. 2011 11:44 <-- editieren / zitieren -->
Hi, >> Das ist ja heute kein Thema mehr und ich finde eigentlich keinen praktischen Vorteil bei den LWs Mach mal >10000 2DPoly's und dann die gleiche Menge LWPoly's in einer anderen DWG; speichere beide Zeichnungen und vergleiche: a) die Ladezeiten der DWG's b) die Dateigrößen Und arbeitest Du jetzt in Bereichen, wo solche Mengen an Polylinien notwendig sind (GIS oder auch Gelände-Höhenlinien, ...) dann wirst Du das (= LWPoly) zu schätzen wissen. - alfred - ------------------ www.hollaus.at |
Theodor Schoenwald Ehrenmitglied
Beiträge: 1672 Registriert: 16.04.2002
|
erstellt am: 05. Aug. 2011 11:58 <-- editieren / zitieren --> Unities abgeben: Nur für Geos
|
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 05. Aug. 2011 12:15 <-- editieren / zitieren --> Unities abgeben: Nur für Geos
|
Arcuso Mitglied Vermessung
Beiträge: 70 Registriert: 25.07.2011
|
erstellt am: 05. Aug. 2011 12:27 <-- editieren / zitieren --> Unities abgeben: Nur für Geos
Hallo Alfred ! Das glaube ich schon, dass bei einer so großen Anzahl die Performance einbricht. Bei Polylinien, die ich nicht mehr bearbeiten muss kann ich sie ja als LW belassen. Solange ich jedoch aus einem Konglomerat mit Linien, Bögen und Polylinien, die irgendwer, irendwie und irgendwann erstellt hat, mit Lisp-Funktionen ein topologisch sinnvolles Lineament aufbauen will, bin ich froh, mit einem einheitlichen Datenformat arbeiten zu können. Es ist ohnehin schon schwer genug, uninteressierten Anwendern Möglichkeiten und Handhabung von Polylinien näherzubringen (ja, leider!). Wenn ich jetzt noch auf div. Eigenheiten verweisen wollte, verwenden die erst recht wieder nur normale Linien. Traurig, traurig Arcuso Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 05. Aug. 2011 12:32 <-- editieren / zitieren --> Unities abgeben: Nur für Geos
Da gebe ich dir mit allem Recht - für Anwender sicher das beste, auch zum programmieren usw. (wobei beim proggen mußt du 'doch' auf alle eingehen) - Jetzt wäre es für den Thread noch toll wenn du hier abschließend bestätigen könntest das du dieses Problem nur hast wenn du zwischenzeitlich mit Lisp reinfummelst/das Objekt abfragst (siehe mein Link) oder eben das es davon unabhängig ist <dann bin ich raus>. ------------------ CAD.de System-Angaben - CAD on demand - User:FAQ(Acad) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Arcuso Mitglied Vermessung
Beiträge: 70 Registriert: 25.07.2011
|
erstellt am: 05. Aug. 2011 14:57 <-- editieren / zitieren --> Unities abgeben: Nur für Geos
Hallo mitsammen ! Für unseren Bedarf in der Vermessung (überwiegend Grundteilungspläne) bin ich dabei, geeignete Lisp-Funktionen zu erstellen, die sowohl auf AutoCAD alsauch auf BricsCAD laufen müssen (hardwarebedingter künftig teilw. Software-Mischbetrieb). Um unsere Leute mit den Errungenschaften heutiger CAD-Software nicht zu überfordern (dzt. ACAD 2005 in Verwendung, Kenntnisse 50% von Rel.12 !), möchte/muss ich per Lisp bei minimalem Anwender-Wissen maximale Datensicherheit erreichen (für eine neue Block- und Layer-Struktur sind viele Sachdaten in den EEDs geplant, damit kleinere Einzelzeichnungen event. im AutoCAD MAP zusammengeführt und so zu einem intelligenteren Ganzen verschmolzen werden können). Ich möchte daher gar nicht, dass jemand mit dem Standard-Befehl _PEDIT bewusstlos herumwerkt und dabei was vermurkst (es gilt die Unschuldsvermutung!). Auf das Problem mit dem Zeiger aufs alte, nicht mehr vorhandene Objekt bin ich ja erst im Zuge meiner Lispeleien gestoßen, als ich mich zwischendurch über div. Objekt-Daten informieren wollte. Überwiegende Aufgaben sind es, aus Linien, Bögen und Polylinien (angepasste und Kombis aus Geraden und Bögen) zu einem Linienzug zu kombinieren bzw. sie irgendwo aufzubrechen). Die Lisp-Funktionen müssen dabei XDaten automatisch eintragen/ändern/klonen. Durch obiges Problem bin ich lieber auf Nummer Sicher gegangen und löse es so, dass ich zuerst die XDaten vom alten Objekt abfrage, mit Scheiteln und Ausbuchtungen eine neue 2D-Polylinie per VLA erstelle bzw. eine andere erweitere und auf sie die XDaten übertrage. Danach lösche ich die alte (LW/2D)-Polylinie. Das klingt vielleicht kompliziert und umständlich, es umgeht aber event. Fehlbedienungen von _PEDIT und ermöglicht mir gleichzeitig auch das Eliminieren oft vorkommender kongruenter Scheitelpunkte (entstanden durch fehlerhaftes Zeichnen oder Explodieren gekrümmter Polylinien und neuerliches Verbinden mit Rundungsfehlern). Weiters kann ich bei 2D-Polylinien bei jedem ihrer Vertex-Objekte in seinen XDaten separate Informationen speichern (z.B. die Referenz auf einen Messpunkt-Block). Haupt-Anliegen ist mir jedoch die Verknüpfung von begleitenden Signaturen (Mauersockel-Linien, Mauer- und Zaun-Signaturen etc.), die bisher völlig teinamslos und autonom in der Gegend herumhängen. Ziel ist ein komfortabler Maßstabs-, Stil-, Breiten- und Seitenwechsel, was bis jetzt ja nicht möglich war. Branchenfremde haben solche Anliegen eher selten, wir müssen uns aber an die Vermessungs- bzw. Planzeichenverordnung halten. MfG Arcuso Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Geos Mitglied Vermessungstechniker i.R.
Beiträge: 1017 Registriert: 21.09.2001 ACAD Map 2010, Win 7 Pro eigene Lisp's<P>HW: Core i7 860, 2.8 GHz 3.3 GB, NVIDIA GeForce GTS 250
|
erstellt am: 05. Aug. 2011 19:57 <-- editieren / zitieren --> Unities abgeben:
@cadffm Ich hoffe, ich habe am Montag etwas Zeit, um Deinen Link "Kranke Polylinien" durchzuackern. Und nein, es geht eigentlich nicht um Lisp, wird aber bei Lisplern wohl auch nie ganz auszuschließen sein - irgendwas eigenes verwendet man wohl immer. @all Eigentlich sollten diese Objekte als (ausgerundete) AcDb2dPolylinen erzeugt werden / also in der DWG vorhanden sein. Im Zuge der Bearbeitung - aha, noch keine Kurve -> Angleichen -> Eigenschaften anschauen - bekomme ich dann manchmal polylinie.jpg und manchmal 2D-Polylinie.jpg zu sehen. Um mir das Nachbearbeiten überhaupt zu ersparen, versuche ich nun herauszufinden warum's nicht auf Anhieb geklappt hat. Und möglicherweise steht das unterschiedliche Verhalten ja damit in Zusammenhang? Meine Befürchtung war ja, irgendwelche Einstellungen/SysVars übersehen zu haben ... Übrigens hatte ich in mehreren Filekopien herumprobiert - dann den Thread erstellt. Danach ACAD-Neustart um das Original zu bearbeiten und siehe da, Ergebnis überall -> 2D-Polyline.jpg. ------------------ Schöne Grüße Ernst www.geopaint.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 06. Aug. 2011 00:22 <-- editieren / zitieren --> Unities abgeben: Nur für Geos
|
Geos Mitglied Vermessungstechniker i.R.
Beiträge: 1017 Registriert: 21.09.2001 ACAD Map 2010, Win 7 Pro eigene Lisp's<P>HW: Core i7 860, 2.8 GHz 3.3 GB, NVIDIA GeForce GTS 250
|
erstellt am: 08. Aug. 2011 18:21 <-- editieren / zitieren --> Unities abgeben:
Nachdem ich nun die "Kranken Polylines" durchgelesen habe: Die Symptome sind die gleichen. Das Virus ist aber (wahrscheinlich) ein anderes. Ich bin ja auf Grund des Eigenschaftsfensters auf den Unterschied aufmerksam geworden und hab (vlax-dump-object ...) vorher nie aufgerufen. Und es gibt eine weitere Gemeinsamkeit - auch meine PLs haben EEDs. Schließlich hab ich noch Arcusos Programm probiert - jedes mal das richtige Ergebnis - betrifft also nur vorhandene Polys. Das möchte ich beim nächsten Mal testen: Ich bin zwar sicher, dass jetzt PLINETYPE = 0 ist. Aber ich kann nicht ganz ausschließen, dass das beim ersten Öffnen der DWG anders war und die Polys da schon infiziert worden sind.
------------------ Schöne Grüße Ernst www.geopaint.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Arcuso Mitglied Vermessung
Beiträge: 70 Registriert: 25.07.2011
|
erstellt am: 09. Aug. 2011 08:09 <-- editieren / zitieren --> Unities abgeben: Nur für Geos
Guten Morgen Geos ! Ich will versuchen, das Wesentlich aus beiden Themen zu filtern: 1.) LW-Polylinien können keine zusätzlichen Scheitelpunkte zur Kurven-Anpassung aufnehmen. 2.) Bei einer Kurven-Anpassung entsteht immer eine 2D-Polylinie 3.) Bei einer Begradigung (Kurven löschen) einer 2D entscheidet die Systemvariable PLINETYPE (0 -> es bleibt eine 2D, andernfalls wird sie in eine LW konvertiert). 4.) Solange man AutoCAD-Befehle verwendet (bzw. mit command in Lisp), bleiben bei einer Konversion sowohl Entityname, VLA-Objectname, Referenz-Handle alsauch die EEDs erhalten. AutoCAD sorgt selbst dafür. 5.) Mit dem undokumentierten Befehl POLYKONVERT oder _CONVERTPOLY kann man sie selbst hin und her konvertieren, außer die 2D besitzt zusätzliche Scheiteln für die Krümmung (siehe oben). Lustig finde ich die Übersetzung der Optionen "Dünn" und "Fett" für LW und 2D. MfG Arcuso Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Geos Mitglied Vermessungstechniker i.R.
Beiträge: 1017 Registriert: 21.09.2001 ACAD Map 2010, Win 7 Pro eigene Lisp's<P>HW: Core i7 860, 2.8 GHz 3.3 GB, NVIDIA GeForce GTS 250
|
erstellt am: 09. Aug. 2011 17:38 <-- editieren / zitieren --> Unities abgeben:
|