- 30
- 30 683
Rolland T CAD
Romania
เข้าร่วมเมื่อ 27 มี.ค. 2020
Catia V5 - Annotation application (visual studio app)
Create automatically annotation from points/ projection / extract selection
Annotation will have the same text like selection name
#catiav5
Annotation will have the same text like selection name
#catiav5
มุมมอง: 147
วีดีโอ
Catia V5 - Axis To Axis Application (in Visual Studio)
มุมมอง 1743 หลายเดือนก่อน
This tool was created for those situation when pattern is not useful In a part we can move multiple body's in different location automatically #CatiaV5 #CatiaMacro
CATIA V5 Macro rename Parents/Children
มุมมอง 1874 หลายเดือนก่อน
CATIA V5 Macro rename Parents/Children #CatiaV5
CATIA V5 MACRO-Pre-save application
มุมมอง 25510 หลายเดือนก่อน
This macro will be use to: -hide all wireframe / surface -define in work the partbody -collapse all -center graph -put the part in *iso view #catia #catiav5 #catiav5tutorial #CatiaMacro
CATIA V5 MACRO - Manage exploded views
มุมมอง 36111 หลายเดือนก่อน
CATIA V5 MACRO - Manage exploded views easy update an exploded view with new components #catia #catiav5
CATIA V5 Macro - Visualization tool (visual studio application)
มุมมอง 30011 หลายเดือนก่อน
CATIA V5 Macro - Visualization tool (visual studio application) -get a fast normal view -rotate view along Vertical and Normal view Axis -Switch orientation / front to back -Visual studio 2022 application for Catia v5
CATIA V5 - Create simple Drawings with application ( Python3.9 )
มุมมอง 1.3K2 ปีที่แล้ว
CATIA V5 - Create simple Drawing application Build in Python 3.9 and PyQt6 #CATIAV5 #PYTHON 3.9#PYQT6
CATIA - Get text or 2D instance position related to a layout ( Python 3.9 / PyQt6 )
มุมมอง 6242 ปีที่แล้ว
Application made in Python 3.9 and PyQt6 for CATIA V5 get position of text/2D component according to a specific layout #CatiaV5 #Python3.9 #PyQt6
CATIA V5 - Create Projection Plane from drawing View with Python
มุมมอง 4.9K2 ปีที่แล้ว
CATIA V5 - Create Projection Plane with Python We will create step by step the projection plane of a selected view ( or selected views) in the 3D links Create exe file of python script Tools to be installed -Python 3 -from Pip ( pywin32, Auto-py-to-exe ) #CatiaV5 #Python3.9 #Macro
CATIA V5 Export Points Application ( with Python 3.9 and PyQt6 )
มุมมอง 2.6K2 ปีที่แล้ว
CATIA V5 Export Points Application ( with Python 3.9 / PyQt6 ) Export points from 3D to Excel or Drawing Export points from 2D to 3D part Made in Python 3.9 and PyQt6
CATIA V5 MACRO - EXPORT TO STP / PDF / TIF WITH SCRIPT OR APPLICATION
มุมมอง 4.9K3 ปีที่แล้ว
HOW TO EXPORT CATIA V5 FILES TO STP FROM A SCRIPT FILE DESCRIPTION OF FORM APPLICATION FOR CONVERT CATPARTS/CATPRODUCT/CATDRAWINGS STP/IGS/PDF/TIF
CATIA V5 DRAWING -- FORMAT TEXT MACRO TUTORIAL
มุมมอง 1.9K3 ปีที่แล้ว
How to format text with a macro in CATIA V5 drawings
Catia V5 - Tutorial - Run .EXE files and Customize Toolbars with macros
มุมมอง 1.8K3 ปีที่แล้ว
In this video we will see how to run an .EXE file from Catia V5 macro and customize Catia Toolbars with macro
CATIA V5 SAVE APPLICATION (made in Visual Studio 2019)
มุมมอง 6293 ปีที่แล้ว
Catia V5 application for saving parts/products Windows Manager application description th-cam.com/video/YodPaV-UHsA/w-d-xo.html&ab_channel=RollandTCAD
CATIA V5 - APP. FOR HANDLING PARTS OR PRODUCTS (VISUAL STUDIO 2019)
มุมมอง 3263 ปีที่แล้ว
Application made for CATIA V5 to move or set position ( rotate / translate ) for parts or products This application was made in Visual Studio 2019
CATIA V5 MACRO TUTORIAL - RESET PARTS / PRODUCTS POSITIONS
มุมมอง 1.1K3 ปีที่แล้ว
CATIA V5 MACRO TUTORIAL - RESET PARTS / PRODUCTS POSITIONS
CATIA V5 DRAWING GET PROJECTION PLANE TUTORIAL MACRO
มุมมอง 4294 ปีที่แล้ว
CATIA V5 DRAWING GET PROJECTION PLANE TUTORIAL MACRO
PART CUSTOM TOOLBAR (for CATIA V5 application Build in Visual Studio 2019)
มุมมอง 3374 ปีที่แล้ว
PART CUSTOM TOOLBAR (for CATIA V5 application Build in Visual Studio 2019)
CATIA V5 AUTOMATION WINDOWS MANAGER II build in Visual Studio 2019
มุมมอง 2984 ปีที่แล้ว
CATIA V5 AUTOMATION WINDOWS MANAGER II build in Visual Studio 2019
CATIA V5 AUTOMATION -- SECTION 3D IN PART DESIGN (build in Visual Studio 2019)
มุมมอง 4794 ปีที่แล้ว
CATIA V5 AUTOMATION SECTION 3D IN PART DESIGN (build in Visual Studio 2019)
CATIA V5 AUTOMATION TUTORIAL -- DATUM CHECK APPLICATION (step by step in VISUAL STUDIO 2019)
มุมมอง 1.2K4 ปีที่แล้ว
CATIA V5 AUTOMATION TUTORIAL DATUM CHECK APPLICATION (step by step in VISUAL STUDIO 2019)
CATIA V5 AUTOMATION -- WINDOWS MANAGER (build in Visual Studio 2019)
มุมมอง 8634 ปีที่แล้ว
CATIA V5 AUTOMATION WINDOWS MANAGER (build in Visual Studio 2019)
CATIA V5 AUTOMATION DRAWING DATUM'S CHECK (WITH VISUAL STUDIO)
มุมมอง 6224 ปีที่แล้ว
CATIA V5 AUTOMATION DRAWING DATUM'S CHECK (WITH VISUAL STUDIO)
CREATING MULTI LEVEL ASSEMBLY STRUCTURE FROM CATPART FILES (CATIA V5 AUTOMATION )
มุมมอง 7274 ปีที่แล้ว
CREATING MULTI LEVEL ASSEMBLY STRUCTURE FROM CATPART FILES (CATIA V5 AUTOMATION )
CATIA AUTOMATION SET VISIBLE BY REVISION/ STATUS/ NAME IN PRODUCT (with Notepad++ Step by Step)
มุมมอง 4544 ปีที่แล้ว
CATIA AUTOMATION SET VISIBLE BY REVISION/ STATUS/ NAME IN PRODUCT (with Notepad Step by Step)
05.CATIA TOOLBAR APPLICATION -- WORKING WITH BIG DATA (WITH VISUAL STUDIO 2019)
มุมมอง 5264 ปีที่แล้ว
05.CATIA TOOLBAR APPLICATION WORKING WITH BIG DATA (WITH VISUAL STUDIO 2019)
04.CATIA TOOLBAR APPLICATION -- CREATE WORKING BUTTONS (WITH VISUAL STUDIO 2019)
มุมมอง 1.5K4 ปีที่แล้ว
04.CATIA TOOLBAR APPLICATION CREATE WORKING BUTTONS (WITH VISUAL STUDIO 2019)
03.CATIA TOOLBAR APPLICATION - - POWER INPUTS (WITH VISUAL STUDIO 2019)
มุมมอง 6214 ปีที่แล้ว
03.CATIA TOOLBAR APPLICATION - - POWER INPUTS (WITH VISUAL STUDIO 2019)
02.CATIA TOOLBAR APPLICATION -- DEFINE LAYOUT (WITH VISUAL STUDIO 2019)
มุมมอง 5174 ปีที่แล้ว
02.CATIA TOOLBAR APPLICATION DEFINE LAYOUT (WITH VISUAL STUDIO 2019)
01.CATIA TOOLBAR APPLICATION -- INTRO (WITH VISUAL STUDIO 2019)
มุมมอง 7724 ปีที่แล้ว
01.CATIA TOOLBAR APPLICATION INTRO (WITH VISUAL STUDIO 2019)
Do you have GitHub?
can you share your code?
Follow the video, the code is explained and all visible
hello, kindly share the file with me, i am new to this and need help
hello, can you share user form application script , can you share script file to directly run. it will help a lot
So great sir
I think you store the selections somewhere else.
@@AAPEngineer yes, the selection is kept separatly fot each selection
Hello, one question: when you make the first step in the min 0:43, once all the axis have been selected, what would happen if you make a mouse click (or double click) in the 3D working space (any place where there is no geometry) before moving forward to the second step?. Would the axis selection be kept? or it is lost?...
@@AAPEngineer I can click outside and also do other comands with no issue If you look, you will see I undo 1 time and selection where kept With form application is easy to have this situation
I sometimes use this workaround if I have a feature with single Parent. After selecting the feature I envoke Parents/Children function and then through UIAutomation or WinAPI immediately click OK button to close the P/C window. After this I am left with Parent selected. It's clunky, slow, but hey, it works ;)
What are the differences between Pycaita and win32com.client?
nice work !! how you create rollets can you make one video on this?
do you have macro for this?
I have a macro for that, I will create the next video with them
Hello Rolland, I would like you in my catia macro project could you please contact me back..
Thank you, great content! :)
Inca mai ai "firmituri" in adancul sufletului cu apusurile alea de soare speciale :D
Ce apusuri :)) Deja a expirat clauza de confidentialitate, de aia le pun :)) Urmeaza sa public macro-ul de striuri ;)
First, some very good videos and tools. Could you provide the macro code?, just like you have done in other videos.
For this one, the target was to create a tutorial for this app, but I never post that one I lost the sorce code for this project ( some hdd issue ) Maybe a good ideea to explain this in anothet video
Excellent work! The idea for the next video: to implement any ideas for comparing two similar files in the likeness of dmu space analysis😅
Hello @elmundo777 Can be more specific? we will consider you have 2 files and you want a comparison, what will be the outcome? what you want to compare between them and the result report how will look? In DMU, in a product you can compare 2 parts in one command and the result is super ok
Good job, please make more videos like this!
'Autor : RollanTCad@gmail.com 'Pre-save macro Sub CatMain() set oPart = Catia.Activedocument.Part HideAll() CATIA.StartCommand("Collapse all ") oPart.InWorkObject = oPart.MainBody CATIA.StartCommand("Center Graph On Work Object ") CATIA.StartCommand("* Iso") oPart.Update End Sub Sub HideAll() set oSel = Catia.ActiveDocument.selection Reframe1() oSel.Search("t:Plane,in") HideRoutine() oSel.Clear() oSel.Search("t:Point,in") HideRoutine() oSel.Clear() oSel.Search("CatPrtSearch.AxisSystem,in") HideRoutine() oSel.Clear() oSel.Search("t:Sketch,in") HideRoutine() oSel.Clear() oSel.Search("t:Sketcher.profile,in") HideRoutine() oSel.Clear() oSel.Search("t:Sketcher.output,in") HideRoutine() oSel.Clear() oSel.Search("t:Sketcher.origin,in") HideRoutine() oSel.Clear() oSel.Search("t:Sketcher.Axis,in") HideRoutine() oSel.Search("t:Sketcher.AbsoluteAxis,in") HideRoutine() oSel.Clear() oSel.Search(" CatPrtSearch.Surface,scr") HideRoutine() oSel.Clear() oSel.Search(" CatPrtSearch.Wireframe,scr") HideRoutine() oSel.Clear() oSel.Search(" CatPrtSearch.MfConstraint,scr") HideRoutine() oSel.Search("'Part Design'.Plane.Pick=FALSE,in") HideRoutine() oSel.Search("'Part Design'.'Axis System'.Pick=FALSE,in") HideRoutine() oSel.Search("'Part Design'.Point.Pick=FALSE,in") HideRoutine() oSel.Search("'Part Design'.Line.Pick=FALSE,in") HideRoutine() oSel.Search("'Part Design'.Surface.Pick=FALSE,in") HideRoutine() oSel.Search("(((Sketcher.Projection + Sketcher.Projection) + Sketcher.Projection) + Sketcher.Projection),in") HideRoutine() oSel.Clear() Reframe1() End Sub Sub Reframe1() set Window1 = CATIA.ActiveWindow set Viewer1 = Window1.Viewers.Item(1) Viewer1.Reframe() End Sub Sub HideRoutine() Set visPropertySet1 = Catia.ActiveDocument.Selection.VisProperties VisPropertySet1.SetShow(1) CATIA.ActiveDocument.Selection.Clear() End Sub
🙈 Promo>SM
Can I take a special course with you ?
Depends on what you target
Hello. Is there any way and is it realistic to write a program that, using the dmu space analysis principle, would compare two parts in a product?
We already have a command to compare 2 parts in DMU, why a macro? With 2 slection and hit compare you have a very good result
@@rollandtcad1847 we do not have this license. we use only licensed software, so we need to create some kind of analogue... But I don't have any ideas yet how this can be implemented.
Cool ! By the way how are you learning how works with catApi ? There is so difficult to find any useful info or tutorial about it ...
Was not easy at first, but try and error You can also record the macro and start like that I hope I will start adding simple macro tutorials in the future
@@rollandtcad1847 Cool , thank you for your work )
This is Headlamp
It is a dummy reflector
Are you design Headlamps
@@Anonymous-z4m3l a few years ago I was in that field, but now not anymore
do you know how to use the rotation matrix?
Yes, you will find in automation documentation the info about the matrix
and the function library import win32com.client from sys import exit import pythoncom from win32com.client import VARIANT catia = win32com.client.Dispatch('Catia.application') #Create ListV def createRangeVertical(Format): height = None startPosition = None if Format == 'A0': height = 836 startPosition = 65.5 elif Format == 'A1': height = 589 startPosition = 42 elif Format == 'A2': height = 415 startPosition = 55 elif Format == "A3": height = 291 startPosition = 42.5 #list withou A list = "BCDEFGHJKLMNPQRSTUVWXYZ" counter = 1 #Empty Dict dict = {} #Define A range x = height - startPosition #Add A in range dict['A'] = (height,x) #For all element in list of letters for i in list: upTovalue = x-(50*counter) # check bottom limit of range ( total lenght minus 50 each time) fromValue = upTovalue + 50 #Check top limit ( bottomLImit + 50) if upTovalue >= 0 and upTovalue / 50 > 0.5: # check if remainer is greater than 0 and if after we divide with 50 it's ok for us #print (upTovalue) dict[i] = (fromValue,upTovalue) # add value to the dict if Yes else: dict[i] = (fromValue,0) # add last value 0 break counter = counter + 1 return dict #create list H def createRangeHorizontal(Format): height = None startPosition = None if Format == 'A0': height = 1184 startPosition = 44.5 elif Format == 'A1': height = 836 startPosition = 70.5 elif Format == 'A2': height = 589 startPosition = 47 elif Format == "A3": height = 413.5 startPosition = 60 #list withou A counter = 1 #Empty Dict dict = {} #Define A range #Add A in range dict[1] = (0,startPosition) #For all element in list of letters for i in range(2,26): upTovalue = startPosition + (50 * counter) # check bottom limit of range ( total lenght minus 50 each time) fromValue = upTovalue - 50 #Check top limit ( bottomLImit + 50) if upTovalue <= height and upTovalue / 50 > 0.5: # check if remainer is greater than 0 and if after we divide with 50 it's ok for us #print (upTovalue) dict[i] = (fromValue,upTovalue) # add value to the dict if Yes else: dict[i] = (fromValue,height) # add last value 0 break counter = counter + 1 return dict #Get number Horizontal def checkNUmberH(listA,checkNUmber): for key, values in listA.items(): #print(f'{key} {values[0]} {values[1]}') #if number to check smaller or = with upToValue if checkNUmber <= values[1]: if checkNUmber >= values[0]: #if number to check bigger or = with from value #here we break break return [key,values] #get number Vertical def checkNUmberV(listA,checkNUmber): for key, values in listA.items(): #print(f'{key} {values[0]} {values[1]}') if checkNUmber <= values[0]: if checkNUmber >= values[1]: break return [key,values] #get drawing format def getFormat(value): if value == 2: return "A0" elif value == 3: return "A1" elif value == 4: return "A2" elif value == 5: return "A3" else: return None
Main code import win32com.client from sys import exit from PyQt6.QtWidgets import QApplication,QWidget,QMainWindow,QMessageBox,QLabel,QPushButton,QTableWidget,QCheckBox,QLineEdit,QProgressBar from PyQt6 import uic from PyQt6.QtCore import Qt from PyQt6 import QtWidgets import Functions import collections from operator import itemgetter catia = win32com.client.Dispatch("Catia.application") class Ui(QMainWindow): def __init__(self): super().__init__() uic.loadUi('D:\\06.Python_Work\\07.Tutorial\\Drawing_CheckPosition\\CheckPosition.ui', self) #Remove tools main window self.setWindowFlags(Qt.WindowType.FramelessWindowHint) #Button close Window self.BtnClose = self.findChild(QPushButton,"Btn_Close_Window") self.BtnClose.clicked.connect(lambda: self.close()) #Button Minimize window self.Btnminimize = self.findChild(QPushButton,"Btn_MinimizeWindow") self.Btnminimize.clicked.connect(lambda: self.showMinimized()) #Label self.lblTitle = self.findChild(QLabel,"lblTitle") #CheckBox self.checkMod = self.findChild(QCheckBox,"checkMod") self.checkSpecialChr = self.findChild(QCheckBox,"checkSpecialChr") # #TableWidget self.tableData = self.findChild(QTableWidget,"tableWidget") #QlineEdit self.QlineInput = self.findChild(QLineEdit,"lineEdit") #BtnCheckMOdifications self.CheckModifications = self.findChild(QPushButton,"CheckModifications") self.CheckModifications.clicked.connect(self.runTableFill) #BtnCheckINstance self.checkInstance = self.findChild(QPushButton,"checkIntance") self.checkInstance.clicked.connect(self.runIntance) #ProgressBar self.progressBar = self.findChild(QProgressBar,"progressBar") self.checkDrw() #MOve Window self.lblTitle.mouseMoveEvent = self.mouseEvent #self.frame_4.mouseMoveEvent = self.mouseEvent self.progressBarReset() def progressBarReset(self): self.progressBar.setValue(0) def runIntance(self): self.progressBar.setValue(25) drw = catia.activedocument sheets = drw.sheets textQline = self.QlineInput.text() dataPaper = drw.sheets.activesheet.PaperSize #get Format formatDrw = Functions.getFormat(dataPaper) #Get VErtical / Horizontal Layout LettersV = Functions.createRangeVertical(formatDrw) NumbersH = Functions.createRangeHorizontal(formatDrw) if len(textQline)>0: listMod = [] #print(formatDrw) for sheet in sheets: if sheet.isDetail() == False: views = sheet.views for view in views: #print(view.name) #print(view.components.count) if view.components.count > 0: for i in range(view.components.count): #Check frameType component = view.components.item(i+1) sText = component.name #print(sText) #print(textQline.lower() in sText.lower()) if textQline.lower() in sText.lower(): #print(text.frametype) #print(view.name) if view.name in ['Main View','Background View']: #print('in') xHText = component.x yVText = component.y else: #print('not in') #print(f'Not in: {text.text}') xHText = (component.x * view.scale )+ view.x yVText = (component.y * view.scale ) + view.y xHValue = Functions.checkNUmberH(NumbersH,xHText) yVValue = Functions.checkNUmberV(LettersV,yVText) #print(f'{sText} ; {xHValue[0]} ; ; {yVValue[0]}') #dictModData[int(sText)] = [sText,xHValue[0],yVValue[0],view.name,sheet.name] listMod.append([sText,xHValue[0],yVValue[0],view.name,sheet.name]) #print(listMod) if len(listMod) > 0: self.deleteRowTable() self.checkModification(listMod) else: self.info_msg('No Match') else: self.tableData.setRowCount(1) self.info_msg('Enter Something') self.progressBar.setValue(100) def deleteRowTable(self): #self.tableData.clear() self.tableData.setRowCount(1) def runTableFill(self): self.progressBar.setValue(30) if self.checkMod.isChecked() and self.checkSpecialChr.isChecked() == False: self.deleteRowTable() listModification = self.checkDrawingText("Modification") self.checkModification(listModification) if self.checkSpecialChr.isChecked() and self.checkMod.isChecked() == False: self.deleteRowTable() listSpecial = self.checkDrawingText("SpecialChr") self.checkModification(listSpecial) if self.checkSpecialChr.isChecked() and self.checkMod.isChecked(): self.deleteRowTable() listModification = self.checkDrawingText("Modification") self.checkModification(listModification) listSpecial = self.checkDrawingText("SpecialChr") self.checkModification(listSpecial) self.progressBar.setValue(100) #Check drawing Text def checkDrawingText(self,typeEnter): drw = catia.activedocument sheets = drw.sheets dataPaper = drw.sheets.activesheet.PaperSize #get Format formatDrw = Functions.getFormat(dataPaper) #Get VErtical / Horizontal Layout LettersV = Functions.createRangeVertical(formatDrw) NumbersH = Functions.createRangeHorizontal(formatDrw) listMod = [] dictModData = {} #print(formatDrw) if typeEnter == "Modification": for sheet in sheets: if sheet.isDetail() == False: views = sheet.views for view in views: #print(view.name) texts = view.texts #print(self.GetscaleInstance(view)) if texts.count > 0: for text in texts: #Check frameType sText = text.text if len(sText) == 2 and text.frametype == 3 and text.leaders.count == 0 and sText.isnumeric() : #print(text.frametype) #print(text.text) if view.name in ['Main View','Background View']: xHText = text.x yVText = text.y else: #print(f'Not in: {text.text}') xHText = (text.x * view.scale )+ view.x yVText = (text.y * view.scale ) + view.y #print(f'{text.x} ; { text.y}') #print(f'{view.x} ; { view.y}') #print(f'{xHText} ; { yVText}') #print(yVText) xHValue = Functions.checkNUmberH(NumbersH,xHText) yVValue = Functions.checkNUmberV(LettersV,yVText) #print(f'{sText} ; {xHValue[0]} ; ; {yVValue[0]}') #dictModData[int(sText)] = [sText,xHValue[0],yVValue[0],view.name,sheet.name] listMod.append([sText,xHValue[0],yVValue[0],view.name,sheet.name]) elif typeEnter == "SpecialChr": for sheet in sheets: if sheet.isDetail() == False: views = sheet.views for view in views: #print(view.name) texts = view.texts if texts.count > 0: for text in texts: #Check frameType sText = text.text if len(sText) == 16 and text.leaders.count == 0 : #print(text.frametype) #print(text.text) if view.name in ['Main View','Background View']: xHText = text.x yVText = text.y else: #print(f'Not in: {text.text}') xHText = (text.x * view.scale) + view.x yVText = (text.y * view.scale )+ view.y xHValue = Functions.checkNUmberH(NumbersH,xHText) yVValue = Functions.checkNUmberV(LettersV,yVText) #print(f'{sText} ; {xHValue[0]} ; ; {yVValue[0]}') #dictModData[int(sText)] = [sText,xHValue[0],yVValue[0],view.name,sheet.name] listMod.append([sText,xHValue[0],yVValue[0],view.name,sheet.name]) return listMod #Fill Table def checkModification(self,listMod): if len(listMod) > 0: row = 0 listNew = sorted(listMod, key=itemgetter(0)) nrActualTable = self.tableData.rowCount() self.tableData.setRowCount(nrActualTable + len(listNew)) for item in listNew: sTextT = item[0] sNUmber = item[1] sLetter = item[2] sView = item[3] sSheet = item[4] #print(sTextT) position = str(sNUmber) + " " + sLetter #print(f'{sTextT} : {sNUmber} : {sLetter}') self.tableData.setItem(row + nrActualTable ,0,QtWidgets.QTableWidgetItem(sTextT)) self.tableData.setItem(row + nrActualTable,1,QtWidgets.QTableWidgetItem(position)) self.tableData.setItem(row+ nrActualTable,2,QtWidgets.QTableWidgetItem(sView)) self.tableData.setItem(row + nrActualTable,3,QtWidgets.QTableWidgetItem(sSheet)) row = row + 1 #Method to check drawing def checkDrw(self): if ".CATDrawing" not in catia.activedocument.name: self.info_msg("Drawing not Open Or multiple catia sesion open") exit() #Method For MEssage def info_msg(self,message): QMessageBox.information(self, "Information", message) #Move window data def mousePressEvent(self,event): self.oldPosition = event.globalPosition() #MOve window data def mouseEvent(self,event): globalP = event.globalPosition() OldP = self.oldPosition resultX = globalP.x() - OldP.x() reultY = globalP.y() - OldP.y() self.move(int(self.x()) + int(resultX), int(self.y()) + int(reultY)) self.oldPosition = event.globalPosition() #scaleView def GetscaleInstance(self,oActiveView): if oActiveView.scale == 1/1: return 1 elif oActiveView.scale == 1/2: return 2 elif oActiveView.scale == 1/4: return 4 elif oActiveView.scale == 1/10: return 10 elif oActiveView.scale == 2/1: return 1/2 elif oActiveView.scale == 4/1: return 1/4 elif oActiveView.scale == 10/1: return 1/10 else: return 1 if __name__ == "__main__": app = QApplication([]) window = Ui() window.show() app.exec()
Very good Congratulations! Could you provide the code?
just add a comment to this video with the application code
Hi sir, how to contact you?
Hello William, via email rollandtcad@gmail.com
hi, I success to create windows list, but I can not select the windows list highlight like your operation, could you help me ? thank you
Hi Rolland, how are you? Your materials are quite hard to find among all the other garbage on TH-cam, but very impressive and helpful. I am mechanical engineer, not a programmer, but during last years I started developing big amounts of macros and libraries in VBA for Catia. I think I am ready now to transition into more serious environment and I would like to try programming something in Visual Basic, as I stumble on more and more limitations in VBA. I have a preliminary question though. How do you even start macros written in VB/VS in CATIA? What comes to my mind, is to compile VB program into .exe file, and then run .CATScrupt using 'CATIA.SystemService.ExecuteBackGroundProcessus()' command to run the previously compiled .exe. Is this the way to go? Or are there better ways? I would appreciate any help. During my search in YT, I think you are the only person showing real coding for Catia in VB.
Hello and thank you for your feedback, I put aside the catia macro tutorials for a while, maybe I will continue with some practical examples Yes, in the same way I call the exe file
Hello Mr. Rolland your video is incredeble yseful ! Now I'm trying to do a quite simular app for Catia using Python, but I cant find any information how merge Catia with Pithon , how did you do that ? Were I can find info ? Can I contact with you ? Thank you a lot !
You will find some some general information online, also I have made some videos with some explanations The method in python is the same, but of course you need to use python methodology / for support use the Catia Automation file and start with simple apps
@@rollandtcad1847 Thank you for advice ! Also , I would like to contact you by your chanel's e-mail, if you agree and have a little bit free time of course , because I don't have anyone who can answer me on some question to write automation code ... With best rewards !
@@defaultuser3440 yes, you can write me on rollandtcad@gmail.com
@@rollandtcad1847 Thank you , have a good day !
"Expected End" at the end of code. Can you please explain how to deal with that? And thank you very much for good macro!
Maybe you forgot to set end sub for main function The code from the video is working, so you can check line by line
Very inspired,thanks!
Hi, Rolland I wrote Python code to use export_data export .pdf,.dxf. I fond that can not export only Sheet.1. Can you help me solve this problem? For my solution,I use python os library to delete the sheets which I don’t want.
Hi Rolland can you please help me to learn all this things?
Nice video... I also want to learn catia automation so should learn c#, python or VBS? Which is more user friendly?
for Catia you should start with VBS I switch to python to test how is working with catia, and is ok and a lot of free documentation, but a lot of errors regarding connection between catia-python are very hard to find For nest step you should try Visual studio
I am making a code about Section of Catia, want to extract the sections. I made the sections. I faced a problem to extract the section. Is there any way to save the section?? I want to save these section as igs file.
With section I didn't work, but you can check the documentation file to see what are the options file is named:"V5Automation.chm" check in the installation folder ("\code\bin")
Hi, where can I find this job?
Python ♡♡♡
how about 3de v6 version? there is no API( called ExportData ) in CATIA VBA to export model to stp/pdf
Sorry I didn't understand the question
What if multi level geoset, will each geoset name come
This will select all points in the selected geometrical set, if you have multiple geometrical sets, all points will be added
I want to learn in python with CATIA... Shall you take a class?
Hello Rolland! I made my own coding and I got a problem. So I started looking for a solution and I thought you had it BUT! You have the same problem like me. The documents with names with DOTS in the middle, will export without the extension document (.pdf or .stp or .igs etc.) Could you know how to solve this?
Hello Mauricio I've noticed that, In my case it was simple I have replaced the dot with a space character ( the dot of the extension will remain )
Wow.. i was looking for this content everywhere.. Finally found something promising. btw really good explanation. Nice job. I just wanna learn more about this Catia automation with python. I would really appreciate if you can help me with resources for learning these. Thank you..
Did you get the information
Hey Rolland ! Good job on your python catia macro. I am just wondering how you manage to add catia window to QT window . Or is it just an image file which we are seeing in QT ? Thank you :)
Hello Kaan, it's a print screen, image will be added inside QT
Good tool and video!
Hello, I have this simple code, it doesn't work. Do you know why? Option Explicit On Imports INFITF Imports MECMOD Imports PARTITF Public Class Form1 Public myCATIA As Application Public objPartDoc As PartDocument Public objPart As Part Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click myCATIA = GetObject(, "CATIA.Application") objPartDoc = myCATIA.ActiveDocument objPart = objPartDoc.Part objPart.Name = "any name" (this line is highlighted as an error) End Sub End Class
Do you want the change the name for the active document? I didn't change names in this context, only when I save with new name
Hi are you able to share the VBA file with me I would like to implement it into a PLM system
Please add more videos related to CATIA customization so that it helps many beginners like me
let me know i will
line 14 error ' missing. I am just correcting the code below - all credit to original code Writer. 'code start Sub Catmain() Set oDoc = Catia.Documents Set oSel = Catia.ActiveDocument.Selection checkname = Catia.ActiveDocument.FullName 'Check if CATProduct is Open '============================== If Right(checkname,11 ) <> ".CATProduct" then msgbox "Not a CATProduct",64,"Macro" exit sub end if '=================================== 'Select Parts / Product '================================ 'Dim Bodyselsection As Object Dim InputObjectType(0) InputObjectType(0) = "Product" Bodyselsection = oSel.SelectElement3(InputObjectType, "Select Part or Product", True, 2, False) If Bodyselsection = "Cancel" Then Exit Sub End If '============================================ Dim oAxisComponentsArray(11) Dim arrayx(11) '' reset position ''============================================ If oSel.Count <> 0 Then For i = 1 To oSel.Count Set oProd = Catia.ActiveDocument.product Set oPart = oProd.Products.Item(oSel.Item(i).Value.name) oPart.Position.GetComponents(oAxisComponentsArray) Set Move1 = oPart.Move Set Move1 = move1.MovableObject arrayx(0) = 1 arrayx(1) = 0 arrayx(2) = 0 arrayx(3) = 0 arrayx(4) = 1 arrayx(5) = 0 arrayx(6) = 0 arrayx(7) = 0 arrayx(8) = 1 arrayx(9) = 0 arrayx(10) = 0 arrayx(11) = 0 oPart.Position.SetComponents(arrayx) Erase oAxisComponentsArray Erase arrayx Next End If End Sub 'Code end
What programing language is use in macros.where can I learn macros programming language.
Looks Good and interesting with the app, But it is possible to explain us how the app has been created ??
You can watch the example of Catia toolbar tutorial, the same idea for creating application from visual Studio The working code is like the script described