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 http://i552.photobucket.com/albums/jj340/vivalove911/Tuan_002.jpg http://i552.photobucket.com/albums/jj340/vivalove911/Tuan_005.jpg Trong Macro Libraries bạn để nguyên như mặc định nhé. Tiếp tục http://i552.photobucket.com/albums/jj340/vivalove911/Tuan_006.jpg Chúng ta bắt đầu ghi Macro Tạo một Part mới http://i552.photobucket.com/albums/jj340/vivalove911/Tuan_007.jpg http://i552.photobucket.com/albums/jj340/vivalove911/Tuan_008.jpg http://i552.photobucket.com/albums/jj340/vivalove911/Tuan_009.jpg http://i552.photobucket.com/albums/jj340/vivalove911/Tuan_010.jpg 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ẽ http://i552.photobucket.com/albums/jj340/vivalove911/Tuan_011.jpg http://i552.photobucket.com/albums/jj340/vivalove911/Tuan_012.jpg http://hauionline.com/fcvn1/buttons/quote.gif |
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