Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  TinSurface (DGM) Höhenwerte

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:  TinSurface (DGM) Höhenwerte (1267 mal gelesen)
Silvan01
Mitglied



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

Beiträge: 128
Registriert: 28.04.2009

AutoCAD Civil 2009
AutoCAD Civil 2010
Visual Studio 2008

erstellt am: 25. Sep. 2009 13:44    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 Zusammen,

ich will aus einem DGM verschiedene Höhenwerte abfragen. Zum Beispiel welche Höhe ist an dem Punkt 45|45 usw.
Ich programmiere in Vb.Net.
Habe das Objekt schon als Autodesk.Civil.Land.DatabaseServices.TinSurface
Das Hauptproblem ist, dass ich im Internet nirgends ein Beispiel zu diesem Objekt gefunden habe.

Grüße
Silvan

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


Ex-Mitglied

erstellt am: 25. Sep. 2009 16:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

aus Kompatibilitätsgründen zu älteren Versionen bin ich bei Zugriff auf DGM noch COM-basierend, vielleicht hilft's trotzdem:

Code:
Dim tSurf As IAeccTinSurface = CType(TrAct.GetObject(DgmObjID, DatabaseServices.OpenMode.ForRead, True, True).AcadObject, IAeccTinSurface)
Try
  Dim tDgmHeight As Double = tSurf.FindElevationAtXY(X, Y)
  tRetVal = New Geometry.Point3d(X, Y, tDgmHeight)

- alfred -

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

Silvan01
Mitglied



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

Beiträge: 128
Registriert: 28.04.2009

AutoCAD Civil 2009
AutoCAD Civil 2010
Visual Studio 2008

erstellt am: 16. Dez. 2009 14:59    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,

ich würde dieses IAeccTinSurface gerne drehen.
In dem VB.NET Code würde ich das mit:

Code:
Dim curUCSMatrix As Matrix3d = AcadDoc.Editor.CurrentUserCoordinateSystem
Dim curUCS As CoordinateSystem3d = curUCSMatrix.CoordinateSystem3d
Dim tMoveMat As Matrix3d = Matrix3d.Rotation(Angle, curUCS.Zaxis, StartPoint)

und anschließend ein

Code:
tsurf.transformby(tMoveMat)

anwenden. Das klappt allerdings nicht (Ich nehm mal an bei COM funktioniert das mit dem Transformby anders). Kann mir jemand helfen wie ich das richtig hinbekomme? Es wird als Übergabeparameter nur "object" angezeigt.

Grüße

Silvan

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


Ex-Mitglied

erstellt am: 16. Dez. 2009 18:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

Fehlermeldung bekomme ich auch, sowohl wenn ich .TransformBy verwende als auch wenn ich .Rotate verwende. TransformBy hätte ich noch verstanden, dass .Rotate nicht funkt, mutmasse ich mal einen Bug dahinter (bin aber jetzt nicht tiefer hineingestiegen, also muss mein erster Eindruck nicht richtig sein).

Dieses funktioniert aber:

Code:
Dim tAcadDoc As ApplicationServices.Document = ApplicationServices.Application.DocumentManager.MdiActiveDocument
Dim tDocLock As ApplicationServices.DocumentLock = Nothing
Dim tTrAct As DatabaseServices.Transaction = Nothing

Try
  tDocLock = tAcadDoc.LockDocument
  tTrAct = tAcadDoc.TransactionManager.StartTransaction

  Dim tSel As EditorInput.PromptEntityResult = tAcadDoc.Editor.GetEntity("DGM wählen: ")
  If (tSel IsNot Nothing) AndAlso (tSel.Status = EditorInput.PromptStatus.OK) Then
      Dim tEnt As Entity = CType(tTrAct.GetObject(tSel.ObjectId, OpenMode.ForWrite, False, True), Entity)
      Dim tRotBasePnt As Geometry.Point3d = tEnt.GeometricExtents.MinPoint
      tEnt.TransformBy(Geometry.Matrix3d.Rotation(Math.PI, New Geometry.Vector3d(0, 0, 1), tRotBasePnt))

      tTrAct.Commit()
      ....


Der Unterschied hier ist, dass ich das Element als 'normales' Datenbank-Entity öffne (und kein Casting nach TinSurface oder AeccSurface mache), dann klappts auch mit dem .TransformBy!

HTH, - alfred -

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

Silvan01
Mitglied



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

Beiträge: 128
Registriert: 28.04.2009

AutoCAD Civil 2009
AutoCAD Civil 2010
Visual Studio 2008

erstellt am: 21. Dez. 2009 15:39    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,

vielen Dank klappt soweit und genügt mir auch schon 

Frohe Weihnachten & einen guten Rutsch

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