|
CATIA V5 Programmierung : Kurve auf Kreisform prüfen
Starbirth am 08.06.2011 um 11:20 Uhr (0)
Hallo Forum,zur Vorgeschichte: Ich müsste wissen ob die vorliegende Fläche ein Zylinder oder sonst irgendwie kreisförmigen Querschnittes ist.Mein erster Ansatz dazu war eine Boundary auf die Fläche zu legen und mit einem Near dafür zu sorgen, dass das Element auch Connex ist.Im nächsten Schritt habe ich versucht mir über ein Measurable den Radius ausgeben zu lassen. Hierbei konnte jedoch die Methode "Radius" meines Measurable nicht durchgeführt werden, auch bei Boundaries die definitiv kreisförmig sind und ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Late Binding Visual Basic 2008
tobiley am 06.06.2011 um 16:31 Uhr (0)
Hallo,Ich habe das Buch CATIA V5 automatisieren gelesen. Und bin gerade dabei mich in das Late Bindung einzuarbeiten. Das klappt soweit eigentlich auch ganz gut, ich stolpere hin und wieder aber über ein paar befehle die ich nicht ins Late Binding übertragen bekommen.Kann mir jemand sagen wie der Befehl "CATIA.ActiveDocument.Product.ApplyWorkMode(CatWorkModeType.DESIGN_MODE)" im Late Binding aussehen muss. Mit Code: param(0) = "CatWorkModeType.DESIGN_MODE" lb_methode(MyProduct, "ApplyWorkMode ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : VBA Makro - Affinität (Volumen)
geekv5 am 12.08.2011 um 09:54 Uhr (0)
Moin Moin,versuche jetzt schon seit einiger Zeit ein Makro für den Befehl Affinität im Volumenbereich zu erstellen, die Aufzeichnung des Makrorecorders funktioniert aber nicht..Habe einfach einen Block erstellt und dann den Befehl aufgezeichnet, das hat der Rekorder ausgespuckt:Code:Sub CATMain()Dim partDocument1 As PartDocumentSet partDocument1 = CATIA.ActiveDocumentDim part1 As PartSet part1 = partDocument1.PartDim hybridShapeFactory1 As HybridShapeFactorySet hybridShapeFactory1 = part1.HybridShapeFactor ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Late Binding Visual Basic 2008
tobiley am 10.06.2011 um 10:46 Uhr (0)
Soo, ich habs nun gefunden in dem Objectbrowser vom CATIA VBA Editor stehen die Integerwerte hinter der Konstanten und es funktioniert.Vielen Dank nochmal!Und hier das versprochene Beispiel:Code:Benötigte Imports für das Late-BindingImports System.Runtime.InteropServicesImports System.Reflection Sub lb_get(ByVal ob As Object, ByVal Befehl As String, ByVal param As Object()) lb_result = ob.GetType().InvokeMember(Befehl, BindingFlags.GetProperty, Nothing, ob, param) End Sub Sub lb_set(ByVal o ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Late Binding Visual Basic 2008
INLU am 10.06.2011 um 18:58 Uhr (0)
Hi tobiley,das werde ich mal bei Gelegenheit so probieren.Ich bin so vorgegangen.Ich verwende beim Programmanfang nur folgende Zeilen:Code:Dim CATIA as ObjectCATIA = System.Runtime.InteropServices.Marshal.GetActiveObject("CATIA.Application")Damit kann ich alle Objekte unter dem Stamm CATIA finden und verwenden. Einzige ausnahme ist der Fall mit lb_methode. Da gehe ich wie folgt vor:Ich möchte ein Body (aktuell) in einem Part (apart) in Bearbeitung setzen.Code:apart.[GetType]().InvokeMember("InWorkObject", ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Breps im Sketch finden
AndiMuenchen1 am 14.06.2011 um 13:11 Uhr (0)
Servus,kurze Rückmeldung zur Lösung.Ich baue im den BRep Name selbst nach und vergleiche ihn mit der Selektion.Dim aPunktBRepNamen_sel()n = 3 Abhängig von der Catia ReleaseaRefosel = Split(sElementName, "_")aRefosel_2 = Split(aRefosel(1), ";")sName = ""For i = 0 To UBound(aRefosel_2) - n sName = sName & aRefosel_2(i) & ";"NextSet oSketchME = osketch.GetItem("ModelElement")oSketchIN = oSketchME.InternalName For Each oGeoElement In osketch.GeometricElements If oGeoElement.GeometricType = 0 Or o ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Existenz der Datei prüfen
cyzed am 08.12.2009 um 13:13 Uhr (0)
Dim Exists As BooleanExists = CATIA.FileSystem.FileExists(datei)If Exists = True ThenMsgBox "ersetzen"ElseMsgBox "nicht ersetzen"End Ifobwohl Exists immer den richtigen Wert annimmt wird kommt immer die zweite MsgBox
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Existenz der Datei prüfen
DanielFr. am 08.12.2009 um 14:13 Uhr (0)
Hallo,das liegt an der Auswertung der booleschen Variablen. Dies kann VB so nicht verarbeiten. Konvertiere die Variable vorher in einen String und vergleiche mit dem Wert "True" dann wird es gehenHier mal ein Beispiel:Code:Sub CATMain() Dim myFilePathStr As String Dim myFileNameStr As String Dim ExitsBool As Boolean myFilePathStr = "deinPfad" myFileName = "deinDateiname" ExitsBool = CATIA.FileSystem.FileExists(myFilePathStr + myFileName) If CStr(ExitsBool) = "True" Then MsgBox "ersetzen" Else ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Masse und schwerpunkt von einzelnen Parts
runio am 16.06.2011 um 21:52 Uhr (0)
Dazu habe ich auch noch eine Frage.Ich möchte auch per Makro einzelne Körper ausmessen (per "Trägheit messen"), die sich alle innerhalb eines Parts befinden.Im Moment werden alle Körper deaktiviert, und jeweils ein Körper aktiviert. Dann wird das komplette Part (bzw. Product) "gemessen".Mein Problem jedoch: Die Messungen sind sehr ungenau!! CATIA versucht immer einen Quader um meine Körper zu ziehen. Dessen Werte (vor allem das Volumen!) werden dann ausgegeben.... Hat jemand eine Idee wie ich das verhinder ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Masse und schwerpunkt von einzelnen Parts
bgrittmann am 17.06.2011 um 18:09 Uhr (0)
ServusVersuch es mal mit der SPAWorkbench - GetMeasurable - Area (siehe Doku) zB:Code:Sub CATMain() Dim objPart As Part Dim objBody As Body Dim objMeasreable As Measurable Set objPart = CATIA.ActiveDocument.Part Set objBody = objPart.Mainbody Set objMeasreable = GetBodyMeasureable(objPart, objBody) If Not (objMeasreable Is Nothing) Then Retrieve the volume and area just to show it worked MsgBox objMeasreable.Area MsgBox objMeasreable.Volume Else MsgBox "The Measureable could not be retr ...
|
In das Form CATIA V5 Programmierung wechseln |
 |
CATIA V5 Programmierung : Reaction Fehlermeldung
motard am 18.06.2011 um 12:12 Uhr (0)
Hallo,ich habe 2 Reactions geschrieben, mit gleichem Zweck,einmal mit "vbscribt" und einmal mit "knowledge action"... dabei wird eine Messparameter "Winkel" ausgewertetdiese sind sehr simpel und dennoch stoße ich auf Fehler:1. zu "vbscribt":Set oDoc = CATIA.ActiveDocumentSet oProd = oDoc.ProductSet oParam = oProd.ParametersSet oMessung = oParam.Item("Messung_Winkel_Gelenkwelle_vorn")Dim strAusgabe As String strAusgabe ="Winkel ueberschritten."If oMessung.Value3 ThenMsgBox (strAusgabe)End if End sub- Fehle ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Reaction Fehlermeldung
HoBLila am 21.06.2011 um 12:00 Uhr (0)
Der Hinweis mit V6 ist wichtig, vielleicht eine der wichtigstens Eigenschaften hier in Deinem Post, weshalb ich nicht verstehe, dass er nur so in einem Halbsatz kommt...Also ActiveDocument gibts nicht mehr im V6, das sollte eigentlich klar sein, hierzu bitte die Doku lesen.Dann gibt es überhaupt keine Dokumente mehr im V6, das sollte auch klar sein.Das ganze Modell geht nun über Editoren, was 1:1 dem CAA-Ansatz entspricht und viel praktikabler ist, da man das aktuell in bearbeitung befindliche Objekt erhäl ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Reaction Fehlermeldung
motard am 18.06.2011 um 16:14 Uhr (0)
Hallo,nun will ich gleich mal selbst schreiben, was ich rausgefunden habe:zu dem 2.Punkt mittels Knowledge Action liegt der Fehler Update Cycle daran, das als Quelle der Reaction der gleiche Parameter genutzt wird, wie in der Reaction selbst, da meckert Catia,warum das mit VB-Scribt nicht funktioniert ist noch unklar?motard
|
In das Form CATIA V5 Programmierung wechseln |