Kỷ yếu hội nghị khoa học công nghệ toàn quốc khí - Lần thứ IV ĐƠN GIẢN HÓA NHỮNG MẶT CONG TRONG MÔ HÌNH B-REP SMALL FILLET SUPPRESSION IN THE B-REP MODEL ThS Huỳnh Thanh Thưởng1a, TS Nguyễn Văn Cương1b* Trường Đại học Cần Thơ a thanhthuong@ctu.edu.vn; bnvcuong@ctu.edu.vn TÓM TẮT Thiết kế kỹ thuật có trợ giúp máy tính (Computer Aided Engineering - CAE) sử dụng rộng rãi mô trình sản xuất, đặc biệt với mô dòng chảy nhựa khuôn, tính toán bền biến dạng vật thể Trong giai đoạn tiền xử lý CAE, phân tích phần tử hữu hạn hoạt động quan trọng, thiếu, nhiều khó khăn nhiều thời gian Chất lượng phần tử hữu hạn bị ảnh hưởng nhiều yếu tố khác nhau, đặc biệt tồn nhiều mặt cong nhỏ (fillets/blend faces) mô hình Brep (boundary representation) Khi mặt cong có kích thước nhỏ kích thước phần tử hữu hạn, xuất nhiều phần tử không mong muốn, làm tăng thời gian tính toán, giảm tính xác mô Nghiên cứu trình bày thuật toán để đơn giản hóa mặt cong nhỏ tồn mô hình B-rep, nhằm cải thiện tính xác trình phân tích phần tử hữu hạn Thuật toán thực lập trình C++ với ứng dụng mở NURBS, kết hợp phần mềm thiết kế 3D Rhino, gồm ba hoạt động: (1) tạo phần tử hình học để thay mặt cong nhỏ, (2) thêm phần tử vào mô hình Brep, (3) xóa bỏ mặt cong nhỏ xây dựng lại mô hình B-rep Kết nghiên cứu cho thấy giải thuật ứng dụng thành công việc loại bỏ mặt cong nhỏ (fillets) khỏi mô hình B-rep hầu hết trường hợp Các mô hình B-rep đảm bảo tính xác mô phân tích phần tử hữu hạn Nghiên cứu cho thấy ứng dụng khả thi thuật toán việc cải thiện chất lượng tạo lưới mặt, lưới khối mô hình B-rep Từ khóa: đơn giản hóa mô hình, đơn giản hóa mặt cong, thuật toán đơn giản hóa mặt cong ABSTRACT CAE (Computer Aided Engineering) analysis is a common tool to replace physical test It often employs the Finite Element (FE) method to analyze and simulate the product design In finite element method of CAE analysis, mesh generation is an indispensable operation But, one of the problems found in going from CAD to CAE is that CAD models often feature a large number of faces, and many of them are much smaller than the desired finite element size Specially, the appearing and existing of small blend faces on a CAD model affects the quality of analysis It not only increases the analysis time but also produces poor simulation results Hence, small blend face simplification on CAD models for mesh generation is essential to improve the quality of finite elements to analysis This study develops the algorithms to simplify small blend faces for producing better models for FE based on the understanding the B-rep (Boundary representation) model It includes the following main operations: generate new geometric data to replace all small blend faces, add new elements into B-rep, delete all elements related to small blend faces and update all topological data of the B-rep All small blend faces can be suppressed, after the above operations are accomplished, which yields the simplified CAD model without small blend faces The simplified CAD model without small blend faces will be obtained In addition, several examples are presented to demonstrate the feasibility of the proposed method for small blend simplification Keywords: Model simplification; Feature simplification; Blend suppression 679 Kỷ yếu hội nghị khoa học công nghệ toàn quốc khí - Lần thứ IV ĐẶT VẤN ĐỀ Trong thiết kế khí, mặt cong nhỏ (fillets), tạo lệnh Fillets, thường xuất mô hình CAD để tăng bền kết cấu tính thẩm mỹ sản phẩm Đơn giản hóa mặt cong nhỏ trình ngược lại chức Fillets: mô hình B-rep với nhiều fillets đơn giản hóa thành mô hình B-rep chưa sử dụng lệnh Fillets Các fillets thường có kích thước nhỏ so với mặt lân cận, đặc biệt so với phần tử hữu hạn, nên gây nhiều khó khăn trình tạo lưới Đơn giản fillets nhằm cải thiện chất lượng lưới mặt khối Trước đơn giản hóa, fillets phải nhận dạng Thuật toán nhận dạng tự động để tạo liệu đầu vào cho trình đơn giản hóa fillets nghiên cứu; fillets phân chia thành chuỗi khác để nhận dạng [1] Mô hình biến đổi thành tập hợp bề mặt, bề mặt kiểm tra dựa điều kiện định, bán kính fillets tính toán, fillets cần nhận dạng chọn lọc [2] Sau nhận dạng, fillets chia thành loại riêng biệt: mặt cong cạnh (edge blend faces EBFs), mặt cong đỉnh (vertex blend faces - VBFs) mặt cong phức tạp (mixed-blend faces MBFs); từ có phương pháp đơn giản loại fillets [3] Phương pháp sử dụng phổ biến để đơn giản fillets kéo dài mặt hỗ trợ (supports faces), xác định giao điểm giao tuyến để thay EBFs VBFs Các VBFs phân loại thành mặt cong hình xuyến, mặt cong hình cầu, mặt cong hình trụ để xử lý [4] Theo Venkataraman, fillets chia thành EBFs VBFs; giao tuyến hai mặt hỗ trợ xác định để tạo cạnh thay EBFs; giao điểm hai cạnh thay VBFs [6] Fillets chia thành nhiều mặt cắt khác nhau, mặt cắt tạo điểm thuật toán tính từ điểm đầu điểm cuối mặt cắt; cạnh tạo từ tập hợp điểm đường cong [7] Sau nhận dạng, fillets bị xóa khỏi mô hình B-rep, mô hình B-rep xây dựng lại từ mặt lại Giao tuyến bề mặt dùng tạo cạnh, giao điểm cạnh dùng tạo đỉnh [8] Dữ liệu hình học mô hình B-rep, phương pháp để sửa đổi cấu trúc liệu nghiên cứu dựa vào kết hợp phần mềm C++ (Open NURBS) Rhino (Rhino SDK) [9] PHƯƠNG PHÁP NGHIÊN CỨU 2.1 Cấu trúc liệu B-rep Cấu trúc liệu B-rep gồm liệu tô-pô (topology) liệu hình học (geometry) Dữ liệu tô-pô bao gồm năm yếu tố vertex, edge, trim, loop face (Hình 1) a b Hình 1: Cấu trúc liệu B-rep (a) liệu tô-pô (b) Dữ liệu hình học gồm ba phần: 3D curve, 2D curve surface; ba thành phần liên quan đến edge, trim face liệu tô-pô Dữ liệu tô-pô liệu hình học mô hình B-rep yếu tố không gian hai chiều (2D) ba chiều (3D) Trong không gian hai chiều gồm có loop, trim 2D curve; không gian ba chiều gồm có yếu tố: face, edge, vertex, surface 3D curve Dữ liệu mô hình B-rep ghi nhận mãng (array) phần tử C++ 680 Kỷ yếu hội nghị khoa học công nghệ toàn quốc khí - Lần thứ IV 2.2 Loại bỏ thành phần B-rep Để loại bỏ thành phần mô hình B-rep, cần phải xóa phần tử mảng liệu C++ Trim yếu tố phức tạp mô hình B-p; mảng liệu ghi nhận “Trim Array”, mảng liệu khác liên quan tới trim như: vertex, edge, loop 2D curve Quá trình xóa phần tử mảng liệu trim Hình Khi xóa phần tử T2, cần phải xóa phần tử mảng liệu quan hệ loop-trim edge-trim Số thứ tự mảng Mảng trước xoá Phần tử mảng Số thứ tự mảng Xoá phần tử thứ hai mảng Phần tử mảng Số thứ tự mảng Mảng sau xoá phần tử Phần tử mảng Hình 2: Xóa phần tử mảng liệu trim 2.3 Xây dựng lại mô hình B-rep Xây dựng lại mô hình B-rep trình phức tạp khó khăn, đặc biệt hai yếu tố hình học tô-pô trim loop Đối với trim, có yếu tố cần xây dựng lại: hình dạng hình học 2D curve, số trim mô hình B-rep (trim index), chuẩn ISO trim (trim iso), loại trim (trim type) hộp giới hạn trim (boundary box) Đối với loop, cần xây dựng lại yếu tố: kích thước hộp giới hạn loop, số loop mô hình B-rep (loop index), mối liên hệ loop yếu tố khác Khi fillets loại bỏ khỏi mô hình B-rep, việc xây dựng lại mô hình làm thay đổi đặc tính yếu tố lại Cho nên, việc xây dựng lại yếu tố hình học, phải thay đổi liệu yếu tố: vertex, edge, trim, loop face mô hình B-rep 2.4 Phương pháp thực Các fillets mô hình B-rep chia thành hai loại edge blend faces (EBFs) vertex blend faces (VBFs) Hình dạng ban đầu EBF cạnh, VBF đỉnh; VBFs thường nơi giao EBFs (Hình 3a) Hình 3: Fillets: (a) EBF VBF, (b) smooth edge, cross edge, end edge, support face VBF đơn ẻẽ gọi single vertex blend face, VBFs kết nối với thành nhóm gọi multiple vertex blend faces Sau đơn giản hóa, loại VBFs thay đỉnh Các thuật ngữ sử dụng thuật toán đơn giản hóa mô hình B-rep là: cross edge, end edge, smooth edge, support face end face (Hình 3b) Lưu đồ thuật toán năm bước trình đơn giản hóa fillets trình bày Hình 4, liệu vào mô hình B-rep có fillets nhận dạng theo phương pháp J.Y Lai [10] 681 Kỷ yếu hội nghị khoa học công nghệ toàn quốc khí - Lần thứ IV Hình 4: Thuật toán trình đơn giản hóa mặt cong (fillets) 2.4.1 Nhóm riêng loại VBFs EBFs Các VBFs đơn lẻ không cần nhóm (màu xanh) Tuy nhiên, VBFs nằm kề cần nhóm thành nhóm multiple VBFs (màu vàng) (Hình 5) Hình 5: Quy trình nhóm VBFs Hình 6: Quy trình nhóm EBFs So với nhóm VBFs, quy trình nhóm EBFs phức tạp nhiều Bên cạnh việc nhóm EBFs liền kề, tất liệu liên quan đến EBFs VBFs lưu trữ để làm liệu cho trình tạo cạnh đỉnh (Hình 6) Trong Hình 7, với EBF (Si), tất mặt liền kề với Si xem xét, mặt EBF (mặt f2) thêm vào nhóm với EBF (Si) Nếu không mặt EBF liền kề mặt Si, trình tiếp tục với mặt nhóm trước (f2); f5 nhóm vào nhóm với Si Quá trình tiếp diễn liên tục đến không mặt tiếp giáp với nhóm EBF Kết có nhóm EBF gồm mặt Si, f2 f5 Ngoài ra, liệu smooth edge, cross edge end edge ghi nhận cho trình Hình 7: Kỹ thuật nhóm EBFs 682 Kỷ yếu hội nghị khoa học công nghệ toàn quốc khí - Lần thứ IV 2.4.2 Tính toán giao tuyến giao điểm để tạo cạnh đỉnh Quá trình gồm hai hoạt động chính: (1) tìm đường giao tuyến hai mặt phẳng hỗ trợ (support faces), (2) tính toán giao điểm cross edge end edge Trong trình tìm giao tuyến, EBF nhóm có hai smooth edges, từ hai mặt phẳng hỗ trợ nhận dạng kéo dài, giao tuyến xác định giao hai mặt phẳng (Hình 8) Hình 8: Xác định giao tuyến hai mặt hỗ trợ Việc tính toán giao điểm (intersection point) thực cross edge (giao cạnh mặt) (Hình 9), end edge (giao hai cặp cạnh kéo dài) (Hình 10) Hình 9: Tạo giao điểm cross edge Hình 10: Tạo giao điểm end edge Mỗi nhóm VBF thay đỉnh sau bị xóa khỏi mô hình B-rep, nên nhóm VBF tạo giao điểm từ giao tuyến tạo (Hình 11) Hình 11: Tạo giao điểm end edge single VBF multiple VBFs 2.4.3 Thêm cạnh đỉnh vào mô hình B-rep Các giao điểm xác định thêm vào mô hình B-rep đỉnh mà không cần thay đổi thông số Mỗi giao tuyến xem 3D curve giới hạn hai đỉnh tương ứng Thực chất 3D curve chưa phải cạnh để thay EBF Chiều dài 3D curve xác định phương pháp giới hạn chiều dài từ hai đỉnh tương ứng để tạo nên cạnh (Hình 12) 683 Kỷ yếu hội nghị khoa học công nghệ toàn quốc khí - Lần thứ IV Hình 12: Tạo cạnh từ đường cong 3D (3D curve) 2.4.4 Xóa EBF, VBF liệu liên quan Mỗi EBF VBF có liệu liên quan gồm: vertices, edges, trims, loops, faces, 3D curves, 2D curves surfaces Muốn xóa bỏ EBF VBF, cần phải xóa phần tử mảng liệu B-rep, xóa mảng liệu C++ Tuy nhiên, cần phải xem xét kỹ phần tử liên quan đến EBFs VBFs trước xóa, để tránh sai sót dẫn đến mô hình B-rep không xây dựng lại 2.4.5 Xây dựng lại mô hình B-rep Sau EBFs VBFs bị xóa khỏi mô hình B-rep, yếu tố như: vertices, edges, trims, loops, faces, trim iso, hộp giới hạn trim, hộp giới hạn loop, trim TYPE cần phải cập nhật lại Việc kéo dài mặt hỗ trợ để tìm giao tuyến tạo cạnh thay EBFs, mà để lắp đầy lỗ rỗng tạo từ đơn giản hóa EBFs VBFs Sau cập nhật lại tất yếu tố hình học tô-pô mô hình B-rep, mô hình thu mô hình B-rep đơn giản hóa fillets KẾT QUẢ VÀ THẢO LUẬN Kết thử nghiệm đơn giản hóa fillets mô hình B-rep mô hình CAD thành công Trong số trường hợp đặc biệt (Hình 13), việc đơn giản hóa fillets gặp khó khăn, smooth edges bề mặt hỗ trợ bị gãy khúc, mặt EBF hiểu có ba mặt phẳng hỗ trợ, có mặt bị trùng lặp Tuy nhiên, vấn đề giải fillets đơn giản hóa thành công Hình 13: Trường hợp EBF giao với khối trụ (trái), giao với lỗ trụ (phải) Với multiple VBFs phức tạp liên kết với EBF nhiều cạnh (Hình 14), gặp khó khăn cho việc ghi nhận liệu liên quan EBF VBFs trình tạo cạnh đỉnh Trong trường hợp này, cần nhóm cạnh liên kết VBFs EBF, liệu ghi nhận xem cạnh Nhờ giải pháp này, trường hợp multiple VBF phức tạp đơn giản hóa thành công 684 Kỷ yếu hội nghị khoa học công nghệ toàn quốc khí - Lần thứ IV Hình 14: Đơn giản multiple VBFs phức tạp Hình 15: Lỗi loop trim xây dựng B-rep Trong trình xây dựng lại mô hình B-rep sau xóa EBFs VBFs gặp phải khó khăn (Hình 15) Trong trường hợp này, liệu tô-pô cập nhật liệu hình học B-rep bị lỗi loop, loop không đóng kín trims, xây dựng lại mô hình B-rep hoàn chỉnh Vấn đề khắc phục cách tạo trim KẾT LUẬN Nghiên cứu cho thấy ứng dụng khả thi với phần mềm thiết kế CAE, nhằm tạo lưới mặt khối tự động trình phân chia phần tử hữu hạn, tăng độ xác trình mô phỏng, giảm thời gian trình tạo lưới, giảm thiểu yếu tố phần tử hữu hạn Nghiên cứu thử nghiệm loại fillets: EBFs, single VBF multiple VBFs, hầu hết có thành công với nhiều mô hình thực tế TÀI LIỆU THAM KHẢO [1] S.Venkataraman, & M Sohoni, Blend Recognition Algorithm and Applications The sixth ACM Symposium on Solid Modeling and Applications, 2001, p 99-108 [2] J Li, G Tong, D Shi, M Geng, H Zhu, & I Hagiwara, Automatic small blend recognition from B-rep for analysis Engineering with Computers, 2009, p 279-285 [3] X Cui, S Gao, & G Zhou, An Efficient Algorithm for Recognizing and Suppressing Blend Features Computer-Aided Design and Applications, 2004, Vol.1 (1-4), p 421-428 [4] H Zhu, & C.H Menq, BRep model simplification by automatic fillet round suppressing for efficient automatic feature recognition Computer-Aided Design and Applications, 2002, Vol 34(2), p 109-123 [5] K.Y Lee, C.G Armstrong, M.A Price, & J.H Lamont, A small Feature suppression/Unsuppression system for preparing B-rep models for analysis ComputerAided Design and Applications, 2005, ACM 1-59593-015-9/05/0006 [6] S Venkataraman, M Sohoni, & R Rajadhyaksha, Removal of blends from boundary representation models Proceedings of the seventh ACM symposium on Solid modeling and applications, 2002, p 83-94 [7] N Joshi, & D Dutta, Feature Simplification Techniques for Freeform Surface Models J of Computing and Information Science in Engineering, 2003, Vol.3 (3), p 177-186 [8] H Mounir, A Nizar, & B Abdelmajid, CAD model simplification using a removing details and merging faces technique J of Mechanical Science and Technology, 2012, Vol.26 (11), p 3539-3548 [9] B Li, & J Liu, Detail Feature Recognition and Decomposition in Solid Model Computer-Aided Design and Applications, 2002, Vol.34 (5), p 405-414 [10] J Y Lai, Z W You, Y K Chiu, M H Wang, C H Hsu, Y C Tsai, & C Y Huang, On the Development of Holes Recognition Algorithm for CAE Applications 2014 IC3MT, Sep 2014, Taipei, Taiwan 685