Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Autodesk GIS Produkte
  Von 2D-Shape nach 3D-Shape

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:  Von 2D-Shape nach 3D-Shape (1618 mal gelesen)
Wala
Mitglied



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

Beiträge: 18
Registriert: 27.06.2002

Dell Optiplex 760
WinXP SP3
AutoCAD Map 2010
ArcGIS 9.1

erstellt am: 09. Aug. 2010 14:00    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 muss für eine weiterführende Anwendung aus einem 2D-Shape ein 3-dimensionales Shape machen. Es handelt sich um viele Linien, die im Moment als Z-Koordinate "0" haben. Die Höhen habe ich als Attribute vorliegen. Anfangs- und Endpunkte dieser Linien haben unterschiedliche Höhen. Wenn ich die Shapes mit Map 2010 verbinde, habe ich keine Möglichkeit (gefunden), um den Linien Z-Koordinaten zu geben.

Bei einem Import in Map 2010 kann ich den Linien wohl eine generelle Höhe mitgeben, aber leider keine unterschiedliche Höhe für Anfangs- und Endpunkt.

Jetzt wollte ich mittels eines Scripts 3D-Polylinien generieren lassen, X-Y-Z-Koordinaten von Anfangs- bzw. Endpunkt sind alle vorhanden. Jetzt müsste ich aber jeder 3D-Polylinie einen Wert (Objekt-ID des originalen Shapes) für ein Objektdatenfeld mitgeben, um später über diese ID die restlichen Daten des Original-Shapes verknüpfen zu können. Ist wohl über ein simples Script nicht mehr möglich. Hat jemand eine Idee für eine ganz einfache Lösung?

PS.: Bin leider des LISPs nicht mächtig....

------------------
Schöne Grüße,
Walter 

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


Ex-Mitglied

erstellt am: 09. Aug. 2010 14:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

mit Boardmitteln leider nein, das hast Du schon richtig durchschaut.

Wenn Du weiterhin die Verbindung zu den attributiven Daten des Shape(DBF) brauchst, dann kannst Du nicht sinnvoll über Script arbeiten, dann wäre der Ansatz, mit MapImport das SHP zu importieren, aus den attributiven Daten AutoCAD-Map-Objektdaten machen lassen und in einem Programm dann die Z-Werte für Start- und Endpunkthöhe aus den Objektdaten auslesen und die Geometrie daran anpassen. Braucht aber ein klein wenig Programmierung.

Ohne der Datenverbindung hast Du ev. noch die Chance, über MAP-Abfragen eine Textdatei machen zu lassen, dann diese Textdatei mit XLS zu einem Script umbauen. Ist auch tricky, aber eben kein Zusammenhang mehr zu Shape-Attributs-Infos.

Sorry, - alfred -

PS: kannst Du mal einen kleinen Auszug aus dem SHP hier uploaden, vielleicht gibt's ja noch die eine oder andere Idee, wenn man die Daten vor Augen hat. 

------------------
www.hollaus.at

Wala
Mitglied



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

Beiträge: 18
Registriert: 27.06.2002

erstellt am: 09. Aug. 2010 15: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

Hallo Alfred,

danke für die schnelle Antwort!

Wäre es möglich, mittels LISP ein Feld der Objektdaten zu füllen?
Dann könnte ich z.B. doch in einem Script mit folgender Zeile

  3DPoly x,y,z X,Y,Z (load "ObjDaten füllen") MeineID

meine 3D-Polylinie erstellen, mit dem Lisp-Progr. "ObjDaten füllen" den Wert "MeineID" in ein definiertes Feld der Objektdaten der eben erstellten Polylinie schreiben. Aber da ich mich mit LISP nicht wirklich auskenne, weiß ich leider auch nicht, ob man mittels LISP Objektdaten befüllen könnte.

Bin dankbar für jegliche Hilfe!

------------------
Schöne Grüße,
Walter 

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


Ex-Mitglied

erstellt am: 09. Aug. 2010 15:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

ja, Objektdaten können auch mit LISP geschrieben werden (siehe z.B. >>>Beitrag von marc.scherer<<<). Ohne sich in LISP auszukennen (und das tu ich auch nicht), ist's nichts für 'in 10min fertig'.

Es reicht übrigens, Linien zu erzeugen, müssen keine 3DPoly's sein. 

- alfred -

------------------
www.hollaus.at

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

AutoCAD 2021, Civil 3D, MAP 3D, MDT, RD, Infraworks
Inventor 2021, Win10Pro

erstellt am: 10. Aug. 2010 10:17    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 Wala 10 Unities + Antwort hilfreich

Hier wäre mal ein Beispiellisp (ohne Fehlerbehandlung), um importierte LINIEN aus einem 2D Shape auf die Z-Höhen aus der ATTRIBUT-Tabelle (Objektdaten) zu setzen.
Code:
; Diese Routine setzt bei LINIEN die einen zugeordneten Eintrag in der
; Objektdatentabelle namens "ATTRTAB" besitzen, die Z-Werte auf Höhe wie im Feld Z1 bzw. Z2 angegeben.
; 10.08.2010 - Udo Hübner
; Setzt einen AutoCAD MAP basierten Aufsatz voraus.
; kein Errorhandling- Objektedatentabelle mit den benutzen Attributen muss vorhanden sein
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(DEFUN C:LINIENAUFHOEHESETZEN( / elname cnt ss eliste pa pe hoehe1 hoehe2)
  (Prompt "Linienhöhen nach Z-Werten aus Objektdatentabelle ändern - Udo Hübner 10.08.10")
  (Prompt "\nObjektdatentabellenname ATTRTAB, Attributsbezeichnungen Z1 und Z2")
  (Prompt "\nLinien zur Änderung auswählen")
  (IF (SETQ ss (SSGET '((0 . "LINE"))))
    (PROGN
      (SETQ cnt (SSLENGTH ss))
      (WHILE (>= (SETQ cnt (1- cnt)) 0)
        (SETQ elname (SSNAME ss cnt))
        (IF (AND (SETQ hoehe1 (ade_odgetfield elname "ATTRTAB" "Z1" 0))
                (SETQ hoehe2 (ade_odgetfield elname "ATTRTAB" "Z2" 0))
            )
          (PROGN
            (SETQ eliste (ENTGET elname (LIST "*"))
                  pa    (CDR (ASSOC 10 eliste))
                  pe    (CDR (ASSOC 11 eliste))
                  eliste (SUBST (LIST 10 (CAR pa) (CADR pa) hoehe1) (ASSOC 10 eliste) eliste)
                  eliste (SUBST (LIST 11 (CAR pe) (CADR pe) hoehe2) (ASSOC 11 eliste) eliste)
            )
            (ENTMOD eliste)
          )
        )
      )
    )
  )
  (PRIN1)
)

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

Udo Hübner
www.CAD-Huebner.de

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

Wala
Mitglied



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

Beiträge: 18
Registriert: 27.06.2002

erstellt am: 12. Aug. 2010 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

Vielen Dank für eure Hilfe!

Das LISP würde ja perfekt funktionieren, nur habe ich nach meinem Shape-Import keine Linien sondern Polylinien mit Objektdaten, und da ist nichts mehr mit Anfangs- und Endpunkt auf Höhe setzen. Wenn ich die Polylinien auflöse, habe ich keine Verbindung mehr zu den Objektdaten. Werde mit meinen bescheidenen Fähigkeiten mal versuchen, zusätzlich zu den Höhen auch X und Y auszulesen, neue Linien zu generieren und meine Objektdaten wieder an die Linie zu schreiben.

Danke!

------------------
Schöne Grüße,
Walter 

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