Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Position.GetComponents - Funktion

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
  
CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48
  
KISTERS 3DViewStation mit neuer Zerschneidefunktionen und erweitertem PMI-Support, eine Pressemitteilung
Autor Thema:  Position.GetComponents - Funktion (4978 mal gelesen)
Laute
Mitglied
Student


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

Beiträge: 26
Registriert: 14.07.2003

erstellt am: 23. Jul. 2003 13:09    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 Allerseits,

Dim oPart as PartDocument
Dim oSelection as Selection
Set oSelection = CATIA.ActiveDocument.Selection
Set oPart = oSelection.FindObject("PAD.1")
Dim dPosition(11)
oPart.Position.GetComponents dPosition
For i = 0 to 11
msgbox "" + dPosition(i)
next


So siehts aus mein Problem. Ist daran etwas verkehrt? Ich bekomme keine Werte in das Array.
Funktioniert das nur mit Punkten oder Ebenen?

Wenn sich jemand damit auskennt wäre ich dankbar für einen Tipp

Gruß Laute

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

Laute
Mitglied
Student


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

Beiträge: 26
Registriert: 14.07.2003

erstellt am: 23. Jul. 2003 14:47    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 nochmals,

hab die Sache ein bisschen abgeändertund jetzt bekomm ich eine Fehlermeldung "Function marked as restricted or automation type not used in vb" - ?? was hat das zu bedeuten?     
 
    Dim oPart As PartDocument
    Dim oRoot As Product
    Set oPart = CATIA.ActiveDocument.Selection.Item(1)
    Set oRoot = oPart.Product
    Dim oPosition As Position
    Set oPosition = oRoot.Position
       
    Dim dPosition(11)
    oPosition.GetComponents dPosition
   
    For I = 0 To 5
    MsgBox "Number = " + dPosition(I)
    Next

danke für hilfe

gruss laute

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

Steffen Hohmann
Mitglied
 


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

Beiträge: 446
Registriert: 06.03.2002

erstellt am: 23. Jul. 2003 15:38    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 Laute 10 Unities + Antwort hilfreich

Hallo Laute,

was hast Du vor?
Kannst Du das bitte näher erläutern?

Gruss
Steffen

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

Laute
Mitglied
Student


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

Beiträge: 26
Registriert: 14.07.2003

erstellt am: 23. Jul. 2003 15:51    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 Steffen,

Ich möchte die Positionsdaten eines selektierten Elementes(Pad,Body,Plane,EdgeFillet etc.)auslesen.Die Funktion GetComponents schien mir da geeignet?! Aus diesen Daten will ich mir dann einen Viewpoint konstruieren. Danke die nochmals für deine Hilfe beim Reframe On. Leider muss die Anwendung ohne CATScript sonden nur mit VB auskommen. Da ich ein ziemlicher VB-Newbie bin hoffe ich mal nicht komplett auf dem Holzweg zu sein!

danke für Hilfe

Gruß Laute

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

Steffen Hohmann
Mitglied
 


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

Beiträge: 446
Registriert: 06.03.2002

erstellt am: 24. Jul. 2003 08: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 Nur für Laute 10 Unities + Antwort hilfreich

Hallo Laute,

Was sind denn die Positionsdaten eines Features (Pad, Fillet, usw.)?
Also die Position-Methode funktioniert nur mit Part's, Product's und sonstigen Komponenten, die in einer Baugruppe verbaut werden können.
Eine andere Anwendungsmöglichkeit die funktioniert ist mir nicht bekannt. Dein zweites Makro läuft, wenn Du die Typdeklaration von oPosition auskommentierst. Aber Du bekommst in der Matrix "dPosition" nur die Positionskoordinaten vom oPart.
Die Anweisung

  Set oPart = CATIA.ActiveDocument.Selection.Item(1)

sollte mit einem Fehler quittiert werden, da oPart als PartDocument deklariert ist und dem oPart jetzt ein selektiertes Objekt zugewiesen wird.

Das Problem mit dem Reframe On habe ich jetzt auch gelöst. Beim Aufruf der .exe Datei und dem Übersenden des Befehls mittels SendKeys wurde die Auswahl in CATIA gelöscht. Wenn man eine Auswahl mit der Selection.Add-Methode erzeugt dann funktioniert es.
Also habe ich folgendes gemacht:
Man wählt im CATIA entsprechend dem gesetzten Auswahlfilter das Objekt aus.
Das ausgewählte Objekt lese ich aus und übergebe es der Variablen "oSelOb". Dieses Objekt addiere ich zur Selection-Collection. Dann führe ich den CATIA Befehl aus.

Siehe auch
http://ww3.cad.de/foren/ubb/Forum137/HTML/000384.shtml


Anbei das vollständige bei mir funktionierende Skript.

Sub CATMain()
  Dim sFilter(3)
  Dim oSelOb as Object
  sFilter(0) = "Plane"
  sFilter(1) = "Sketch"
  sFilter(2) = "Pad"
  sFilter(3) = "Body"
  CATIA.ActiveDocument.Selection.SelectElement sFilter, "Bitte die Referenzelemente auswählen", True
  Set oSelOb = CATIA.ActiveDocument.Selection.Item(1).Value
  CATIA.ActiveDocument.Selection.Clear
  CATIA.ActiveDocument.Selection.Add oSelOb
  CATIA.SystemService.ExecuteBackgroundProcessus ("D:\VBProgramme\CATIA_Befehl\CATIABefehl.exe Bildschirmfüllend anzeigen")
End Sub


Gruss
Steffen

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

Laute
Mitglied
Student


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

Beiträge: 26
Registriert: 14.07.2003

erstellt am: 24. Jul. 2003 10: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

Hi Steffen,

tja wie soll ich mich nur bedanken? Wenn ich kein armer Student wäre würde ich dir einen Scheck zukommen lassen -  dafür, dass ich mich nicht mehr mit der b***** Doku rumärgern muss und irgendwas probiere das garnicht funktionieren kann ! Also danke für die Mühe!

Nun hätt ich nur noch zwei klitzekleines Probs.

1. Und zwar möchte ich das was in der CATMain steht aus meiner Anwendung aufrufen -wenn ich einen Button klickt etc. Bloß passiert da nix - Der Start im CATIA geht problemlos.

2. "Expand First Level" des Spezifikationsbaumes müsste analog mit Sendkeys gehen ?!
    AppActivate "CATIA V5"
    SendKeys "c:Expand First Level" + Chr(13), True

Gruß Laute

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

Steffen Hohmann
Mitglied
 


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

Beiträge: 446
Registriert: 06.03.2002

erstellt am: 24. Jul. 2003 11:29    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 Laute 10 Unities + Antwort hilfreich

Hallo Laute,

bei mir funkts in VB.
Ich habe folgende Struktur:

1. ein Modul mit einer Sub Main (Main ist die Startprocedure des VB-Projektes)

Public CATIA As Application

Sub Main()
    AppActivate "CATIA V5"
    DoEvents
   
    Set CATIA = GetObject("", "CATIA.Application")
   
    Form1.Show
End Sub


2. eine Form mit Button und einer Ereignisprocedure für den Button

Private Sub Command1_Click()
   
    Dim oSel
    Set oSel = CATIA.ActiveDocument.Selection
   
    Dim sFilter(3)
    sFilter(0) = "Plane"
    sFilter(1) = "Sketch"
    sFilter(2) = "Pad"
    sFilter(3) = "Body"
   
    oSel.SelectElement sFilter, "Bitte die Referenzelemente auswählen", True
   
    Dim oSelOb As Object
    Set oSelOb = oSel.Item(1).Value
   
    oSel.Clear
    oSel.Add oSelOb
    SendKeys "b:Bildschirmfüllend anzeigen" + Chr(13), True
    oSel.Clear
End Sub


Und das funktioniert bei mir.

Das Baum auf- und zuklappen geht so, wie Du es beschrieben hast.

Gruss
Steffen

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

Laute
Mitglied
Student


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

Beiträge: 26
Registriert: 14.07.2003

erstellt am: 25. Jul. 2003 10:20    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 Steffen,

danke für die ausfürhliche Antwort.
Hab's aber leider nicht hinbekommen! Der beigefügte Code verursacht eine Endlosschleife. Beim Debug wir mir die SendKeys Anweisung gehighlightet oder eine Meldung "SelectElement/Item(1) - schlug fehl". Ich klick auf meinen Button -> wähle ein Element aus -> Endlosschleife/oder garnichts passiert.   

   
    Dim oSel
    Set oSel = CATIA.ActiveDocument.Selection
    oSel.Clear
   
    Dim sFilter(3)
    sFilter(0) = "Plane"
    sFilter(1) = "Sketch"
    sFilter(2) = "Pad"
    sFilter(3) = "Body"
   
    Dim sOutputState As String
    sOutputState = oSel.SelectElement(sFilter, "Bitte ein      Referenzelement auswählen ", True)

    If (sOutputState = "ok" Or sOutputState = "Normal") Then
           
    Dim oSelOb As Object
    Set oSelOb = oSel.Item(1).Value
   
 
    oSel.Add oSelOb
    SendKeys "c:Reframe On" + Chr(13), 1

Gruß Laute

Ps. An den VB-Referenzen kann das nicht liegen oder?

Thx for help : (

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

Steffen Hohmann
Mitglied
 


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

Beiträge: 446
Registriert: 06.03.2002

erstellt am: 25. Jul. 2003 11:25    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 Laute 10 Unities + Antwort hilfreich

Hallo Laute,

ich habe Dein Code getestet. Bei mir läuft er problemlos mit dem gewünschten Ergebnis und ich habe keine Ahnung, warum das bei Dir nicht läuft.

Gruss
Steffen

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

Laute
Mitglied
Student


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

Beiträge: 26
Registriert: 14.07.2003

erstellt am: 25. Jul. 2003 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 Steffen,

Falscher Alarm ! ! !
- dein Code ist fehlerfrei und läuft!(bei mir aber nicht immer!liegt aber definitiv an meinem CATIA!?Spricht nicht immer auf SendKeys an)
-Endlosschleife gibts nur wenn vor dem sub-call schon ein Element selektiert ist! da kann man sich aber mit "...Selektion.clear" behelfen.

Thx

Laute

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

Steffen Hohmann
Mitglied
 


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

Beiträge: 446
Registriert: 06.03.2002

erstellt am: 25. Jul. 2003 13:45    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 Laute 10 Unities + Antwort hilfreich

Hallo Laute,

bei Verwendung der SendKeys-Methode muß auf jeden Fall das CATIA-Fenster aktiv sein. Es kann durchaus sein, dass das Makro zu schnell läuft und der gesendete CATIA-Befehl im Nirwana landet. Setzte einfach vor die SendKeys-Methode noch ein DoEvents, damit das Betriebssystem alle Arbeiten vor der Befehlsübergabe an CATIA erledigt.
Oder Du aktivierst noch über AppActivate "CATIA V5" das CATIA-Fenster aus dem Programm.

Gruss
Steffen

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

Laute
Mitglied
Student


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

Beiträge: 26
Registriert: 14.07.2003

erstellt am: 25. Jul. 2003 15: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

Steffen Hohmann for President ! : )

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

Laute
Mitglied
Student


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

Beiträge: 26
Registriert: 14.07.2003

erstellt am: 28. Jul. 2003 11: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

Hallo Foranier,

kann mir vielleicht irgendjemand sagen warum der beigefügte Code in  1 von 20 Fällen funktioniert und sobald ein neues Modell geöffnet wird nicht mehr? Ich bin wirklich ratlos !
 
    AppActivate "CATIA V5"
    Dim oSel As Selection
    Set oSel = CATIA.ActiveDocument.Selection

    Dim sFilter(3)
    sFilter(0) = "EdgeFillet"
    sFilter(1) = "Sketch"
    sFilter(2) = "Pad"
    sFilter(3) = "Body"
   
    Dim oSelOb As Object
    Set oSelOb = oSel.Item(1).Value
   
   
    oSel.Add oSelOb
    DoEvents
    SendKeys "C:Reframe On" + Chr(13), True
    AppActivate "CATIA V5"
   
    CATIA.ActiveWindow.ActiveViewer.Update

Gruss Laute

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

Laute
Mitglied
Student


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

Beiträge: 26
Registriert: 14.07.2003

erstellt am: 28. Jul. 2003 13: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

irgendwie lösen sich meine Prbleme immer dann sobald ich sie poste. Ich weis zwar nicht genau warum aber das hier funktioniert bei mir mit V5R10
   
    AppActivate "CATIA V5"
    Dim oSel
    Set oSel = CATIA.ActiveDocument.Selection

    Dim oSelOb As Object
    Set oSelOb = oSel.Item(1).Value
   
    oSel.Add oSelOb
    AppActivate "CATIA V5"
    DoEvents
    SendKeys "C:Reframe On" + Chr(13)
    AppActivate "CATIA V5"

gruss laute

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