Đang tải...

Catia Macro Trong Catia

Thảo luận trong 'Phần mềm kỹ thuật' bắt đầu bởi vinamech, 15/1/12.

Thành viên đang xem bài viết (Users: 0, Guests: 0)

  1. vinamech
    Offline

    Tài xế O-H
    Expand Collapse

    Tham gia ngày:
    6/2/10
    Số km:
    819
    Được đổ xăng:
    52
    Mã lực:
    51
    Xăng dự trữ:
    399 lít xăng
    [TABLE="class: tborder, width: 100%, align: center"]
    [TR]
    [TD="class: alt1, bgcolor: #D9E4EF"]Các bạn nghịch Catia chắc có nghe nhắc đến khái niệm Automation Design (Thiết kế tự động). Theo cách đơn giản thì các bạn có thể hiểu là mình dùng các code (của các ngôn ngữ lập trình) để vẽ sản phẩm (Hặc là làm một công việc gì đó khác như mô phỏng hay lắp ghép…). Code ở đây có thể:

    - Tự tay bạn viết.
    - Tạo ra nhờ chức năng ghi Macro của Catia

    Với khái niệm Automation Design, bạn đang đến với cái gọi là API.

    Thực ra, phần mềm cung cấp khá đầy đủ các công cụ để bạn có thể xây dựng mô hình (hay làm một việc gì đó), vậy thì tại sao lại phải dùng các Code để vẽ làm gì. Vi dụ đơn giản thế này. Bạn đang làm việc cho một công ty thiết kế đồ gá và hàng ngày bạn phải vẽ rất nhiều các chốt tì khác nhau. Nếu trong thư viện của Catia có các chốt tì thì tốt nhưng thực tế là không có. Vậy là bạn phải vẽ từng cái với kích thước khác nhau. Như thế cũng được nhưng sẽ mất rất nhiều thời gian. Bây giờ bạn viết chương trình để tạo ra cái chốt tì, mỗi khi bạn thực hiện công việc thì bạn chỉ cần nhập một số kích thước cơ bản thế là phần mềm tự cho bạn 1 cái chốt tì như ý. Sẽ nhanh hơn rất nhiều công việc nhàm chán là cứ phải vẽ di vẽ lại.
    Thực tế thì còn vô cùng nhiều những ứng dụng khác nữa.

    Bài viết này mình xin giới thiệu những gì gọi là sơ khai của API trên Catia (Catia Automation) với mục đích duy nhất là giới thiệu cho các bạn, những người qua tâm biết thêm một mảng ứng dụng nữa và biết đâu, sau này nó sẽ là tiền đề để các bạn dấn thân và tạo ra những cái vĩ đại hơn (có thể lắm).

    Để làm được như những gì mình sẽ làm dưới đây thì ngoài biết sử dụng cơ bản phần mềm Catia thì bạn phải biết thêm một chút về Visual Basic (VB) hay Visual Script (VBS). Mình sẽ làm trên VBS. Tuy nhiên nếu bạn chưa biết gì về VB hay VBS thì cũng không sao, cứ làm theo hướng dẫn phía dưới thì chăc chắn sẽ chạy ngon.

    Trước khi vào nội dung chính, mình nói qua thế này. Chương trình của mình xây dựng một khối trụ tròn (có bán kính và chiều dài được nhập vào từ người vẽ). Sau đó mình sẽ chỉnh sủa chương trình để tạo thêm 1 cái lỗ. Chương trình này cũng được viết để bạn có thể chọn mặt phẳng vẽ phác khi thực hiện.

    Mình thường thích mọi thứ cụ thể nên mình nói tóm tắt các công việc chính:

    Phần 1: Ghi chương trình bằng Macro để tạo ra code khung.


    Phần 2: Chỉnh sửa để thêm các tính năng khác như: Nhập số liệu từ bên ngoài, chọn mặt phẳng vẽ phác.


    Phần 3: Tạo 1 thanh công cụ mới và công cụ mới để chạy chương trình. Có nghĩa là chúng ta sẽ tạo thêm 1 công cụ mới trên phần mềm Catia.

    Chúng ta bắt đầu. Để không mắc phải lỗi khi chạy, các bạn làm đúng những hướng dẫn sau:

    Phần 1: Ghi chương trình bằng Macro Recorder





    Trong Macro Libraries bạn để nguyên như mặc định nhé. Tiếp tục


    Chúng ta bắt đầu ghi Macro
    Tạo một Part mới




    Vậy là những gì chúng ta vừa làm đã được ghi lại rồi

    Bây giờ chúng ta sẽ chạy lại. Catia sẽ chạy code và tự vẽ cho ta một chi tiết giống hệt ta vừa vẽ



    [/TD]
    [/TR]
    [/TABLE]
    [TABLE="class: tborder, width: 100%, align: center"]
    [TR]
    [TD="class: alt2, bgcolor: #F0F5F8"][/TD]
    [/TR]
    [/TABLE]
    [TABLE="class: tborder, width: 100%, align: center"]
    [TR]
    [TD="class: alt1, bgcolor: #D9E4EF"]Phần 2: Sửa Code

    Vậy là thao tác ghi Code đã xong. Giờ ta sẽ chế lại code một chút cho vui.







    Bây giờ ta bắt đầu chế nhé




    Nếu làm vậy thì khi chạy, sẽ hiện ra cái này



    Tiếp tục chỉnh sủa



    Nều bạn chạy, nó hiện ra cái hộp để ta nhập kích thước



    Tiếp tục chỉnh sủa nào






    Toàn bộ vệc sủa đã xong, bây giờ bạn lưu lại, thoát rồi chạy chương trình để ngắm thành quả








    Bây giờ ta tiếp tục chỉnh sủa để thêm các chức năng mới. Ở đây là thêm cái lỗ cho khối trụ này





    Và lưu lại rồi thử chạy xem nào[/TD]
    [/TR]
    [/TABLE]

    theo hauonline


    ---------- Post added at 09:08 AM ---------- Previous post was at 09:03 AM ----------










    Bây giờ lại tiếp tục thêm chức nằng mới: Chọn mặt vẽ phác. Như lúc vẽ, ta chọn mặt XY để vẽ. Nhưng bây giờ ta sửa code để có thể chọn những mặt khác (Như ZX hay YZ chẳng hạn).



    Kết quả đây










    Phần 3: Tạo thanh công cụ mới và công cụ mới


    Mối khi bạn chạy chương trình để tạo ra 1 chi tiết mới bạn phải vào Run để chạy. Bây giờ mình hướng dẫn bạn tạo ra nút công cụ để mỗi khi bạn Click vào nút này, chương trình sẽ chạy. Như vậy có nghĩa là ta đã tạo ra 1 công cụ mới.

    Bạn click chuột phải vào 1 thanh công cụ để hiện ra cái menu và chọn như hình







    Chúng ta thử lại nào:

    ---------- Post added at 09:10 AM ---------- Previous post was at 09:08 AM ----------








    Đây chỉ là những gì cơ bản nhất. Nếu bạn thích và thấy có ích thì hoàn toàn có thể tự tìm hiểu. Mình nghĩ nếu bạn chăm chỉ thì chẳng mấy mà bạn sẽ làm được những thứ thật khó có thể tưởng tượng ra.

    Đây là toàn bộ Code

    Language="VBSCRIPT"

    Sub CATMain()

    Dim documents1 As Documents
    Set documents1 = CATIA.Documents

    Msgbox "Chào mừng các bạn đến với 4CHaUI"

    Dim partDocument1 As Document
    Set partDocument1 = documents1.Add("Part")

    Dim part1 As Part
    Set part1 = partDocument1.Part

    Dim BK as single 'BK có nghĩa là Bán kính
    Dim CD as single 'CD có nghĩa là Chiều dài

    BK = Inputbox ("Bạn hãy nhập bán kính")
    CD = Inputbox ( "Bạn hãy nhập chiều dài")

    Dim kieuchitiet as single
    Dim BK2 as single
    kieuchitiet = Inputbox ("Bạn có muốn tạo lỗ không? Nếu muốn hãy nhập 1, nếu không hãy nhập 0")
    If kieuchitiet = 1 then
    BK2 = Inputbox ("Hãy nhập bán kính lỗ")
    Elseif kieuchitiet = 0 then
    BK2 = 0
    end if


    Dim bodies1 As Bodies
    Set bodies1 = part1.Bodies

    Dim body1 As Body
    Set body1 = bodies1.Item("PartBody")

    Dim sketches1 As Sketches
    Set sketches1 = body1.Sketches

    Dim originElements1 As OriginElements
    Set originElements1 = part1.OriginElements

    Dim reference1 As AnyObject

    Select case inputbox ("Bạn hãy chọn mặt phẳng vẽ phác. Nhập XY hoặc YZ hặc ZX bằng chữ hoa")

    Case "XY"

    Set reference1 = originElements1.PlaneXY

    Case "YZ"

    Set reference1 = originElements1.PlaneYZ

    Case "ZX"

    Set reference1 = originElements1.PlaneZX

    End select

    Dim sketch1 As Sketch
    Set sketch1 = sketches1.Add(reference1)

    part1.InWorkObject = sketch1

    Dim factory2D1 As Factory2D
    Set factory2D1 = sketch1.OpenEdition()

    Dim geometricElements1 As GeometricElements
    Set geometricElements1 = sketch1.GeometricElements

    Dim axis2D1 As GeometricElement
    Set axis2D1 = geometricElements1.Item("AbsoluteAxis")

    Dim line2D1 As CATBaseDispatch
    Set line2D1 = axis2D1.GetItem("HDirection")

    line2D1.ReportName = 1

    Dim line2D2 As CATBaseDispatch
    Set line2D2 = axis2D1.GetItem("VDirection")

    line2D2.ReportName = 2

    Dim circle2D1 As Circle2D

    Set circle2D1 = factory2D1.CreateClosedCircle(0.000000, 0.000000, BK)

    Set circle2D2 = factory2D1.CreateClosedCircle(0.000000, 0.000000, BK2)

    Dim point2D1 As CATBaseDispatch
    Set point2D1 = axis2D1.GetItem("Origin")

    circle2D1.CenterPoint = point2D1

    circle2D1.ReportName = 3

    sketch1.CloseEdition

    part1.InWorkObject = body1

    part1.Update

    part1.InWorkObject = body1

    Dim shapeFactory1 As Factory
    Set shapeFactory1 = part1.ShapeFactory

    Dim pad1 As Pad
    Set pad1 = shapeFactory1.AddNewPad(sketch1, CD)

    part1.Update

    End Sub

    toàn bộ nguồn bài viết theo bùi quy tan diễn đàn hauionline
     

Chia sẻ trang này