Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Aus selektierter Achse Direction ermitteln

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:  Aus selektierter Achse Direction ermitteln (1583 mal gelesen)
sbtSDA
Mitglied
Softwareentwickler


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

Beiträge: 30
Registriert: 12.04.2006

HP Mobil Workstation 8710w
2,4 GHz; 4 GB RAM
NVIDIA Quadro FX 1600, 512MB
MS Win XP Prof SP2
MS Win XP x64 SP1
Ms Vista Ultimate (32bit)
SolidWorks 2006 SP5.1
SolidWorks 2008 SP3.0
CATIA V5 R17 SP3
MS Office Prof 2003
Visual Basic 6
Visual Studio 2005 Express

erstellt am: 04. Apr. 2008 08: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

Hallo zusammen,

mein Problem:
Nachdem der User eine Achse eines Achssystems in einem CATPart selektiert hat ist es nun mein Job die Direction zu ermitteln - wie geht das?

Wenn ich das Achssystem hätte gebe es da alle Befehle die ich bräuchte: AxisSystem.XAxisDirection/.YAxisDirection/.ZAxisDirection

Doch wie komme ich von der selektierten Achse des Achssytems zum Achssystem und woher weis ich dann welche Achse der User selektiert hattte.

Für Euere Hilfe schon mal vielen Dank!

------------------
Brauchen Sie Hilfe, sind Sie in Not? Wir retten Sie mit unserem Code!
----------------------------------------------
SolidWorks API-Programmierung | Makros | Tools | Addins | Schulung

SolidWorks API Programmierung; Schuler Design Automation GmbH
|             kontakt@schuler-da.de        
----------------------------------------------
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.
(John Osborne 1929 - 1994)

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

tberger
Mitglied
Application Manager CATIA V5 / V6


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

Beiträge: 1385
Registriert: 13.01.2007

WIN 7 64bit
V5R21SP3HF49
3DX/V6 R2016x

erstellt am: 04. Apr. 2008 13:03    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 sbtSDA 10 Unities + Antwort hilfreich

Hallo,

ich wuerde den User mit einer eingeschraenkten Selektionsabfrage (InputObjectType(0)="AxisSystem") per Mausklick im Baum oder in der Anzeige das AXS anwaehlen lassen und von diesem mit

oSelectedElement.GetXaxis XAxismatrix (muss vorher als Array(2) definiert werden)

und entsprechend fuer y und z genauso

auslesen und dann ausgeben lassen.


Gruesse aus dem Rheinland

Thomas

------------------
CATIA - eine Laune der Natur ...

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

sbtSDA
Mitglied
Softwareentwickler


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

Beiträge: 30
Registriert: 12.04.2006

HP Mobil Workstation 8710w
2,4 GHz; 4 GB RAM
NVIDIA Quadro FX 1600, 512MB
MS Win XP Prof SP2
MS Win XP x64 SP1
Ms Vista Ultimate (32bit)
SolidWorks 2006 SP5.1
SolidWorks 2008 SP3.0
CATIA V5 R17 SP3
MS Office Prof 2003
Visual Basic 6
Visual Studio 2005 Express

erstellt am: 07. Apr. 2008 15:36    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 Thomas,

erst mal Danke für die Antwort! Bin leider erst jetzt dazugekommen zu antworten, war außer Haus. Wenn ich Dich richtig verstanden habe würdest Du den User das Achssystem wählen lassen. Nur das ist es eigentlich nicht was der User wählen will, sondern er will eine Achse des Achssystem wählen um mir eine Richtung vorzugeben für die dann eine bestimmte Auswertung stattfinden soll. Bei Deinem Vorschlag ist mir nicht klar wie ich herausfinden soll, welche der 3 Richtungen er gewählt hat.

Thomas

------------------
Brauchen Sie Hilfe, sind Sie in Not? Wir retten Sie mit unserem Code!
----------------------------------------------
SolidWorks API-Programmierung | Makros | Tools | Addins | Schulung

SolidWorks API Programmierung; Schuler Design Automation GmbH
|             kontakt@schuler-da.de        
----------------------------------------------
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.
(John Osborne 1929 - 1994)

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

Nautilius2005
Mitglied
Diplomand


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

Beiträge: 28
Registriert: 26.03.2008

CATIA V5R16

erstellt am: 07. Apr. 2008 16: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 Nur für sbtSDA 10 Unities + Antwort hilfreich

Hi,
ich hatte da ein ähnliches Problem.
Ich lasse den User über ein Eingabefenster entscheiden in welche Richtung eine Auszugsschräge erfolgen soll.


1--> für Z Achse
2--> für X Achse
3--> für Y Achse
4--> normale zur Fläche. ABER DAS BRAUCHST DU JA NICHT!!!

Dim Richtung As Dimension
Richtung = InputBox ("1 --> XY PLANE UND DIE AUSZUGSRICHTUNG IST IN RICHTUNG DER Z ACHSE"_
& Chr(10) & "2 --> YZ PLANE UND DIE AUSZUGSRICHTUNG IST IN RICHTUNG DER X ACHSE" _
& Chr(10) & "3 --> ZX PLANE UND DIE AUSZUGSRICHTUNG IST IN RICHTUNG DER Y ACHSE"_
& Chr(10) & "4 --> NORMALE ZU SURFACEFLÄCHE DER BLENDE" , "RICHTUNG DER AUSZUGSSCHRÄGE", Richtung)

part1.Update

Dim reference10 As Reference
Set reference10 = part1.CreateReferenceFromObject(hybridShapePointCoord1)

If (Richtung = 1) Or (Richtung = 2) Or (Richtung = 3) Then '************* IF ANWEISUNG

Dim reference9 As Reference
Set reference9 = part1.CreateReferenceFromBRepName("RSur:(Face:(Brp:(AxisSystem.2;"&Richtung&");None:();Cf11:_());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersio n_CXR14)", axisSystem1)

Dim hybridShapePlaneTangent1 As HybridShapePlaneTangent
Set hybridShapePlaneTangent1 = hybridShapeFactory1.AddNewPlaneTangent(reference9, reference10)

hybridBody6.AppendHybridShape hybridShapePlaneTangent1

part1.InWorkObject = hybridShapePlaneTangent1

Else '************* ELSE

Set hybridShapePlaneTangent1 = hybridShapeFactory1.AddNewPlaneTangent(reference5, reference10)

hybridBody6.AppendHybridShape hybridShapePlaneTangent1

part1.InWorkObject = hybridShapePlaneTangent1

End If

Die Variable "&Richtung&" übergibt dann den jeweiligen Wert der Achse.


Gruß

Denis

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

sbtSDA
Mitglied
Softwareentwickler


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

Beiträge: 30
Registriert: 12.04.2006

HP Mobil Workstation 8710w
2,4 GHz; 4 GB RAM
NVIDIA Quadro FX 1600, 512MB
MS Win XP Prof SP2
MS Win XP x64 SP1
Ms Vista Ultimate (32bit)
SolidWorks 2006 SP5.1
SolidWorks 2008 SP3.0
CATIA V5 R17 SP3
MS Office Prof 2003
Visual Basic 6
Visual Studio 2005 Express

erstellt am: 07. Apr. 2008 17:18    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 Denis,

auch Dir vielen Dank für Deine Antwort. Du hattest jetzt mehr oder weniger eine ähnliche Idee wie ich selbst. Meine (Not)Lösung sieht jetzt so aus das der User eine beliebige Achse wählen kann, ich mir dann die Edge hole und durch den DisplayName dann über Stringzerlegung die Nummer hole, die für X, Y oder Z-Richtung steht so wie bei Dir Denis. Dann hole ich mir das Achssystem und nachdem ich jetzt die Richtung ja kenne kann ich mir die gewünschte Info abgreifen. Sollte jemand noch einen ordentlichen Weg kennen wie man das String zerhacken umgeht dann teilt mir doch Euere Lösung noch mit.
Danke! Hier der Code (VB.NET 2005) zu meiner (Not)Lösung:

Code:

        Select Case oSelection.Item(1).Type
            Case "RectilinearTriDimFeatEdge"
                Dim oEdge As MECMOD.Edge
                Dim sDisplayName As String
                Dim iValue As Integer
                Dim iIndex As Integer
                Dim sNewString As String
                Dim oAxisSystem As MECMOD.AxisSystem
                Dim oDirection(0 To 2) As Object
                Dim sNacheAchse As String
                oEdge = CType(oSelection.Item(1).Value, MECMOD.Edge)
                ' z.B. für X-Achse "Selection_REdge:(Edge:(Face:(Brp:(AxisSystem.2;1)..."
                ' z.B. für Y-Achse "Selection_REdge:(Edge:(Face:(Brp:(AxisSystem.2;2)..."
                ' z.B. für Z-Achse "Selection_REdge:(Edge:(Face:(Brp:(AxisSystem.2;3)..."
                sDisplayName = oEdge.DisplayName
                iIndex = sDisplayName.IndexOf("AxisSystem")
                sNewString = sDisplayName.Remove(0, iIndex)
                iIndex = sDisplayName.IndexOf(";")
                sNewString = sDisplayName.Substring(iIndex + 1, 1)
                If IsNumeric(sNewString) Then
                    iValue = CInt(sNewString)
                Else
                    Debug.Assert(False)
                End If
                oAxisSystem = CType(oSelection.FindObject("CATIAAxisSystem"), MECMOD.AxisSystem)
                Select Case iValue
                    Case 1
                        oAxisSystem.GetXAxis(oDirection)
                    Case 2
                        oAxisSystem.GetYAxis(oDirection)
                    Case 3
                        oAxisSystem.GetZAxis(oDirection)
                    Case Else
                        Debug.Assert(False)
                End Select
            Case Else
                Debug.Print(oSelection.Item(1).Type)
        End Select

------------------
Brauchen Sie Hilfe, sind Sie in Not? Wir retten Sie mit unserem Code!
----------------------------------------------
SolidWorks API-Programmierung | Makros | Tools | Addins | Schulung

SolidWorks API Programmierung; Schuler Design Automation GmbH
|             kontakt@schuler-da.de        
----------------------------------------------
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.
(John Osborne 1929 - 1994)

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