|
CATIA V5 Programmierung : Makro zur Umbenennung von Parts im Produkt erweitern
geekv5 am 07.05.2012 um 15:23 Uhr (0)
Hab dir mal schnell was zusammengetippt, sollte mit einem Part als aktives Dokument funktionieren..Code:Sub CATMain()Dim RingZaehler As IntegerSet partdocument1 = CATIA.ActiveDocumentSet part1 = partdocument1.PartSet hybridBodies1 = part1.HybridBodiesRingZaehler = 0For i = 1 To hybridBodies1.Count Set hybridbody1 = hybridBodies1.Item(i) hybridbody1.Name = "Ringset" & CStr(i) For j = 1 To hybridbody1.HybridShapes.Count hybridbody1.HybridShapes.Item(j).Name = "Ring" + CStr(RingZaehler + 1) RingZ ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : [HowTo] Interne Befehlsnamen schneller finden (CATNls)
geekv5 am 11.05.2012 um 15:36 Uhr (1)
Hallo Lila,hätte ich gewusst, dass Notepad++ so eine Funktion hat, hätte ich auch kein extra Programm gesucht "Normal View" finde ich nur als "NormalViewHeader", CATIA spuckt aber leider nur "Unbekannter Befehl" aus.. Das Problem habe ich übrigens auch bei anderen Befehlen, ich finde den String zwar, aber CATIA kennt ihn nicht.. Kann natürlich auch sein, dass ich den Befehl auf der falschen Workbench aufgerufen habe, bin gerade im PartDesign..Werde das Tutorial bei Gelegenheit nochmal überarbeiten und wie ...
|
In das Form CATIA V5 Programmierung wechseln |
 |
CATIA V5 Programmierung : [HowTo] Interne Befehlsnamen schneller finden (CATNls)
geekv5 am 10.05.2012 um 19:30 Uhr (1)
Hallo zusammen,hier ein kleines Tutorial, was das finden der interenen Befehlsnamen erleichtern soll..Szenario 1:Ein Befehl wird über CATIA.StartCommand aufgerufen, ist aber unter verschiedenen Workbenches unter dem gleichen Namen vorhanden, sodass unter Umständen der falsche Befehl aufgerufen wird.Szenario 2:Der Befehl CATIA.StartCommand wird in einem mehrsprachigen Makro verwendet, statt für jede Sprache den richtigen String vorzuhalten, soll der interne Befehlsname verwendet werden.Anleitung:Die gesucht ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Makro zur Umbenennung von Parts im Produkt erweitern
geekv5 am 13.07.2011 um 13:31 Uhr (0)
Hallo zusammen,bin nicht das erste mal hier, aber hab meinen User vergessen Habe hier ein tolles Makro gefunden, welches in einem Produkt Parts umbenennt (String ersetzen)..Könnt ihr mir vielleicht einen Tipp geben, wie ich das Makro erweitern kann, um den String zusätzlich in den Hauptkörpern ersetzen kann?Hier ist das Makro (nicht von mir):Code:Sub traverse(Prod, origstr, newstr) set refp = Prod.ReferenceProduct if instr(refp.Name, origstr) then newpname = Replace(refp.Name, origstr, newstr) refp.Name ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Makro zur Umbenennung von Parts im Produkt erweitern
geekv5 am 13.07.2011 um 18:21 Uhr (0)
Hallo Zoltan,hat leider nicht so funktioniert, habe es jetzt als seperaten IF Block eingefügt, aber es geht trotzdem nicht Code:Sub traverse(Prod, origstr, newstr) set refp = Prod.ReferenceProduct if instr(refp.Name, origstr) then newpname = Replace(refp.Name, origstr, newstr) refp.Name = newpname end if if instr(refp.PartNumber, origstr) then newpnum = Replace(refp.PartNumber, origstr, newstr) refp.PartNumber = newpnum end if if instr(refp.Part.Mainbody.Name, origstr) then newpnum = Replace(refp.Part ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Makro zur Umbenennung von Parts im Produkt erweitern
geekv5 am 22.05.2012 um 14:19 Uhr (0)
Hallo Julian,wenn ich dich jetzt richtig verstanden habe, müsste es folgendes Script tun:Code:Sub CATMain()Set partdocument1 = CATIA.ActiveDocumentSet part1 = partdocument1.PartSet hybridBodies1 = part1.HybridBodiesFor i = 1 To hybridBodies1.Count Set hybridBody1 = hybridBodies1.Item(i) hybridBody1.Name = "Ringset" & CStr(i) For j = 1 To hybridBody1.HybridBodies.Count hybridBody1.HybridBodies.Item(j).Name = "Ring" + CStr(j) NextNextEnd SubEs werden Sets auf der ersten ebene in RingsetX umbenan ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Macro im Product ausführen
geekv5 am 25.05.2012 um 15:31 Uhr (0)
Hallo,hier meine Lösung:Code:Sub CATMain()Dim partdocument1 As PartDocumentDim part1 As PartDim selection1 As SelectionDim orderedgeometricalSets1 As OrderedGeometricalSetsDim orderedgeometricalSet1 As OrderedGeometricalSetDim adoc As DocumentOn Error Resume NextSet adoc = CATIA.ActiveDocumentIf Err.Number 0 Then Exit SubSet selection1 = adoc.Selection Select Case TypeName(adoc) Case "PartDocument" Set partdocument1 = adoc Case "ProductDocument" selection1.Search ("Part D ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Element von Part zu Part kopieren
geekv5 am 25.05.2012 um 15:49 Uhr (0)
Hm glaube ich habe mich undeutlich ausgedrückt - Im CATIA sind zwei Fenster geöffnet- Fenster1: Produkt mit QuellPart- Fenster2: ZielPart- Fenster2 ist im VordergrundActiveDocument.Selection ist ja dann die Selektion des ZielParts..Meine Idee war jetzt, dass Fenster1 in den Vordergrund zu holen, allerdings weiß ich nicht, wie ich vom QuellPart auf den Namen des Fensters komme, in dem es Steckt..BTW. das aktive Part kann man doch so feststellen:CATIA.ActiveDocument.Selection.Search ("Part Design.Teil, in")
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Ebene parallel zur Anzeige
geekv5 am 11.06.2012 um 11:08 Uhr (0)
Hallo zusammen!Möchte eine Ebene automatisiert erzeugen, welche parallel zur Anzeige liegt, also über eine Gleichung..Die Aufzeichnung hat folgenden Code ergeben, aber ich weiß nicht, wie ich die einzelnen Parameter ermittle, sodass die Ebene parallel ist..Jemand eine Idee? Wäre mMn ein sehr nützliches Feature mit einem Klick..Code:Sub CATMain()Dim partDocument1 As PartDocumentDim part1 As PartDim hybridShapeFactory1 As HybridShapeFactoryDim hybridShapePlaneEquation1 As HybridShapePlaneEquationDim bodies1 ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Ebene parallel zur Anzeige
geekv5 am 11.06.2012 um 12:34 Uhr (0)
Hallo Bernd,funktioniert wie immer einwandfrei, hier der lauffähige code:Code:Sub CATMain()Dim partDocument1 As PartDocumentDim part1 As PartDim hybridShapeFactory1 As HybridShapeFactoryDim hybridShapePlaneEquation1 As HybridShapePlaneEquationDim bodies1 As BodiesDim body1 As BodyDim viewers1 As viewersDim viewer1 As ViewerDim sight1(2)Dim adoc As DocumentOn Error Resume NextSet adoc = CATIA.ActiveDocumentIf Err.Number 0 Then Exit SubSet selection1 = adoc.Selection Select Case TypeName(adoc) Case "Par ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Array Operationen
geekv5 am 14.06.2012 um 14:16 Uhr (0)
Habe deinen Code teilweise korrigiert, allerdings nur bis zur Testausgabe:Code:Sub CATMain()----------Start im Werkzeug---------- Dim Was(0) Dim arrAS() Dim arrLocAS() Dim partdocument1 As PartDocument Dim product1 As Product Dim publications1 As Publications Was(0) = "AxisSystem" Set selection1 = CATIA.ActiveDocument.Selection selection1.Clear Auswahl = selection1.SelectElement3(Was, "Bitte Achsensystem(e) auswählen. Auswahl bestätigen über Toolbox. Abbruch mit ESC!", False, CATMultiSelTri ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Selection.search referenz
geekv5 am 15.06.2012 um 11:59 Uhr (0)
Kann man die Referenz denn so erstellen ("selektion.item(1).Reference")? Bei mir bringt er nämlich einen Fehler an der Stelle..Wenn ein PartDocument geöffnet ist, hätte ich es so gemacht:set partdocument1=CATIA.ActiveDocumentset part1=partdocument1.partset ref1=part1.CreateReferenceFromObject(Selection1.Item(1).Value)
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Win7 - Fensterproblem
geekv5 am 15.06.2012 um 15:05 Uhr (1)
Ist zwar schon etwas her, aber ich hatte das selbe Problem und hab das folgendermaßen unter Zuhilfenahme der Win32 API realisiert:Code:Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPublic Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As LongPublic Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long, ByVal ...
|
In das Form CATIA V5 Programmierung wechseln |