Rolland T CAD
Rolland T CAD
  • 30
  • 30 683
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
มุมมอง: 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)

ความคิดเห็น

  • @猪猪猪oovoo
    @猪猪猪oovoo หลายเดือนก่อน

    Do you have GitHub?

  • @猪猪猪oovoo
    @猪猪猪oovoo หลายเดือนก่อน

    can you share your code?

    • @rollandtcad1847
      @rollandtcad1847 หลายเดือนก่อน

      Follow the video, the code is explained and all visible

  • @muhammadahmar7568
    @muhammadahmar7568 2 หลายเดือนก่อน

    hello, kindly share the file with me, i am new to this and need help

  • @muhammadahmar7568
    @muhammadahmar7568 2 หลายเดือนก่อน

    hello, can you share user form application script , can you share script file to directly run. it will help a lot

  • @cadcaetutorial2039
    @cadcaetutorial2039 3 หลายเดือนก่อน

    So great sir

  • @AAPEngineer
    @AAPEngineer 3 หลายเดือนก่อน

    I think you store the selections somewhere else.

    • @rollandtcad1847
      @rollandtcad1847 3 หลายเดือนก่อน

      @@AAPEngineer yes, the selection is kept separatly fot each selection

  • @AAPEngineer
    @AAPEngineer 3 หลายเดือนก่อน

    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?...

    • @rollandtcad1847
      @rollandtcad1847 3 หลายเดือนก่อน

      @@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

  • @HighWindd87
    @HighWindd87 4 หลายเดือนก่อน

    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 ;)

  • @Alan_Xu
    @Alan_Xu 6 หลายเดือนก่อน

    What are the differences between Pycaita and win32com.client?

  • @anuj.saxena
    @anuj.saxena 7 หลายเดือนก่อน

    nice work !! how you create rollets can you make one video on this?

    • @anuj.saxena
      @anuj.saxena 7 หลายเดือนก่อน

      do you have macro for this?

    • @rollandtcad1847
      @rollandtcad1847 7 หลายเดือนก่อน

      I have a macro for that, I will create the next video with them

  • @alex-f2u6l
    @alex-f2u6l 8 หลายเดือนก่อน

    Hello Rolland, I would like you in my catia macro project could you please contact me back..

  • @richardcsordas2768
    @richardcsordas2768 9 หลายเดือนก่อน

    Thank you, great content! :)

  • @marciafg88
    @marciafg88 10 หลายเดือนก่อน

    Inca mai ai "firmituri" in adancul sufletului cu apusurile alea de soare speciale :D

    • @rollandtcad1847
      @rollandtcad1847 10 หลายเดือนก่อน

      Ce apusuri :)) Deja a expirat clauza de confidentialitate, de aia le pun :)) Urmeaza sa public macro-ul de striuri ;)

  • @ArtemisaAguirrebeñaOlmo
    @ArtemisaAguirrebeñaOlmo 10 หลายเดือนก่อน

    First, some very good videos and tools. Could you provide the macro code?, just like you have done in other videos.

    • @rollandtcad1847
      @rollandtcad1847 10 หลายเดือนก่อน

      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

  • @elmundo777
    @elmundo777 10 หลายเดือนก่อน

    Excellent work! The idea for the next video: to implement any ideas for comparing two similar files in the likeness of dmu space analysis😅

    • @rollandtcad1847
      @rollandtcad1847 10 หลายเดือนก่อน

      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

  • @defend_23
    @defend_23 10 หลายเดือนก่อน

    Good job, please make more videos like this!

  • @rollandtcad1847
    @rollandtcad1847 10 หลายเดือนก่อน

    '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

  • @terriblankenship6691
    @terriblankenship6691 10 หลายเดือนก่อน

    🙈 Promo>SM

  • @gonzalezcamachokennethaaro3355
    @gonzalezcamachokennethaaro3355 11 หลายเดือนก่อน

    Can I take a special course with you ?

    • @rollandtcad1847
      @rollandtcad1847 11 หลายเดือนก่อน

      Depends on what you target

  • @elmundo777
    @elmundo777 11 หลายเดือนก่อน

    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?

    • @rollandtcad1847
      @rollandtcad1847 11 หลายเดือนก่อน

      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

    • @elmundo777
      @elmundo777 11 หลายเดือนก่อน

      @@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.

  • @defaultuser3440
    @defaultuser3440 11 หลายเดือนก่อน

    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 ...

    • @rollandtcad1847
      @rollandtcad1847 11 หลายเดือนก่อน

      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

    • @defaultuser3440
      @defaultuser3440 11 หลายเดือนก่อน

      @@rollandtcad1847 Cool , thank you for your work )

  • @Anonymous-z4m3l
    @Anonymous-z4m3l ปีที่แล้ว

    This is Headlamp

    • @rollykid
      @rollykid ปีที่แล้ว

      It is a dummy reflector

    • @Anonymous-z4m3l
      @Anonymous-z4m3l ปีที่แล้ว

      Are you design Headlamps

    • @rollykid
      @rollykid ปีที่แล้ว

      @@Anonymous-z4m3l a few years ago I was in that field, but now not anymore

  • @rickakees4397
    @rickakees4397 ปีที่แล้ว

    do you know how to use the rotation matrix?

    • @rollandtcad1847
      @rollandtcad1847 ปีที่แล้ว

      Yes, you will find in automation documentation the info about the matrix

  • @rollandtcad1847
    @rollandtcad1847 ปีที่แล้ว

    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

  • @rollandtcad1847
    @rollandtcad1847 ปีที่แล้ว

    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()

  • @paulosergiogoncalves688
    @paulosergiogoncalves688 ปีที่แล้ว

    Very good Congratulations! Could you provide the code?

    • @rollandtcad1847
      @rollandtcad1847 ปีที่แล้ว

      just add a comment to this video with the application code

  • @vsc_12
    @vsc_12 ปีที่แล้ว

    Hi sir, how to contact you?

    • @rollandtcad1847
      @rollandtcad1847 ปีที่แล้ว

      Hello William, via email rollandtcad@gmail.com

  • @王飞-w1y
    @王飞-w1y ปีที่แล้ว

    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

  • @HighWindd87
    @HighWindd87 ปีที่แล้ว

    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.

    • @rollandtcad1847
      @rollandtcad1847 ปีที่แล้ว

      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

  • @defaultuser3440
    @defaultuser3440 ปีที่แล้ว

    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 !

    • @rollandtcad1847
      @rollandtcad1847 ปีที่แล้ว

      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

    • @defaultuser3440
      @defaultuser3440 ปีที่แล้ว

      ​@@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 !

    • @rollandtcad1847
      @rollandtcad1847 ปีที่แล้ว

      @@defaultuser3440 yes, you can write me on rollandtcad@gmail.com

    • @defaultuser3440
      @defaultuser3440 ปีที่แล้ว

      @@rollandtcad1847 Thank you , have a good day !

  • @scuter97
    @scuter97 ปีที่แล้ว

    "Expected End" at the end of code. Can you please explain how to deal with that? And thank you very much for good macro!

    • @rollandtcad1847
      @rollandtcad1847 ปีที่แล้ว

      Maybe you forgot to set end sub for main function The code from the video is working, so you can check line by line

  • @raymondro5756
    @raymondro5756 ปีที่แล้ว

    Very inspired,thanks!

  • @manop919
    @manop919 2 ปีที่แล้ว

    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.

  • @amrit5616
    @amrit5616 2 ปีที่แล้ว

    Hi Rolland can you please help me to learn all this things?

  • @jsy3710
    @jsy3710 2 ปีที่แล้ว

    Nice video... I also want to learn catia automation so should learn c#, python or VBS? Which is more user friendly?

    • @rollandtcad1847
      @rollandtcad1847 2 ปีที่แล้ว

      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

  • @craft9885
    @craft9885 2 ปีที่แล้ว

    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.

    • @rollandtcad1847
      @rollandtcad1847 2 ปีที่แล้ว

      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")

  • @nacho1126
    @nacho1126 2 ปีที่แล้ว

    Hi, where can I find this job?

  • @franzg.trujillanoch.8912
    @franzg.trujillanoch.8912 2 ปีที่แล้ว

    Python ♡♡♡

  • @yuanallen8526
    @yuanallen8526 2 ปีที่แล้ว

    how about 3de v6 version? there is no API( called ExportData ) in CATIA VBA to export model to stp/pdf

    • @rollandtcad1847
      @rollandtcad1847 2 ปีที่แล้ว

      Sorry I didn't understand the question

  • @johnwasserplatz167
    @johnwasserplatz167 2 ปีที่แล้ว

    What if multi level geoset, will each geoset name come

    • @rollandtcad1847
      @rollandtcad1847 2 ปีที่แล้ว

      This will select all points in the selected geometrical set, if you have multiple geometrical sets, all points will be added

    • @abdulsamath2039
      @abdulsamath2039 2 ปีที่แล้ว

      I want to learn in python with CATIA... Shall you take a class?

  • @mauricioruano
    @mauricioruano 2 ปีที่แล้ว

    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?

    • @rollandtcad1847
      @rollandtcad1847 2 ปีที่แล้ว

      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 )

  • @jason_vegas5304
    @jason_vegas5304 2 ปีที่แล้ว

    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..

  • @kaankaracan6362
    @kaankaracan6362 2 ปีที่แล้ว

    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 :)

    • @rollandtcad1847
      @rollandtcad1847 2 ปีที่แล้ว

      Hello Kaan, it's a print screen, image will be added inside QT

  • @elmundo777
    @elmundo777 2 ปีที่แล้ว

    Good tool and video!

  • @AAPEngineer
    @AAPEngineer 3 ปีที่แล้ว

    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

    • @rollykid
      @rollykid 3 ปีที่แล้ว

      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

  • @RandomlyRandomShorts
    @RandomlyRandomShorts 3 ปีที่แล้ว

    Hi are you able to share the VBA file with me I would like to implement it into a PLM system

  • @bhuvaneshwaripatil9269
    @bhuvaneshwaripatil9269 3 ปีที่แล้ว

    Please add more videos related to CATIA customization so that it helps many beginners like me

  • @publicinterest2532
    @publicinterest2532 3 ปีที่แล้ว

    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

  • @dhrubap-jq6ys
    @dhrubap-jq6ys 3 ปีที่แล้ว

    What programing language is use in macros.where can I learn macros programming language.

  • @naveen4154
    @naveen4154 3 ปีที่แล้ว

    Looks Good and interesting with the app, But it is possible to explain us how the app has been created ??

    • @rollandtcad1847
      @rollandtcad1847 3 ปีที่แล้ว

      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