Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  Angenommener Schnittpunkt

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:  Angenommener Schnittpunkt (2195 mal gelesen)
Benny4
Mitglied
Softwareentwickler


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

Beiträge: 178
Registriert: 16.02.2006

AutoCAD 2008
WIN XP Pro SP2

erstellt am: 07. Mai. 2009 09:56    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

Hi,

ich kann mit der Funktion IntersectWith ja die Schnittpunkte zweier Objekte ermitteln. Diese werden aber allen Anschein nach nur dann ausgegeben, wenn diese 2 Objekte auf  der selben Ebene liegen. In AutoCAD gibt es ja noch diesen angenommenen Schnittpunkt. Gibt es in .NET auch die Möglichkeit diese Schnittpunkte zu ermitteln?

------------------
Grüsse Benny

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


Ex-Mitglied

erstellt am: 07. Mai. 2009 13:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

imho nein, zumindest keine eingebaute Funktion.

Du kannst aber zu diesem Zwecke (wenn die Geometrie zumindest parallel zur Grundebene, nur auf verschiedenen Höhen ist) von beiden Elementen eine Kopie machen, diese dann auf gleichen Z-Wert legen, die Intersection rechnen, und dann vertschüssen.

Wenn die Elemente auf nicht parallelen Ebenen liegen, dann heissts zuerst ein geometrisches Abbild von einer Ebene in die andere rechnen, das wird bei einem Kreis schon mal eine Ellipse 

- alfred -

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


Ex-Mitglied

erstellt am: 07. Mai. 2009 13:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi nochmals,

eine Ergänzung schon noch: ich weiss zwar nicht auswendig wo, aber es gibt, solange Deine Elemente zu DataBaseServices.Curve umwandelbar sind, in den ..Curve-Funktionen auch etwas wie projizieren (sitze leider nicht an einem Entwicklungsrechner, daher leider keine genaue Info), dann musst Du nicht Kreis auf Ellipse händisch rechnen.

- alfred -

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

Benny4
Mitglied
Softwareentwickler


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

Beiträge: 178
Registriert: 16.02.2006

AutoCAD 2008
WIN XP Pro SP2

erstellt am: 07. Mai. 2009 13: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

Hi Alfred,

das Problem habe ich bei einer Spline. Selbst wenn ich die manuell in ACAD zeichne und nicht aus irgendeinem Programm herkriege, sind einige Kotrollpunkte in Z nicht exakt auf 0. Es kann vorkommen dass die 10 ersten Punkte auf 0 liegen und dann die nächsten in Z -0.00000034 oder so. Und da kriegt ACAD keine Schnittpunkte mehr raus.

Ich habe dann versucht die Spline so zu verändern:

Code:

Dim sss As Spline
sss.SetControlPointAt(1, New Point3d(sss.GetControlPointAt(1).X, sss.GetControlPointAt(1).Y, 0))

Aber da kriege ich den Fehler: eGeneralModelingFailure

Werd da nicht schlau aus diesem Fehler: Eigentlich möchte ich da ja die X und Y Koordinaten behalten und Z auf 0 setzen.

------------------
Grüsse Benny

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

autocart
Mitglied
Technischer Redakteur


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

Beiträge: 695
Registriert: 08.09.2003

erstellt am: 07. Mai. 2009 16:27    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 Benny4 10 Unities + Antwort hilfreich

Hallo Benny, Hallo Alfred!

Steh ich da aufm Schlauch, oder versteh ich da was falsch?

Das was du, Benny suchst, heißt in englisch doch "apparent intersection", oder?

Wenn ich in den "ObjectARX for AutoCAD 2010 : Managed Class Reference Guide" schaue, gibt es dort 2 Methoden-Signaturen für Entity.IntersectWith:
Entity.IntersectWith Method (Entity, Autodesk.AutoCAD.DatabaseServices.Intersect, Point3dCollection, int, int)
Entity.IntersectWith Method (Entity, Autodesk.AutoCAD.DatabaseServices.Intersect, Plane, Point3dCollection, int, int)

Der Unterschied der 2. Methode ist der Parameter Plane. Die Beschreibung ist für beide Methoden (wenn ich es richtig verglichen habe) ident. Daher ist Autodesk bei der Beschreibung anscheinend ein Fehler unterlaufen. Wenn ich mir die Beschreibungen der equivalenten unmanaged C++-Methoden anschaue, sollte die 2. Methode aber genau die sein, die du, Benny suchst - mit der ein angenommener Schnittpunkt ermittelt werden kann. Du musst dir halt beide Beschreiungen (.NET + C++) anschauen und dann die richtige Handhabung für .NET im schlimmsten Fall durch trial and error herausfinden.

Oder hab ich da was übersehen?

------------------
Gruß, Stephan
www.stbartl.at

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

Benny4
Mitglied
Softwareentwickler


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

Beiträge: 178
Registriert: 16.02.2006

AutoCAD 2008
WIN XP Pro SP2

erstellt am: 07. Mai. 2009 17:35    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 Stephan,

ja ich habe gesehen dass es da 2 Überladungen gibt. Habe auch versucht beim Parameter Plane die Methoden GetPlane von beiden Objekten anzugeben, hatte aber keine Auswirkung. Was genau muss ich beim Parameter Plane angeben?

------------------
Grüsse Benny

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

autocart
Mitglied
Technischer Redakteur


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

Beiträge: 695
Registriert: 08.09.2003

erstellt am: 07. Mai. 2009 18:23    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 Benny4 10 Unities + Antwort hilfreich

Also, soweit ich es aus der C++-Doku rauslesen kann, gehört dort ein Plane-Objekt übergeben, auf das dann beide Objekte normal projeziert werden. Dann werden auf dem Plane die Schnittpunkte beider Projektionen ermittelt und diese Punkte wieder auf das ursprüngliche Haupt-Objekt zurückprojeziert. Heißt, um die angenommenen/scheinbaren Schnittpunkte in der aktuellen Ansicht zu bekommen, müsste das Plane-Objekt parallel "zum Bildschirm" sein. Ist aber alles ungetestet.

------------------
Gruß, Stephan
www.stbartl.at

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


Ex-Mitglied

erstellt am: 10. Mai. 2009 11:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi Benny,

wenn's um die Plane-Erstellung geht, dann:

Code:
...., New Geometry.Plane(Geometry.Point3d.Origin,New Geometry.Vector3d(0,0,1)), ....

HTH, - alfred -

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

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