Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  PointOnSurface Koordinaten über Mausklick

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
Autor Thema:  PointOnSurface Koordinaten über Mausklick (1540 mal gelesen)
Booyaka
Mitglied



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

Beiträge: 122
Registriert: 22.06.2012

CATIA V5 R19, 24, 26, 28, 29

erstellt am: 01. Feb. 2019 12: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,

ist es möglich einen Punkt auf einer Fläche zu erzeugen direkt da wo ich hinklicke?

Also um das zuschaffen müsste ich beim Klick auf die Fläche die Koordinaten für Richtung auslesen und halt hier einfügen

Code:

    Set oHSDirection = oHSFactory.AddNewDirectionByCoord(iX, iY, iZ)

und mit dem Abstand halt das selbe.

Code:

Set oHSPointOnSurface = oHSFactory.AddNewPointOnSurface(oRef, oHSDirection, N) '<-- N = Abstand


Wenn ich die Macroaufnahme nutze funktioniert das wie genau sagt mir der recoder allerdings nicht :/


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

Hier mein derzeitiger Code

Code:

    Dim oActDoc As PartDocument
    Dim oPart As Part
    Dim oHSFactory As HybridShapeFactory
    Dim oHSDirection As HybridShapeDirection
    Dim oHBodies As HybridBodies
    Dim oHBody As HybridBody
    Dim oHShapes As HybridShapes
    Dim oSelType(0)
   
    Set oActDoc = CATIA.ActiveDocument
    Set oPart = oActDoc.Part
    Set oHSFactory = oPart.HybridShapeFactory
    Set oHBodies = oPart.HybridBodies
    Set oHBody = oHBodies.Item("Geometrical Set.1")
    Set oHShapes = oHBody.HybridShapes
   
    Set oSel = oActDoc.Selection
    oSel.Clear

    oSelType(0) = "HybridShape"
   
    oChoice2 = oSel.SelectElement2(oSelType, "", True)
    oSelName = oSel.Item(1).Value.Name
    MsgBox oSelName
   
    Set oHSDirection = oHSFactory.AddNewDirectionByCoord(-1, -1, -10) 'über Mausklick möglich?
    oHSDirection.RefAxisSystem = oPart.CreateReferenceFromObject(oPart.AxisSystems.Item("Absolute Axis System"))
   
    Set oRef = oPart.CreateReferenceFromObject(oSel.Item(1).Value)
   
    Dim oHSPointOnSurface As HybridShapePointOnSurface
    Set oHSPointOnSurface = oHSFactory.AddNewPointOnSurface(oRef, oHSDirection, 20) 'Abstand über Mausklick möglich?
   
    oHBody.AppendHybridShape oHSPointOnSurface
   
    oPart.InWorkObject = oHSPointOnSurface
   
    oPart.Update


------------------
„Nicht Erfolg ist der Schlüssel zum Glück,
sondern Glück ist der Schlüssel zum Erfolg.
Wenn du gerne tust, was du tust, wirst du auch erfolgreich sein.“ ― Albert Schweitzer

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 01. Feb. 2019 14:48    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 Booyaka 10 Unities + Antwort hilfreich

Servus

Das sollte mit IndicateOrSelectElement3D gehen.
In der Doku sollte dazu ein Beispiel sein.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Booyaka
Mitglied



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

Beiträge: 122
Registriert: 22.06.2012

CATIA V5 R19, 24, 26, 28, 29

erstellt am: 02. Feb. 2019 07:28    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

Danke für den super Tipp werd ich wohl später für irgendwas noch gebrauchen können.

Allerdings erfüllt diese Funktion nicht ganz meinen Anfroderungen, da dies nur für planare Flächen geht ich hab aber Freiflächen.

Hätteste dafür auch zufälligerweise ne Funktion parat? ^^'

------------------
„Nicht Erfolg ist der Schlüssel zum Glück,
sondern Glück ist der Schlüssel zum Erfolg.
Wenn du gerne tust, was du tust, wirst du auch erfolgreich sein.“ ― Albert Schweitzer

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 02. Feb. 2019 09:54    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 Booyaka 10 Unities + Antwort hilfreich

Servus

Die Koordinaten des Pick-Punktes könntest du über GetCoordinates bekommen (siehe zB hier, auch mit einer normalen Selektion möglich?).
ggf reicht dir das schon, ober benötigst du unbedingt ein PointOnSurface?

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Booyaka
Mitglied



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

Beiträge: 122
Registriert: 22.06.2012

CATIA V5 R19, 24, 26, 28, 29

erstellt am: 02. Feb. 2019 10:52    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 muss PointOnSurface sein da es in 99% der Fällen immer eine Freiläche ist.

Hab mir mal das Heut noch angeschaut mit der Richtung... Irgendwie is das sehr kompliziert.

Werd das wahrscheinlich so lösen das der Punkt auf der Fläche vorher erzeugt werden muss und ich von daus weiter arbeiten.

------------------
„Nicht Erfolg ist der Schlüssel zum Glück,
sondern Glück ist der Schlüssel zum Erfolg.
Wenn du gerne tust, was du tust, wirst du auch erfolgreich sein.“ ― Albert Schweitzer

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 02. Feb. 2019 11:02    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 Booyaka 10 Unities + Antwort hilfreich

Servus

Meine Idee dazu: aus GetCoordinates der Selektion einen Punkt erstellen, Flächenschwerpunkt (oder anderen Referenzpunkt den du nutzen willst) erstellen, aus den beiden Punkten Richtung und Abstand bestimmen. Daraus dann den PointOnSurface erstellen.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Booyaka
Mitglied



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

Beiträge: 122
Registriert: 22.06.2012

CATIA V5 R19, 24, 26, 28, 29

erstellt am: 02. Feb. 2019 20:42    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

Oh die Idee klingt super aber da bleibt nur ein Problem: Wie komm ich an die Koordinaten wenn ich an irgendeiner Stelle  der Freifläche klicke. Da wie ja bereits erwähnt IndicateOrSelectElement3D nur für planare Flächen zählt.


Vieleicht steck ich auch grad nur in der Richtung fest :/ und brauch mal nen Tag pause davon ^^.

Aber trotzdem vielen Dank für deine rege Teilnahme an meinem Problem

------------------
„Nicht Erfolg ist der Schlüssel zum Glück,
sondern Glück ist der Schlüssel zum Erfolg.
Wenn du gerne tust, was du tust, wirst du auch erfolgreich sein.“ ― Albert Schweitzer

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 02. Feb. 2019 20: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 Nur für Booyaka 10 Unities + Antwort hilfreich

Servus

GetCooridnates geht auch bei SelectElement2. Beispiel:

Code:
Sub CATMain()

Dim Ergebnis As String
Dim Filter(0)
Dim oSelection As Selection
Dim coord(2) As Variant
Dim oPart as Part
dim oPartDocument as PartDocument
Dim oHybridBody as HybridBody
Dim oHybridShapeFactory as HybridShapeFactory

Set oPartDocument = CATIA.ActiveDocument
Set oPart = oPartDocument.Part
Set oHybridBody = oPart.HybridBodies.Item(1)
Set oHybridShapeFactory = oPart.HybridShapeFactory

Filter(0) = "HybridShape"
Set oSelection = CATIA.ActiveDocument.Selection

oSelection.Clear
Ergebnis = oSelection.SelectElement2(Filter, "Fläche auswählen", False)
If oSelection.Count <> 0 Then
oSelection.Item(1).GetCoordinates coord
MsgBox ("Koordinaten: " & coord(0) & "; " & coord(1) & "; " & coord(2))

Set MyPoint = oHybridShapeFactory.AddNewPointCoord(coord(0),coord(1),coord(2))
oHybridBody.AppendHybridShape MyPoint
oPart.Update
End If

End Sub


Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Booyaka
Mitglied



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

Beiträge: 122
Registriert: 22.06.2012

CATIA V5 R19, 24, 26, 28, 29

erstellt am: 03. Feb. 2019 08:31    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

******* die Wand an das Funktioniert ja :O.

Ich dachte eigentlich das man für GetCoordinates immer schon nen Punkt braucht.

Aber da sieht man mal wieder manchmal sollte man es einfach mal machen ^^.


Übrigens warum wirft der ein Compieler-Error raus (VBA-Editor) wenn die Selection als Selection deklariert wird?

10Punkte sind dir überschrieben auch wenn du dafür mehr verdient hättest  .

Nochmals vielen Dank

------------------
„Nicht Erfolg ist der Schlüssel zum Glück,
sondern Glück ist der Schlüssel zum Erfolg.
Wenn du gerne tust, was du tust, wirst du auch erfolgreich sein.“ ― Albert Schweitzer

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 03. Feb. 2019 11: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 Nur für Booyaka 10 Unities + Antwort hilfreich

Servus

Schau dir mal diese Beschreibung zu restricted interfaces an.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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