Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Programm ignoriert Befehl

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:  Programm ignoriert Befehl (1516 mal gelesen)
adrian83
Mitglied
student


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

Beiträge: 62
Registriert: 22.11.2012

-Windows 7 64 bit
-Catia V5 r21

erstellt am: 07. Jun. 2013 10:11    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!
ich habe ein dieses kleine VBA-Porgramm geschrieben das im NC-Bereich eine Aufspannung definiert und eine Schruppoperation einfügt. Das seltsame daran ist: der roughStock lässt sich mit diesem Code hinzufügen. der Befehl für das part hat aber keinerlei auswirkungen.Ich verstehe nicht,warum und hoffe ihr wisst weiter.

Code:
Sub catmain()

Dim MfgDoc1 As Document
Set MfgDoc1 = CATIA.ActiveDocument

'----------Process-Definition---------------------------------------------

Dim ActivityRef As AnyObject
Set ActivityRef = MfgDoc1.GetItem("Process")

'-------------Setup1-Def,hier auch die ganzen erzeuger-methoden rein,"setPart.."-----------


Dim Setup2 'As ManufacturingSetup
Dim childs As Activities
Dim child As Activity

If (ActivityRef.IsSubTypeOf("PhysicalActivity")) Then
Dim quantity
  Set childs = ActivityRef.ChildrenActivities
  quantity = childs.Count

  If quantity <= 0 Then
    Exit Sub
  End If
  Dim NumberOfSetup
  NumberOfSetup = 0

Dim I
  For I = 1 To quantity
          Set child = childs.Item(I)
          If (child.IsSubTypeOf("ManufacturingSetup")) Then
                Set Setup2 = child
                NumberOfSetup = NumberOfSetup + 1
                Exit For
          End If
  Next

End If

If NumberOfSetup <= 0 Then
    Exit Sub
End If

Dim prod2  As Product
Set prod2 = Setup2.GetProductInstance

Dim NC As AnyObject
Dim SG As AnyObject

Dim K As Integer

For K = 1 To prod2.Products.Count
     
    If prod2.Products.Item(K).PartNumber = "Workpiece" Then
        Set NC = prod2.Products.Item(K)
        End If
        Next
       
       
        Dim L As Integer
       
        For L = 1 To prod2.Products.Count
       
          If prod2.Products.Item(L).PartNumber = "Stock_Geometry" Then
            Set SG = prod2.Products.Item(L)
           
     
  End If
           
    Next
'------------------DesignPart und wichtige elemente herholen-----------------------------

Dim pa  As PartDocument
Set pa = NC.ReferenceProduct.Parent

Dim part As part
Set part = pa.part

Dim bod  As Bodies
Set bod = part.Bodies

Dim des As AnyObject
Set des = bod.GetItem("heiko")

Dim ebene  As AnyObject
Set ebene = des.HybridShapes.GetItem("Oben")

Dim ursprung As AnyObject
Set ursprung = des.HybridShapes.GetItem("Point.1")

Dim myLine As Line
Set myLine = des.HybridShapes.GetItem("Line.1")
'######################################jetzt stock

Dim pa2 As PartDocument
Set pa2 = SG.ReferenceProduct.Parent

Dim part2 As part
Set part2 = pa2.part

Dim bod2  As Bodies
Set bod2 = part2.Bodies

Dim sto As AnyObject
Set sto = bod2.GetItem("PartBody")


'---------------------Setup einrichten--------------------------------

Call Setup2.MachiningAxisSystem.SetOriginPoint(ursprung, NC)
Call Setup2.MachiningAxisSystem.SetOriginZDirection(0, 0, 1)
Call Setup2.CreateMachine("Mfg3AxisMachine")
Call Setup2.Machine.set_DefaultValues

Call Setup2.SetDesignPart(des, NC)
Call Setup2.SetStock(sto, SG)
Call Setup2.SetSafetyPlane(ebene, NC)

Dim mfgprog As ManufacturingProgram
Set mfgprog = Setup2.GetItem("Manufacturing Program.1")

Dim mfgop As ManufacturingOperation
Set mfgop = mfgprog.AppendOperation("M3xHardMaterial", 1)

'--------------schruppOperation einfügen--------------------------
Dim XX As AnyObject
Set XX = Setup2.GetProductInstance


Call mfgop.SetGeometry("Parts", des, XX, 0)
Call mfgop.SetGeometry("RoughStock", sto, XX, 0)

Call mfgop.SetTool("End Mill D10 Rc0")

End Sub


------------------
-Windows 7 64 bit
-Catia V5 r19

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: 07. Jun. 2013 12:21    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 adrian83 10 Unities + Antwort hilfreich

Servus
Schon mal probiert statt der Ebene eine Reference davon zu übergeben (so ist es zumindest in der Doku beschrieben)?
Ich empfehle dir mehr aussagekräftige Variablennamen zu verwenden (xx, des, bod sind nicht gerade eindeutig).

Gruß
Bernd

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

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

adrian83
Mitglied
student


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

Beiträge: 62
Registriert: 22.11.2012

-Windows 7 64 bit
-Catia V5 r21

erstellt am: 07. Jun. 2013 14:53    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

okay,guter tipp.aber wie wird das konkret gemacht?
habs mal so probiert:

Dim refebene As Reference
Set refebene = part.CreateReferenceFromObject(ebene)

Call mfgop.SetGeometry("RelimitingPlane", refebene, NC, 0) => Fehler 440
Call mfgop.SetGeometry("Parts", des, XX, 0)
Call mfgop.SetGeometry("RoughStock", sto, XX, 0)

------------------
-Windows 7 64 bit
-Catia V5 r19

[Diese Nachricht wurde von adrian83 am 07. Jun. 2013 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: 07. Jun. 2013 15: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 Nur für adrian83 10 Unities + Antwort hilfreich

Servus
Wurde die Referenz korrekt erstellt (Watch-Fenster)? AFAIR geht "CreateReferenceFromObject" nur innerhalb eines Parts und nicht in der Baugruppe/Process. (dort nur CreateReference oder Selection ??)

Gruß
Bernd

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

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

adrian83
Mitglied
student


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

Beiträge: 62
Registriert: 22.11.2012

-Windows 7 64 bit
-Catia V5 r21

erstellt am: 07. Jun. 2013 15: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

Okay herr Grittmann! ich denke sie haben mit der vermutung recht. zwar sieht man zu der referenz was im watch fenster. aber sie ist nicht wirklich da. ich hab mal versucht,per referenz einen zweiten Stock der Schruppoperation hinzuzufügen -was ja  auch ohne Referenz bereits geklappt hat. Dann habe ich in catia auf die bearbeitungsoperation schrupen geklickt. tatsächlich war da das zeichen für stock lila. habe dort auf analyse geklickt.es waren wirklich zwei stocks aufgelistet, der wo ich per referenz gesetzt habe hatte die bemerkung "notfound"
also wie kann man sauber eine referenz von einem Partbody machen? geht das überhaupt?

==========> Problem umgangen:
3XSurfacic feature erzeugt,und zwar  so:

Code:

mfgview.features.add("M3xFeature")
call feature.SetNCGeometry("Parts",myNCPart)
call feature.SetNCGeometry("GuidingElements",myNCPart)



[Diese Nachricht wurde von adrian83 am 07. Jun. 2013 editiert.]

[Diese Nachricht wurde von adrian83 am 08. Jun. 2013 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