Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Ebene parallel zur Anzeige

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:  Ebene parallel zur Anzeige (1752 mal gelesen)
geekv5
Mitglied
Konstrukteur


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

Beiträge: 214
Registriert: 13.07.2011

Notebook<P>MSI GX660R
Intel Core i5 460M
8GB DDR3
1GB Mobility HD5870
80GB Intel X25-M Postville
250GB HDD<P>Desktop<P>AMD Phenom II X4 965
1GB HD4890@ FirePro V8700
8GB DDR3-1600
2,5TB HDD<P>Belinea 2485 S1W 24" MVA

erstellt am: 11. Jun. 2012 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

Hallo zusammen!

Möchte eine Ebene automatisiert erzeugen, welche parallel zur Anzeige liegt, also über eine Gleichung..

Die Aufzeichnung hat folgenden Code ergeben, aber ich weiß nicht, wie ich die einzelnen Parameter ermittle, sodass die Ebene parallel ist..

Jemand eine Idee? Wäre mMn ein sehr nützliches Feature mit einem Klick..

Code:

Sub CATMain()

Dim partDocument1 As PartDocument
Dim part1 As Part
Dim hybridShapeFactory1 As HybridShapeFactory
Dim hybridShapePlaneEquation1 As HybridShapePlaneEquation
Dim bodies1 As Bodies
Dim body1 As Body
Dim adoc As Document

On Error Resume Next
Set adoc = CATIA.ActiveDocument
If Err.Number <> 0 Then Exit Sub

Set selection1 = adoc.Selection
 
Select Case TypeName(adoc)

    Case "PartDocument"
   
        Set partDocument1 = adoc
   
    Case "ProductDocument"
   
        selection1.Search ("'Part Design'.Teil, in")
       
        If Not selection1.Count = 1 Then Exit Sub
       
        Set partDocument1 = adoc.Selection.Item(1).value.Parent.Product.ReferenceProduct.Parent
   
    Case Else
   
        MsgBox "Nicht unterstützter Dokumenttyp, breche ab.."
        Exit Sub

End Select

Set part1 = partDocument1.Part
Set hybridShapeFactory1 = part1.HybridShapeFactory
Set hybridShapePlaneEquation1 = hybridShapeFactory1.AddNewPlaneEquation(0.823003, 0.367891, 0.432807, 20#)
Set bodies1 = part1.Bodies
Set body1 = bodies1.Item("Hauptkörper")

body1.InsertHybridShape hybridShapePlaneEquation1
part1.InWorkObject = hybridShapePlaneEquation1
part1.Update

End Sub


[Diese Nachricht wurde von geekv5 am 11. Jun. 2012 editiert.]

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: 11. Jun. 2012 11:46    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 geekv5 10 Unities + Antwort hilfreich

Servus
Versuch mal über "GetSightDirection" (siehe Doku) die Richtung der aktuellen Ansicht auszulesen, und dann zum erstellen der Ebene zur Verwenden.

Gruß
Bernd

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

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

geekv5
Mitglied
Konstrukteur


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

Beiträge: 214
Registriert: 13.07.2011

Notebook<P>MSI GX660R
Intel Core i5 460M
8GB DDR3
1GB Mobility HD5870
80GB Intel X25-M Postville
250GB HDD<P>Desktop<P>AMD Phenom II X4 965
1GB HD4890@ FirePro V8700
8GB DDR3-1600
2,5TB HDD<P>Belinea 2485 S1W 24" MVA

erstellt am: 11. Jun. 2012 12:34    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 Bernd,

funktioniert wie immer einwandfrei, hier der lauffähige code:

Code:

Sub CATMain()

Dim partDocument1 As PartDocument
Dim part1 As Part
Dim hybridShapeFactory1 As HybridShapeFactory
Dim hybridShapePlaneEquation1 As HybridShapePlaneEquation
Dim bodies1 As Bodies
Dim body1 As Body
Dim viewers1 As viewers
Dim viewer1 As Viewer
Dim sight1(2)
Dim adoc As Document

On Error Resume Next
Set adoc = CATIA.ActiveDocument
If Err.Number <> 0 Then Exit Sub

Set selection1 = adoc.Selection
  
Select Case TypeName(adoc)

    Case "PartDocument"
   
        Set partDocument1 = adoc
   
    Case "ProductDocument"
   
        selection1.Search ("'Part Design'.Teil, in")
       
        If Not selection1.Count = 1 Then Exit Sub
       
        Set partDocument1 = adoc.Selection.Item(1).value.Parent.Product.ReferenceProduct.Parent
   
    Case Else
   
        MsgBox "Nicht unterstützter Dokumenttyp, breche ab.."
        Exit Sub

End Select

Set part1 = partDocument1.Part
Set hybridShapeFactory1 = part1.HybridShapeFactory
Set viewers1 = CATIA.ActiveWindow.viewers
Set viewer1 = viewers1.Item(1)
Set viewpoint1 = viewer1.Viewpoint3D

viewpoint1.GetSightDirection sight1

Set hybridShapePlaneEquation1 = hybridShapeFactory1.AddNewPlaneEquation(sight1(0), sight1(1), sight1(2), 20#)
Set bodies1 = part1.Bodies
Set body1 = bodies1.Item("Hauptkörper")

body1.InsertHybridShape hybridShapePlaneEquation1

End Sub


Thx für die schnelle Hilfe und 10 Us für dich  

[Diese Nachricht wurde von geekv5 am 11. Jun. 2012 editiert.]

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



CAD Designer (m/f/d)

Exyte is a global leader in the design, engineering and delivery of facilities for high-tech industries. With a history of more than 100 years, the company has developed a unique expertise in controlled and regulated environments. Exyte has a truly global footprint, serving the most technically demanding clients in markets such as semiconductors, batteries, pharmaceuticals, biotechnology, and data centers....

Anzeige ansehenTechnischer Zeichner, Bauzeichner
HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 11. Jun. 2012 16: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 Nur für geekv5 10 Unities + Antwort hilfreich

Hatte da auch einmal eine Funktion geschrieben und lässt sich sicher auch als Funktion besser in den eigenen Code integrieren:

Code:

' Erzeugt eine Ebene parallel zur Ansicht
Private Function createPlaneParallelToScreen(ByRef i_partWork As MECMOD.Part, ByRef i_hybBodyWork As MECMOD.HybridBody) As HybridShapeTypeLib.HybridShapePlaneEquation

    'Dim arrDblOrigin(2)        As Variant 'Double
    Dim arrDblSightDirection(2) As Variant 'Double
    Dim axisSystemsWork        As AxisSystems
    Dim axisSystemWork          As AxisSystem
    Dim hybShapeFactWork        As HybridShapeFactory
    Dim refWork                As Reference
   
    Set hybShapeFactWork = i_partWork.HybridShapeFactory
   
    'CATIA.ActiveWindow.ActiveViewer.viewPoint3D.GetOrigin arrDblOrigin 'Array des Ursprungs
    CATIA.ActiveWindow.ActiveViewer.viewPoint3D.GetSightDirection arrDblSightDirection 'Array des Ziels
    'CATIA.ActiveWindow.ActiveViewer.Viewpoint3D.GetUpDirection aUpDirection 'Array Richtung oben
   
    Call invertVector(arrDblSightDirection)
   
    Set createPlaneParallelToScreen = hybShapeFactWork.AddNewPlaneEquation(arrDblSightDirection(0), arrDblSightDirection(1), arrDblSightDirection(2), 0)

    Set axisSystemsWork = i_partWork.AxisSystems

    On Error Resume Next
        Set axisSystemWork = axisSystemsWork.Item("Absolute Axis System")
       
        If (Not Err.Number = 0) Then
       
            Set axisSystemWork = axisSystemsWork.Item(1)
       
        End If
    On Error GoTo 0

    If (Not axisSystemWork Is Nothing) Then
   
        Set refWork = Nothing
        Set refWork = i_partWork.CreateReferenceFromObject(axisSystemWork)
       
    End If
   
    createPlaneParallelToScreen.RefAxisSystem = refWork

    i_hybBodyWork.AppendHybridShape createPlaneParallelToScreen
    i_partWork.Update

End Function


Wie man sieht ist hier aber keien Dokumentenprüfung drin, diese muss dem Aufruf erfolgen und das Part wird dann einfach übergeben, sowie das GeometricalSet, wo die Ebene rein soll.

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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