Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Obere Ebene einer Taschenfräsen-Operation zuweisen

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:  Obere Ebene einer Taschenfräsen-Operation zuweisen (2036 mal gelesen)
DaiVied
Mitglied



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

Beiträge: 50
Registriert: 19.09.2011

erstellt am: 23. Sep. 2011 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

In der Doku hab ich folgendes gefunden:

"Sub SetGeometry(iGeometryType, iReference, iProduct, iPosition)
Assigns geometry to a Manufacturing Operation"

und als Beispiel:

Code:
Set Product1 = Setup1.GetProductInstance()
Dim Pocketing1 As ManufacturingOperation
Set Pocketing1 = Program1.AppendOperation ("Pocketing",1)
Pocketing1 .SetGeometry("PartBottom",Plane1,Product1,0)

meine Version davon ist nun folgende

Code:
Set processDocument = CATIA.ActiveDocument
Set PPR = processDocument.PPRDocument
Set process = PPR.processes.Item("Process")
Set clamping = process.GetItem("Aufspannung.1")

   
call clamping.CreateMachine("Mfg3AxisMachine")

Set manufacturingProgram = clamping.GetItem("Herstellungsprogramm.1")
   
        Set productJaw = PPR.products.Item("jaw_pattern.1")
  clamping.Product = productJaw
   
Set product = clamping.GetProductInstance()

Set pocketingOperation = manufacturingProgram.AppendOperation ("Pocketing",1)
   
pocketingOperation.SetTool("End Mill D10 Rc2 N")

pocketingOperation.SetGeometry "RelimitingPlane",Plane,product,0


 

Bisher funktioniert alles, nur SetGeometry am ende will nicht so richtig.
Ich bekomme als Fehlermeldung immer:

"Laufzeit Fehler, Typen unverträglich 'pocketingOperation.SetGeometry'"

Damit bin ich nun überfragt, da das Beispiel ja zu fast drem selben Zweck eingesetzt wird und es ja offensichtlich daran liegt, das man (laut Fehlermeldung) ein Manufacturin Object nich mit SetGeometry verbinden kann 

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: 23. Sep. 2011 16:04    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 DaiVied 10 Unities + Antwort hilfreich

Servus
Hast du aus der Ebene (Plane) eine Referenz gebildet? Was ist bei dir product (Typ)?

Gruß
Bernd

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

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

DaiVied
Mitglied



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

Beiträge: 50
Registriert: 19.09.2011

erstellt am: 23. Sep. 2011 16:17    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

Eine Referenz habe ich nicht gebildet, kannst du mir da ein Stichwort nennen, nach dem ich in der Hilfe nachlesen kann?

Code:

clampin.Product = productJaw
Set product = clamping.GetProductInstance()

ich dachte damit weise ich dem Setup mein Part zu und weise dann product die Instanzen des im Setup enthaltenen Parts zu

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: 23. Sep. 2011 17:15    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 DaiVied 10 Unities + Antwort hilfreich

Servus
Du musst genau darauf achten welchen Variablentyp d einer Funktion übergeben musst (siehe V5Automation).
Die Referenz kann auf verschiedene weiße gebildet werden:
- CreateReferencefromObject (nur im PartDesign?)
- Objekt selektieren und Reference bilden (oSel.item2(1).Reference)
- ....
Was für einen Typ hat deine Variable "product" (Watchfenster benutzen)

Gruß
Bernd

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

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

DaiVied
Mitglied



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

Beiträge: 50
Registriert: 19.09.2011

erstellt am: 28. Okt. 2011 11:13    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

Sorry, aber ich kann weder "oSel", noch "CreateReferencefromObject" in der Hilfedatei finden und dort nachschauen was es genau mit denen aufsich hat. Kannst du mir sagen, wie ich die finden kann, und wenn nicht, wie ich sie zu verwenden hab?

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: 28. Okt. 2011 16: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 DaiVied 10 Unities + Antwort hilfreich

Servus
"CreateReferenceFromObject" findest du direkt beim "Part" (in der V5Automation).
oSel hatte ich als Selection deklariert (also unter Selection suchen)

Gruß
Bernd

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

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

DaiVied
Mitglied



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

Beiträge: 50
Registriert: 19.09.2011

erstellt am: 09. Jan. 2012 11:43    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

Nachdem das Projekt ne Zeit auf Eis lag hab ich die Arbeit wieder aufgenommen. Ich Poste mal den Quellcode und beschreibe, was ich mir dabei gedacht habe. Wäre sehr nett, wenn mich dann jemand berichtigen könnte:

Code:
Set processDocument = CATIA.ActiveDocument
Set PPR = processDocument.PPRDocument
Set process = PPR.processes.Item("Process")
Set clamping = process.GetItem("Aufspannung.1")
Set manufacturingProgram = clamping.GetItem("Herstellungsprogramm.1")
        Set productJaw = PPR.products.Item("jaw_pattern.1")

   
call clamping.CreateMachine("Mfg3AxisMachine")

        clamping.Product = productJaw
        Set product = clamping.GetProductInstance()

Set plane = oSel.item2(1).Reference


Set pocketingOperation = manufacturingProgram.AppendOperation ("Pocketing",1)
       
        pocketingOperation.SetTool("End Mill D10 Rc2 N")

        pocketingOperation.SetGeometry "RelimitingPlane",plane,product,0


Also mit "clamping.Product = productJaw" möchte ich meiner Aufspannung mein CATPart Jaw_pattern.1 als Aufgespanntes Werkstück zuweisen.
Dann möchte ich mit "Set product = clamping.GetProductInstance()" der Variable "product" alle Instanzen des aufgespannten Teil zuweißen
Mit "Set plane = oSel.item2(1).Reference" will ich der Variablen "plane" die Refferenz zur Ebene zuweißen. Hier bin ich allerdings überfragt, was in die Klammer hinter item2 gehört? In der Hilfe steht "The index of the SelectedElement object to return" Woher weiß ich, welche Integer meine Ebene hat?

Hätte das alles so geklappt würde ich eine Tasche Fräsen und die "RelimitingPlane" mit den Informationen aus den Variabeln product und plane festlegen.

Fehlermeldung ist: "objekt erforderlich 'oSel'"

Wisst ihr, wo mein Denkfehler ist? wenn ich etwas Grundlegend falsch verstanden hab, könnt ihr mir dann bitte darlegen, wie der logische Aufbau einer solchen Auswahl aussieht?
Vielen Dank für die Hilfe

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

DaiVied
Mitglied



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

Beiträge: 50
Registriert: 19.09.2011

erstellt am: 16. Jan. 2012 10: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

Mein neuster Versuch:

Code:
Set processDocument = CATIA.ActiveDocument
Set PPR = processDocument.PPRDocument
Set process = PPR.processes.Item("Process")
Set clamping = process.GetItem("Aufspannung.1")
Set manufacturingProgram = clamping.GetItem("Herstellungsprogramm.1")
    Set productJaw = PPR.products.Item("jaw_pattern.1")

 
call clamping.CreateMachine("Mfg3AxisMachine")

    Set oSel = Selection.Add("productJaw")
   
Set upperPlane = oSel.item2(1).Reference


Hier definiere ich ein Objekt oSel, also eine Selection, der ich über Selection.Add("productJaw") das Produkt "jaw_pattern.1" zuweise. Und dann will ich mit "oSel.item2(1).Reference" der Variable upperPlane die Referenc der Ebene zuweisen. So müsste es doch eigentlich gehen, oder? Was mich noch sehr verwirrt, ist "Selection" vor dem Add, was ich aus einem Beispiel der Hilfe hab (da kommen auch die Probleme her). Ist das eine Methode oder ein Objekt? mit dem "Selection" bekomm ich folgende Fehlermeldung: "Objekt erforderlich 'Selection'"
und ohne bekomm ich : "Typen unverträglich 'Add'", also muss es ja für irgendwas gut sein? Des weiterne versteh ich immer noch nicht den Sinn von "item2(1)" in der Hilfe steht, das diese Funktion ein integer Wert eines Index eines Objekts zurückliefert. Fr was brauche ich das? Wie kann ich dabestimmen, von welchem Objekt ich es zurückgeliefert bekomme? Würde mir bitte jemand helfen?
Vielen Dank

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: 16. Jan. 2012 12:49    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 DaiVied 10 Unities + Antwort hilfreich

Servus
Du musst auch zuvor deine Ebene selektieren (per User oder per Search, ...) und kannst dann über die Methode item2(1).Reference (also das erste selektierte Element) die Referenz bilden.

Gruß
Bernd

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

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

DaiVied
Mitglied



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

Beiträge: 50
Registriert: 19.09.2011

erstellt am: 16. Jan. 2012 14:07    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,
Ich hab mal versucht, ganz von Anfang anzufangen und hab schon gute Fortschritte gemacht:

Hier mal ein Makro, in dem ich etwas mit Selections probiere. Dadurch wurde mir einiges klar

Code:
Sub CATMain()

Dim oSel
Set oSel = CATIA.ActiveDocument.Selection
oSel.Clear

CheckJawGeometry
SelectPlanes

End Sub

sub SelectPlanes ()

Dim Jaw
Dim Geometrics
Dim Geometry


Dim oSel
Set oSel = CATIA.ActiveDocument.Selection
oSel.Clear

Set Jaw = CATIA.ActiveDocument.Part.MainBody
Set Geometrics = Jaw.GeometricElements

If Geometrics.Count > 0 Then

For I =1 To Geometrics.Count
Set Geometry = Geometrics.Item(I)

If Geometry.GeometricType = catGeoTypePlane Then
oSel.Add Geometry
End If

Next
End If
End sub


sub CheckJawGeometry ()

Dim oSel
Set oSel = CATIA.ActiveDocument.Selection
oSel.Clear

For I = 0 To 1 Step 1
     
If I = 0 Then
oSel.Search "'Part Design'.Block"
End If

If I = 1 Then
oSel.Search "'Part Design'.Tasche"
End If

If oSel.Count <> 1 Then
J = J + 1
End If

oSel.Clear

Next

If J <> 0 Then
MsgBox("Bauteilgeometrie nicht kompatibel")
End If

End Sub


Mit der Methode "CheckJawGeometry" überprüfe ich die Bauteilgeometrie. Diese soll nämlich aus genau einem Block und einer Tasche bestehen. Das klappt super, ich denke ich habe die Selections verstanden (kann ich aber erst sagen, wenn die Methode SelectPlanes funktioniert).
SelectPlanes soll mir alle Ebenen des Bauteils auswählen.Bei der Methode habe ich folgendes Problem: Ich kann GeometricElements nicht auf den MainBody anwenden. Als Fehler bekomme ich wieder: "Das Objekt 'Jaw' unterstützt die Methode nicht". Kann ich GeometricElements überhaupt auf einen Körper anwenden? In einem Beispiel wurde die Methode auf eine Skizze angewandt, da scheint es zu funktionieren.
Weist du Rat?

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: 16. Jan. 2012 20:00    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 DaiVied 10 Unities + Antwort hilfreich

Servus
Bei solchen Fragen hilft auch die V5Automation.chm weiter.
Ebenen sind gehören zu den "Hybridshapes".
Du kannst auch mal mit dem Makrorekorder das Suchen der Ebenen aufnehmen, um weiter Anhaltspunkte zum Aufbau der Suche zu bekommen.

Gruß
Bernd

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

[Diese Nachricht wurde von bgrittmann am 16. Jan. 2012 editiert.]

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