Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Catia V5 Drafting Macro Code for Inserting an Image 1

Status
Not open for further replies.

Markbh

Mechanical
Aug 13, 2020
5
0
0
GB
I'm currently modifying existing Catia V5 macro code, which is free with Catia, that inserts a drawing format into the background of a Catia Drawing.

The macro has been modified to insert my company's drawing format.

I'm no expert at this but have managed, by trial and error, to get the code to do what I want it to, except insert images.

I need to insert images of the company logo and third angle projection along with the format.

Has anybody out there got a piece of code that they are willing to donate that would do the job for me.

As I am no expert it would need to be self-contained, be able to be pasted into the larger macro as is and be run. Any in depth debugging is beyond me.

I have found some examples of code on the internet (examples below) and have tried to use them by creating a sub-routine around them, but, though running the macro causes no errors, no image is inserted.

For you information, macros cannot be recorded when in drafting mode.

Thanks in advance,

Mark

Set objPicture = Pictures.Add("C:\logo.bmp", GetOH() + Col(3)+ 0.75, GetOV()+ Row(2) +.75 )
objPicture.Width = objPicture.Width / 5.75
objPicture.Height = objPicture.Height / 5.75
objPicture.Name = "TitleBlock_Text_Logo"
Set objPicture = Nothing

Dim MySheet As DrawingSheet
Set MySheet = CATIA.ActiveDocument.Sheets.ActiveSheet
Dim MyView As DrawingView
Set MyView = MySheet.Views.ActiveView
Dim MyDrawingPicture1 As DrawingPicture
Set MyDrawingPicture1 = DrawingSheet.Pictures.Add("C:\logo.bmp", 100., 50.)
 
Replies continue below

Recommended for you

Hi.

This works fine:

Code:
Dim MySheet As DrawingSheet
 Set MySheet = CATIA.ActiveDocument.Sheets.ActiveSheet
 Dim MyView As DrawingView
 Set MyView = MySheet.Views.ActiveView
 Dim MyDrawingPicture1 As DrawingPicture
 Set MyDrawingPicture1 = DrawingSheet.Pictures.Add("C:\logo.bmp", 100., 50.)

Note that picture is added with respect to view's scale so it can be really small if active view has large scale.
 
Thanks LC,

It turns out that there are Catia permission issues that are blocking this functionality, so I'm chasing this up with IT.
 
There was an issue with permissions, which has been resolved.

There was also a missing line of code, which is needed to 'call' the sub-routine CATLogo, see below:

Sub CATDrw_Creation( targetSheet as CATIABase )
'-------------------------------------------------------------------------------
'How to create the FTB
'-------------------------------------------------------------------------------
If Not CATInit(targetSheet) Then Exit Sub
If CATCheckRef(1) Then Exit Sub 'To check whether a FTB exists already in the sheet
CATCreateReference 'To place on the drawing a reference point
CATFrame 'To draw the frame
CATCreateTitleBlockFrame 'To draw the geometry
CATTitleBlockText 'To fill in the title block
CATColorGeometry 'To change the geometry color
CATExit targetSheet 'To save the sketch edition
CATLogo 'TO PLACE THE LOGO
End Sub

I also adapted the code I found online to rescale the image, which I put in CATLogo:

Set objPicture = MyDrawingPicture1 'Rescales Logo
MyDrawingPicture1.Width = objPicture.Width / 4.7

Thanks everyone for your help.
 
Status
Not open for further replies.
Back
Top