|
CATIA V5 Programmierung : Nicht geladene Elemente löschen
shoutz000 am 24.05.2015 um 12:36 Uhr (1)
Servus miteinander,mich plagt mal wieder ein Problem Ich schreibe gerade ein Makro welches mir alle unbenötigten Elementeeiner Productstruktur löschen soll, was bisher auch wunderbarfunktioniert. Aufbau ist wie folgt:Product wird geupdatetAlle defekten Constraints werden gelöschtAlle defekten Formeln werden gelöschtAlle Linien, Punkte, Kurven usw. ohne Kinder werden gelöschtMeldung an User was alles gelöscht wurde und wie viele jeweilsEs wird nochmals nach defekten Constraints gesuchtFalls ein Fund vorhan ...
|
In das Form CATIA V5 Programmierung wechseln |
 |
CATIA V5 Programmierung : VBA-Projekt Entry Point
Yizzy am 26.05.2015 um 14:17 Uhr (1)
Hallo Joe, da kommt doch gleich eine ganz andere Meldung... (siehe Anhang03), bin ich die erste Zeile und habe eine Einzelschritt gemacht, dann kam Sie auch schon.Wenn ich das richtige sehe muss man da was auf 64Bit umstellen. Unsere Catia Version war mit R19 allerdings auch bereits 64Bit um diese Frage direkt zu beantworten.Danke vielmals Joe Grüße------------------Inkompetenz muss mit Inkompetenz kompensations Kompetenz kompensiert werden.
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Suchen Punkt im GeoSet
tubuibam am 27.05.2015 um 10:56 Uhr (1)
Hallo,ich möchte alle Punkte in dem GeoSet "Drawing_features" suchen, und damit bearbeiten.Habe ich so gemacht:Selection.Add CATIA.ActiveDocument.Part.HybridBodies.Item("Drawing_features")Selection. Search Search "((((((CATStFreeStyleSearch.Point + CAT2DLSearch.2DPoint) + CATSketchSearch.2DPoint) + CATDrwSearch.2DPoint) + CATPrtSearch.Point) + CATGmoSearch.Point) + CATSpdSearch.Point),sel"Die Kategorien von Punkte und syntax habe ich einfach in Forum recherchiert.So wie ich sehe, der sucht Punkte nicht in ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Nicht geladene Elemente löschen
shoutz000 am 27.05.2015 um 21:14 Uhr (1)
Mein Makro läuft unter CatScript. So funktioniert es auch:Code:Sub CATMain()Set oDoc = CATIA.ActiveDocumentSet oSel = oDoc.Selection oSel.Search "(CATProductSearch.Product),all" For i = oSel.Count To 1 Step -1 Set oElement = oSel.Item2(i).Value On Error Resume Next If oElement.PartNumber=IsError Then oSel.Remove i End If On Error GoTo 0 NextMsgBox oSel.CountEnd SubAber so sind jetzt alle Elemente selektiert welche in Ordnung sind. [Diese Nachricht wurde von shoutz000 am 27. Mai. 2015 editiert.]
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Nicht geladene Elemente löschen
shoutz000 am 28.05.2015 um 11:10 Uhr (1)
Bin gerade an den Zeichnungen dran und komm nicht weiter...Hab mal des zusammengestümpert :-PMeckert die ganze Zeit rum das der Index i falsch gewählt wurde...er muss zwischen 0 und 1 liegen. Liegt an der -1 aber ohn (-)werden die Skizzen nur selektiert und mehr nicht?!Code:Sub CATMain()Set oDoc = CATIA.ActiveDocumentSet oSel = oDoc.Selection oSel.Search "CATPrtSearch.Sketch,all" For i = oSel.Count To 1 Step -1 Set oSketch = oSel.Item2(i).Value oSel.Delete Set oDocSel = oSel.Item2(i).Document ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Nicht geladene Elemente löschen
shoutz000 am 28.05.2015 um 21:50 Uhr (1)
Ich kenn mich mit beidem nicht aus und habe jetzt mal die Collectionversucht. Aber anscheinend ist die nicht definiert... Finde zu beidemaber nicht wirklich etwas hilfreiches...Code:Sub CATMain()Set oDoc = CATIA.ActiveDocument Set oList = New Collection Set oProd = oDoc.Product.Products For Each Sketch in oProd oList.Add Sketch next Set oSel = oDoc.Selection oSel.clear for i = 1 to oList.Count oSel.Add oProd.Item(oList.Item(i)) oSel.Delete If oProd.IsUpToDate=Tru Then CATIA.StartCommand "Un ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Nicht geladene Elemente löschen
shoutz000 am 29.05.2015 um 08:13 Uhr (1)
Also ich habe ein CatScript in dem eine Collection ist aber dieist nicht anderst definiert, funktioniert aber?! Aber über die Suchehabe ich auch keine Collection für CatScript gefunden...Bin ich mit der Array auf dem richtigem Weg?! Da sollen jetzt erstmalalle Parts drin sein. Ich habe aber keine Ahnung ob das tatsächlichder Fall ist und gute Beispiele wie man so etwas aufbaut habe ichnicht gefunden...?!Code:Sub CATMain() Set oDoc = CATIA.ActiveDocument Set oSel = oDoc.Selection oArray = Array(PartDocu ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Nicht geladene Elemente löschen
shoutz000 am 29.05.2015 um 09:07 Uhr (1)
Ok ich bin weiter xDCode:Sub CATMain() Set oDoc = CATIA.ActiveDocument Set oSel = oDoc.Selection oSel.Search "(CATProductSearch.Part),all" DocCount = oSel.Count SketchCount = oSel.Count For i = 1 To DocCount ReDim Preserve PartArray(i) Set PartArray(i) = oSel.Item(i).Value Next For i = 1 To DocCount Set Part = PartArray(i) Next oSel.Search "(CATPrtSearch.Sketch),sel" For n = 1 To SketchCount ReDim Preserve SketchArray(n) Set SketchArray(n) = oSel.Item(n).Value ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Nicht geladene Elemente löschen
shoutz000 am 29.05.2015 um 10:48 Uhr (1)
Zu den ungeladenen Elementen. Also ich bekomm jetzt die Anzahl dieserElemente ausgegeben, aber wie lösche ich diese?Code:Sub CATMain() Set oDoc = CATIA.ActiveDocument Set oSel = oDoc.Selection Set oDelete = oDoc.Product.Products oSel.Search "(CATProductSearch.Product),all" For i = oSel.Count To 1 Step -1 Set oElement = oSel.Item2(i).Value On Error Resume Next If oElement.PartNumber=IsError Then oDelete.Add i End If On Error GoTo 0 Next oSel.Clear MsgBox oDelete.CountEnd Sub
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Nicht geladene Elemente löschen
bgrittmann am 29.05.2015 um 11:14 Uhr (1)
ServusFalls du nur in der obersten Ebene der Baugruppe suchen willst geht es auch so.Code:Sub CATMain() Dim oDoc As ProductDocument Dim oSel As Object Dim oProducts As Products Dim oProduct As Product Set oDoc = CATIA.ActiveDocument Set oSel = oDoc.Selection Set oProducts = oDoc.Product.Products oSel.Clear For Each oProduct In oProducts On Error Resume Next If IsError(oProduct.PartNumber) Then oSel.Add oProduct End If On Error GoTo 0 Next MsgBox oSel.Count oSel.delEnd ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Nicht geladene Elemente löschen
imation1999 am 29.05.2015 um 11:19 Uhr (1)
...oder so:Code:Sub CATMain() Set oDoc = CATIA.ActiveDocument Set oSel = oDoc.Selection Set oDelete = oDoc.Product.Products oSel.Search "(CATProductSearch.Product),all" For i = oSel.Count To 1 Step -1 Set oElement = oSel.Item2(i).Value On Error Resume Next x = oElement.PartNumber if Err.Number = 0 then oSel.remove i On Error GoTo 0 end if Next oSel.delete End Sub
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Nicht geladene Elemente löschen
shoutz000 am 01.06.2015 um 06:57 Uhr (1)
Also ich habe jetzt des ganze We mit dem Editor rumgemacht undversucht mich da mal rein zu arbeiten. Die Hilfe mit der Arrayist nur teilweiße aufschlussreich...In einander verschachteln parts in array dann ein part raus dann sketchesin die nächste array usw... ich versuchs zwar aber wirklich weiter gekommenbin ich mit dem editor trotzdem nicht... So der aktuelle Stand:Bei Fett gibts jeweils Fehler?!Code: Public PartArray() Public SketchArray()Sub CATMain() Set oDoc = CATIA.ActiveDocument Set oSel = oDo ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : VBA-Projekt Entry Point
Yizzy am 02.06.2015 um 14:18 Uhr (1)
Wir sitzen in Niederbayern Regensburg-Dingolfing.Werde das jetzt allerdings erstmal einen Dienstleister anbieten. Bevor ich da selber etwas weiter probiere. Hatte auch schon unseren Support (Die Firma die die Lizensen verwaltet und ansich Probleme bei Catia behebt) gefragt. Nur die meinten die "können" das nicht.Grüße Yizzy------------------Inkompetenz muss mit Inkompetenz kompensations Kompetenz kompensiert werden.
|
In das Form CATIA V5 Programmierung wechseln |