Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Catia Macro Change Units

Catia Macro Change Units

Catia Macro Change Units

Catia Macro to Change Dimensions Automatically

i want to create a macro to change dimension from any unity to any unit (Like mm to m or mm to cm)

i can select dimension and change visProperties and one dimension but how do i change the unit of several dimensions

here is the macro

Option Explicit

Sub CATMain()

Dim draDoc As DrawingDocument
Set draDoc = CATIA.ActiveDocument

Dim draSheets As DrawingSheets
Set draSheets = draDoc.Sheets

Dim drawDheet As DrawingSheet
Set drawDheet = draSheets.Item("Sheet.1")

Dim views As DrawingViews
Set views = drawDheet.views

Dim draDimensions As DrawingDimensions
Set draDimensions = views.Item("Front view")

Dim oSel As Selection
Set oSel = CATIA.ActiveDocument.Selection


oSel.Search ("Drafting.Dimension,all")
MsgBox oSel.Count

End Sub

RE: Catia Macro Change Units

Here is my vb.net code to do this. Has been pretty robust so far. I'm sure you could easily adapt it to change other units as well.

Sub unitToggle()
Dim knowledgeSheetSettingAtt1 As KnowledgewareTypeLib.KnowledgeSheetSettingAtt
Dim settingControllers1 As INFITF.SettingControllers
Dim unitsSheetSettingAtt1 As KnowledgewareTypeLib.UnitsSheetSettingAtt
Dim setUnitType As String
Dim unitType As String = ""
Dim double1 As Double
Dim double2 As Double

settingControllers1 = MainForm.CATIA.SettingControllers
unitsSheetSettingAtt1 = settingControllers1.Item("CATLieUnitsSheetSettingCtrl")

unitsSheetSettingAtt1.GetMagnitudeValues("LENGTH", unitType, double1, double2)

If unitType = "Inch" Then
setUnitType = "Millimeter"
setUnitType = "Inch"
End If

unitsSheetSettingAtt1.SetMagnitudeValues("LENGTH", setUnitType, 4, 3)

knowledgeSheetSettingAtt1 = settingControllers1.Item("CATLieKnowledgeSheetSettingCtrl")

End Sub

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members! Already a Member? Login


eBook - Functional Prototyping Using Metal 3D Printing
Functional prototypes are a key step in product development – they give engineers a chance to test new ideas and designs while also revealing how the product will stand up to real-world use. And when it comes to functional prototypes, 3D printing is rewriting the rules of what’s possible. Download Now

Close Box

Join Eng-Tips® Today!

Join your peers on the Internet's largest technical engineering professional community.
It's easy to join and it's free.

Here's Why Members Love Eng-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close