Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  IntersectPointWithSurface

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
  
Von Digital Twins bis Hochleistungs-Computing: PNY präsentiert seine Zukunftstechnologien für die Industrie von morgen, eine Pressemitteilung
Autor Thema:  IntersectPointWithSurface (1603 mal gelesen)
Soldnerkugel
Mitglied



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

Beiträge: 131
Registriert: 29.01.2010

Win 7, AutoCAD Civil 3D 2015, SketchUp, CarlsonSurvCE

erstellt am: 02. Jun. 2010 15:58    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


AeccSurfErr.JPG

 
so, nächste Frage
Ich möchte bei der Analyse von DGM's gerne die Methode "IntersectPointWithSurface" verwenden, bekomme da aber einen Laufzeitfehler (siehe screenshot).

Ich nehme an, dass es irgendwas mit der Definiton/ Deklaration von "objSurf" als "object" zu tun hat, da es als "object" und nicht als "AeccSurface" deklariert ist. nur funktioniert dann der Rest der Sub nicht mehr, weil ich da "objSurf" als "object" benötige.
varStartPt wird richtig übergeben und varDir auch (es sei denn, eine positive Steigung muss man negativ eingeben, aber das kann ich mir 1. nicht vorstellen und würde 2. kein Ergebnis bringen und nicht eine Fehlermeldung.

Wie kann man denn "intersectPointWithSurface" nutzen?
für euch mögen sich einige meiner Fragen wohl ziemlich nervig anhören, aber ich finde einfach keine hilfreichen Beispiele für viele meiner Probleme.

Hier mal ein bisschen meines Quelltextes:

Zitat:
Option Explicit

Private Sub cmdLineSelect_Click()
   
   
    Dim oAcadLine As AcadLine
    Dim oAcadPoly As AcadLWPolyline
    Dim oEntity As AcadEntity
    Dim Point As Variant
    Dim objSurf As Object
    Dim varStartPt As Variant, varDir As Variant, varIntPt As Variant
    Dim darrStart(2) As Double
    Dim darrDir(2) As Double
    Dim tAeccApp As Object
    Set tAeccApp = ThisDrawing.Application.GetInterfaceObject("AeccXUiLand.AeccApplication.7.0")
    Dim tAeccDoc As Object
    Set tAeccDoc = tAeccApp.ActiveDocument
    Set objSurf = tAeccDoc.Surfaces(0)

    [...]
   
    varIntPt = objSurf.IntersectPointWithSurface(varStartPt, varDir)
        MsgBox "Schnittpunkt: " & varIntPt(0) & ", " & varIntPt(1) & ", " & varIntPt(2)
   
End Sub


------------------

http://www.stupidedia.org/stupi/Rechter_Winkel

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


Ex-Mitglied

erstellt am: 02. Jun. 2010 16:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

hast Du bitte zumindest Werte, die Du in diesem Beispiel mal plazieren kannst, wie sind denn z.B. die Variable 'varStartPt' oder 'varDir' befüllt (in Deinem Beispiel).


>> tAeccDoc.Surfaces(0)

Du greifst immer auf das erste DGM, bist Du sicher, dass da auch Daten drin sind? Es könnte ja mehrere DGM's geben, aber gerade bei (0) ist vielleicht keine Datenquelle angegeben.

Das DGM ist sichergestellterweise ein Trianguliertes DGM (und nicht etwa Raster- oder Volumen-)?


Irre toll für Hilfestellung wäre, ein kleines DGM (3 Punkte reichen) zu machen, dann die Variable hardcoded zu befüllen und dann hier beides zur Verfügung stellen (wenn der Fehler auch damit auftritt).

Eine kleine Beschreibung was das Ziel ist könnte dazu führen, dass vielleicht sogar alternative Vorschläge kommen, mit denen (aus der Sicht des Gesamtproblems) etwas noch einfacher werden könnte. 

- alfred -


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

Soldnerkugel
Mitglied



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

Beiträge: 131
Registriert: 29.01.2010

Win 7, AutoCAD Civil 3D 2015, SketchUp, CarlsonSurvCE

erstellt am: 02. Jun. 2010 16: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

dass ich auf das erste DGM zugreife, ist gewollt. (ich habe auch nur eines in der Zeichnung)

die Variable varStartPt ist mit UTM-Koordinaten belegt, so wie z.B.
varStartPt(0) = 403324.222
varStartPt(1) = 5572164.233
varStartPt(2) = 308.222

(0) und (1) sind UTM-Koordinaten, (2) ist die Geländehöhe + eine Aufbaute

(ich bin mir bewusst, dass ich da x/y vertauscht habe...spielt aber keine Rolle)

varDir ist ein Vektor, aktuell gefüllt mit etwa
varDir(0) = 0
varDir(1) = 1
varDir(2) = 0.29
(der Vektor soll exakt in Richtung Nord zeigen und eine Neigung von ca. 16.5° nach unten aufweisen)

ich möchte im Endeffekt von varStartPt aus in Richtung des Vektors varDir den Schnittpunkt mit dem DGM berechnen. Der Vektor entspricht quasi dem Verschattungswinkel, den die Sonne an einem bestimmten Punkt der Erde hat und ich möchte ausrechnen, wo der Punkt - von varStartPt aus exakt in Richtung Norden ist, an dem die Grenze der Verschattung ist.

bzgl. des Beispiels: mal schauen, ob ich das heute noch schaff'...

------------------

http://www.stupidedia.org/stupi/Rechter_Winkel

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


Ex-Mitglied

erstellt am: 02. Jun. 2010 17:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

nur vorweg, bevor ich probiere, liegt der Punkt mit dem Z-Wert=308.222 unter oder über Deinem Gelände? Denn bei der Neigung mit varDir(2) = 0.29 zeigt der Vektor nach oben!

- alfred -

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

Soldnerkugel
Mitglied



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

Beiträge: 131
Registriert: 29.01.2010

Win 7, AutoCAD Civil 3D 2015, SketchUp, CarlsonSurvCE

erstellt am: 03. Jun. 2010 13:33    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

der Punkt liegt über dem gelände, der Vektor sollte richtigerweise eigentlich nach unten zeigen, also ein Minus davor haben (so zumindest war/ist das von mir gewollt).
"Leider" ist heute Feiertag und ich bin morgen erst wieder im Büro, hoffentlich ist das nicht der Fehler.

------------------

http://www.stupidedia.org/stupi/Rechter_Winkel

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


Ex-Mitglied

erstellt am: 03. Jun. 2010 19:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

so jetzt hatte ich etwas Zeit, und damit auch gleich die Aussage, die Richtung des Vektors ist egal, dieser wird wie ein Strahl in beide Richtungen interpretiert.

Mein Beispiel (ohne Fehlerhandling) funktioniert so:

Code:
  Dim tAeccApp As AeccApplication
  Set tAeccApp = New AeccApplication
  Dim tAeccDoc As AeccDocument
  Set tAeccDoc = tAeccApp.ActiveDocument
  Dim tSurf As AeccSurface
  Set tSurf = tAeccDoc.Surfaces("Urgelaende")
  Dim tPnt(2) As Double
  tPnt(0) = 4838987.2653
  tPnt(1) = 315722.4474
  tPnt(2) = 121.1978
  Dim tDir(2) As Double
  tDir(0) = 0
  tDir(1) = 0
  tDir(2) = -1  'hier darf auch +1 stehen, kommt zum gleichen Ergebnis
  Dim tRes As Variant
  tRes = tSurf.IntersectPointWithSurface(tPnt, tDir)

(Civil 3D 2010)

Dazu noch eine Info: es scheint dem Civil nicht egal zu sein, ob Du Punkt und Richtung als  Array-of-Doubles  oder als  Variant  deklarierst (>>>hier zu lesen<<<), vielleicht hilft ja dieses.

- alfred -

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

Soldnerkugel
Mitglied



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

Beiträge: 131
Registriert: 29.01.2010

Win 7, AutoCAD Civil 3D 2015, SketchUp, CarlsonSurvCE

erstellt am: 07. Jun. 2010 09:04    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,

ich habe jetzt mal deinen Quelltext getestet, leider funktioniert er bei mir nicht.

problematisch ist folgende Textzeile

Code:
Set tAeccApp = New AeccApplication

ich hab' da mal gegoogled und bin auf Folgendes gestossen: http://forums.autodesk.com/t5/AutoCAD-Civil-3D-Customization/AeccXUiLand-AeccApplication-7-0-Error/m-p/2686799

dort wird auch ein link zum download der Version 8.0 angeboten, jedoch für 64bit, ich benutze allerdings 32bit.
Weiß hier zufällig jemand, wo ich mir die AeccXUiLand.AeccApplication.8.0 runterladen kann?

------------------

http://www.stupidedia.org/stupi/Rechter_Winkel

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

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: 9807
Registriert: 01.12.2003

AutoCAD 2.5 - 2022, LDD, MDT, RD, ADT, Civil
Inventor AIP 4-11, 2008 -2022
Win 10

erstellt am: 07. Jun. 2010 09:14    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 Soldnerkugel 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Soldnerkugel:
...
Weiß hier zufällig jemand, wo ich mir die AeccXUiLand.AeccApplication.8.0 runterladen kann?


AeccXUiLand.AeccApplication.8.0 ist Bestandateil der Installation von Civil 3D 2011.
Du arbeitest lauf SysInfo doch mit Civil 3D 2010.
Civil 3D 2011 kann man am Einfachsten über das Subscriptionscenter von Autodesk beziehen.

Der von dir verlinkte Beitrag wies lediglich darauf hin, das in der x64 Version von C3D2011 nicht alle notwendigen Verweise zu den TypeLibraries in der Regiry gesetzt sind und über das angehängte Reg-File nachgetragen werden können.


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

Udo Hübner
www.CAD-Huebner.de

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

Soldnerkugel
Mitglied



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

Beiträge: 131
Registriert: 29.01.2010

Win 7, AutoCAD Civil 3D 2015, SketchUp, CarlsonSurvCE

erstellt am: 07. Jun. 2010 09:32    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

ja, C3D 2011 hab' ich schon bezogen über Subscription...nur leider kann ich das aufgrund von Trägheit bei Autodesk noch nicht freischalten, ich warte da seit mehreren Wochen & Nachfragen immer noch auf meine Zugangsdaten. muß ich wohl noch ein bisschen warten.

------------------

http://www.stupidedia.org/stupi/Rechter_Winkel

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


Ex-Mitglied

erstellt am: 07. Jun. 2010 19:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

>> C3D 2011 hab' ich schon bezogen über Subscription...nur leider kann ich ...
>> noch nicht freischalten

Macht nix, der Code von oben läuft genauso mit 2010. Im VBA-Projekt die richtigen Verweise setzen (aud die Bibliotheken, die ja, wie Udo auch schon mitgeteilt hat, bereits mit Civil3D installiert sind), dann funktionierts.

Oder geht irgendwas davon nicht?


- alfred -

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



Anzeige:Infos zum Werbeplatz >>

BauCaD BauWolke CAD APP für AEC - Architektur-, Ingenieur- und Bauwesen, 3D, Holzarbeiten

BauCaD für 2D/3D-Aufmaß Einfache Befehle, mächtige Workflows und eine einfache und direkte Auswertung. Von der Punktwolke bis zur fertigen Abgabe in 2D und/oder 3D. BauWolke bietet eine vollumfängliche CAD-Umgebung für effizientes Arbeiten mit Punktwolken und hochgenaue Auswertungen, von der erste

Soldnerkugel
Mitglied



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

Beiträge: 131
Registriert: 29.01.2010

Win 7, AutoCAD Civil 3D 2015, SketchUp, CarlsonSurvCE

erstellt am: 08. Jun. 2010 09: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

also ich hab' beim Debuggen halt einfach mal alle Zeilen einzeln getestet, es gab nur bei einer Zeile (diejenige mit "= New AeccApplication") eine Fehlermeldung. Daraufhin habe ich gegoogled und bin auf diese 64bit-Geschichte gestossen und habe darauf nachgeschaut und dann festgestellt, dass ich die AeccXUiLand.AeccApplication.8.0 nicht habe (Menüleiste Extras -> Verweise) (die 7.0 schon)

------------------

http://www.stupidedia.org/stupi/Rechter_Winkel

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)2025 CAD.de | Impressum | Datenschutz