| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Probl. mit 3DFlächen (1365 / mal gelesen)
|
Gerd_Ecke Mitglied Bergbauingenieur
Beiträge: 141 Registriert: 28.08.2002 Civil 3D 2020, GeoCAD BricsCAD 18
|
erstellt am: 14. Aug. 2018 10:59 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe wahrscheinlich nen Aussetzer oder es ist das Alter. Ich lese von einem Dreieck mit entget die Koordinaten in den Codes 10, 11, 12 und 13 aus. Zeige mir die Liste, X und Y sind nur einstellig, Z ist dreistellig. Im Eigenschaften-Fenster sehe ich 3 Nachkommastellen. Wandele ich X in einen Text um, hat die Koordinate 3 NK. Wandle ich wieder in RealZahl um wieder nur 1 NK. Wenns nur ein Anzeigeproblem wäre, wärs mir egal. Aber ich will über (ssget Koordinate) alle anhängenden Dreiecke finden, er findet aber nicht einmal das Ausgangsdreieck. Ist bestimmt nur eine SyS-Variable verstellt ? MfG GE Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 Alles
|
erstellt am: 14. Aug. 2018 11:19 <-- editieren / zitieren --> Unities abgeben: Nur für Gerd_Ecke
>"Ich lese von einem Dreieck"Es gibt keine Dreiecke, bitte nennen die richtige Objektbezeichnung >"Zeige mir die Liste, X und Y sind nur einstellig, Z ist dreistellig." WIE lässt du dir die Anzeigen/womit, woher? >"Im Eigenschaften-Fenster sehe ich 3 Nachkommastellen." Die Anzeige in den GUI-Elementen ist abhängig von LUPREC (&AUPREC) und DIMZIN >"Wandele ich X in einen Text um," WIE genau wandest du es in Text um? Nach deiner Beschriebung nutzt du (rtos DATA 2) wenn luprec=3 oder (rtos DATA 2 3) "hat die Koordinate 3 NK." Wenn beim gleichen Vorgang einmal nur eine Nachkommastelle kommt und einmal drei, dann handelt es sich um Nullen und Dimzin ist entsprechend eingestellt das diese Nachkomma-Nullen unterdrückt werden.
"Wandle ich wieder in RealZahl um wieder nur 1 NK." Was nicht da ist kann auch nicht umgewandelt werden und denn du die Nachkomma-Nullen unterdrückst werden auch diese nicht angezeigt.
"Wenns nur ein Anzeigeproblem wäre," Ist es so lange du nichts in Text umwandalst und danach wieder in einen REAL. >"Aber ich will über (ssget Koordinate) alle anhängenden Dreiecke finden" Dabei gibt es ja ganz unabhängig diverse Dinge zu berücksichtigen. Die grafisch abhängigen Objektwahlmethoden sind auch abhängig von der aktuellen Ansicht, ich nehme an du stolperst hier über diesen Sachverhalt mit der AutoCAD-Objektwahl (kein Lispspezifisches Thema). >"er findet aber nicht einmal das Ausgangsdreieck." Das kann von vorgenannten Fakt abhängen, abe du kannst auch sonstige Fehler gemacht haben, ohne deinen Code PLUS Beispiel DWG (möglichst wenig Inhalt) müßten wir unnötig raten um dir zu helfen. "Ist bestimmt nur eine SyS-Variable verstellt ?" Das würde ich im Fall von SSGET, bis auch eine bestimmte Ausnahme welcher so oder so vermieden werden sollte, ausschließen. Also:
Code: CODEBEISPIEL als *.LSP anhängen oder falls der Code kurz ist direkt in der Antwort, möglichst lauffähig
Und die Beispiel-DWG anhängen. Dann ist das Problem schnell gefunden Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gerd_Ecke Mitglied Bergbauingenieur
Beiträge: 141 Registriert: 28.08.2002 Civil 3D 2020, GeoCAD BricsCAD 18
|
erstellt am: 14. Aug. 2018 11:40 <-- editieren / zitieren --> Unities abgeben:
- Unter Dreieck verstehe ich eine 3DFACE, unsere DGM's bestehen aus dreieckigen 3DFACE. - Koordinatenanzeige mittels Princ und im Überwachungsfenster - LUPREC steht auf 6 DIMZIM auf 3 - in Text umwandeln mit (rtos Data 2 4) - Die Koordinaten sind mit 3 nachkommastellen, wie im Eigenschaftenfenster angezeigt - Nachkommanullen erst ab der 4.stelle IM Grunde will ich einen Außenrand um alle Dreiecke generieren, Suche einen Maximal-Punkt und gehe die Aussen-Dreiecke durch. MfG GE Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gerd_Ecke Mitglied Bergbauingenieur
Beiträge: 141 Registriert: 28.08.2002 Civil 3D 2020, GeoCAD BricsCAD 18
|
erstellt am: 14. Aug. 2018 11:44 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 Alles
|
erstellt am: 14. Aug. 2018 12:02 <-- editieren / zitieren --> Unities abgeben: Nur für Gerd_Ecke
Du wählst 3DFACE, machst irgendwas (ich habe es mir nicht näher angesehen / vielleicht erkläst du es einfach mla kurz?)und möchtest dann ganz unten einen Auswahlsatz erstellen. (setq GE_AWS (ssget GE_Max_Koo))
GE_Max_Koo ist eine Liste mit drei Zahlen, also eine zulässige Punktangabe, die Zeile entspricht dann einem Mausklick an dieser Stelle.
Neben der langen Linie welche sicher nur wegen einem Test vorhanden ist(?), gibt es an den Koordinaten noch eine Blockreferenz, eine 2D-Polyline(die würde wohl in den meisten Fällen ausgewählt werden) und vier 3D-FACE. Eine Punktwahl ist ja generell schon selten sinnvoll, aber in dem Fall (ssget ohne Filter und mehrere in Frage kommende Objekte gleichen Typs an einer Stelle) komplett unbrauchtbar. ? Ich denke du erklärst kurz was das Ganze (Programm) soll und dann schauen wir weiter
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gerd_Ecke Mitglied Bergbauingenieur
Beiträge: 141 Registriert: 28.08.2002 Civil 3D 2020, GeoCAD BricsCAD 18
|
erstellt am: 14. Aug. 2018 12:19 <-- editieren / zitieren --> Unities abgeben:
Danke für Deine Geduld Ich habe ein DGM aus 3DFaces und möchte den Außenrand aller 3DFaces ermitteln. Mein Ablaufplan ist : einen Anfangspunkt zu finden der schon am Außenrand ist. Ich ermittle also den größten Rechtswert, das ist der Punkt Ge_MaxKoo. Ich will dann alle 3Dfaces finden die auch Koordinaten an diesem Punkt haben. Eigentlich über (ssget GE_Max_Koo "X" (List '(0 . "3DFACE")(cons 8 GE_Layer))). Das nur (ssget GE_Max_Koo) war nur zum testen. Wenn ich dann alle 3Dfaces habe, die an der Koordinate hängen kann ich abfragen ob es eine Dreieckseite gibt an der ein anderes Dreieck hängt. Wenn kein anderes Dreieck an der Seite liegt, ist es die erste Seite meines Außenrandes. Die Polylinie geht aus die gerundeten Koordinaten . MfG GE Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 14. Aug. 2018 12:35 <-- editieren / zitieren --> Unities abgeben: Nur für Gerd_Ecke
... der hier verfolgte Ansatz ist sehr aufwändig. Ich habe folgenden umgesetzt: 1) die 3DFACE-Objekte werden auf Z=0 projiziert 2) die 3DFACE-Objekte werden in Regionen umgewandelt 3) die Regionen werden vereinigt ==> es existiert eine Region, die nur noch die Außenkontur darstellt (4) aus der Region eine Polylinie machen Den folgenden Code kannst du noch aufhübschen, der stellt nur das Prinzip dar, läuft aber. Code:
(defun c:xa (/ bau_elemli ellis naws) (defun bau_elemli (asatz / n elemli) (setq n 0) (repeat (sslength asatz) (setq elemli (cons (ssname asatz n) elemli) n (1+ n) ) ) elemli ) (setq naws (ssadd)) (mapcar '(lambda (e) (mapcar '(lambda (dxf) (entmod (subst (cons dxf (list (car (cdr (assoc dxf (entget e)))) (cadr (cdr (assoc dxf (entget e)))) 0.0 ) ) (assoc dxf (entget e)) (entget e) ) ) ) '(10 11 12 13) ) (command-s "_.region" e "") (ssadd (entlast) naws) ) (bau_elemli (ssget "_X" '((0 . "3DFACE")))) ) (command-s "_.union" naws "") )
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 |
Gerd_Ecke Mitglied Bergbauingenieur
Beiträge: 141 Registriert: 28.08.2002 Civil 3D 2020, GeoCAD BricsCAD 18
|
erstellt am: 14. Aug. 2018 12:51 <-- editieren / zitieren --> Unities abgeben:
Danke Brischke, ich muss mich also mit Regionen beschäftigen. ;-) Ich hätte mich von Dreieck zu Dreieck gehangelt und über Abfragen die Aussen-Dreiecke ermittelt und eine Polylinie gebaut ... Manchmal reicht ein Gedankenanstoß um auf ganz einfache Lösungen zu kommen. Mit freundlichen Grüßen Gerd_Ecke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Technischer Zeichner / Illustrator für die technische Dokumentation (m/w/d) | International präsent und erfolgreich setzt die familiengeführte ifm-Unternehmensgruppe seit 1969 höchste Qualitätsstandards und technische Meilensteine in der Automatisierungsbranche. An unserer Unternehmenszentrale in Essen suchen wir Sie als Technischer Zeichner / Illustrator für die technische Dokumentation (m/w/d) Kennziffer: 2023-2740
| Anzeige ansehen | Technischer Zeichner, Bauzeichner |
|
runkelruebe Ehrenmitglied V.I.P. h.c. Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 sw: Win7-x64 Office 365 ProPlus C3D (& LT ) ET; DACH; Extensions ------------------- hw: FX3800 i5 CPU 670 8GB RAM
|
erstellt am: 14. Aug. 2018 13:22 <-- editieren / zitieren --> Unities abgeben: Nur für Gerd_Ecke
Kurze Zwischenfrage: Wenn Du ein DGM hast, warum extrahierst Du dessen Rand nicht einfach? Befehl: SURFACEEXTRACTOBJECTS im Civil3D Mutmaßlich beherrscht diese Extraktion auch jedes andere Programm, mit dem das DGM erzeugt wurde. Fände ich persönlich jetzt die einfachste Lösung, aber ich kenn mich auch im Klammerwald nicht sonderlich gut aus ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |