OCCT

 
 

แพลตฟอร์มการสร้างโมเดล 3D และการจำลองด้วย C++ โอเพ่นซอร์ส

สร้างโมเดล 3D พารามิเตอร์, จำลองฟิสิกส์และแสดงผลข้อมูล CAD ผ่านไลบรารี C++ โอเพ่นซอร์ส.

OCCT คืออะไร?

Open CASCADE Technology (OCCT) เป็นแพลตฟอร์มการพัฒนาซอฟต์แวร์ C++ แบบโอเพนซอร์สที่มีประสิทธิภาพสำหรับแอปพลิเคชัน 3D CAD, CAM และ CAE มันให้ไลบรารีที่ครอบคลุมสำหรับการสร้างแบบจำลองเชิงเรขาคณิต, การสร้างเมช, การแลกเปลี่ยนข้อมูล (STEP, IGES, STL), การแสดงผล, และการจำลองออกแบบ ถูกออกแบบมาสำหรับกระบวนการวิศวกรรมและการผลิตที่ต้องการความแม่นยำสูง, OCCT ช่วยให้นักพัฒนาสร้างเครื่องมือการสร้างแบบจำลองพารามิเตอร์, ตัวดู CAD, และแอปพลิเคชันการจำลองที่มีความสามารถตามมาตรฐานอุตสาหกรรม

ไลบรารีนี้รองรับการดำเนินการโมเดลของแข็งขั้นสูง เช่น การดำเนินการบูลีน, การทำมุมโค้ง, การทำมุมตัด, และการสวีป, พร้อมกับการสร้างแบบจำลองพื้นผิว, เรขาคณิต NURBS, และการสร้างแบบจำลองฟีเจอร์พารามิเตอร์ OCCT มีสถาปัตยกรรมโมดูลาร์ที่รวมชุดเครื่องมือเฉพาะสำหรับโทโพโลยี, เรขาคณิต, การแสดงผล, การแลกเปลี่ยนข้อมูล, และกรอบงานแอปพลิเคชัน ทำให้เหมาะสำหรับการพัฒนาซอฟต์แวร์วิศวกรรมที่ซับซ้อน ด้วยการสนับสนุนจากชุมชนที่กระตือรือร้นและการปล่อยเวอร์ชันอย่างสม่ำเสมอ, OCCT ทำหน้าที่เป็นฐานสำหรับแอปพลิเคชัน 3D เชิงพาณิชย์และการวิจัยจำนวนมากทั่วโลก

Previous Next

เริ่มต้นใช้งาน OCCT

OCCT แจกจ่ายเป็นไลบรารี C++ แบบโอเพนซอร์สและสามารถติดตั้งได้ผ่านการสร้างจากซอร์สหรือไบนารีที่คอมไพล์ล่วงหน้า วิธีที่ง่ายที่สุดในการเริ่มต้นคือการดาวน์โหลดเวอร์ชันล่าสุดจากที่เก็บ [OCCT GitHub](https://github.com/Open-Cascade-SAS/OCCT) สำหรับผู้ใช้ Linux หลายดิสทริบิวชันมีแพคเกจ OCCT ผ่านตัวจัดการแพคเกจของพวกเขา (เช่น `apt install libocct-dev` บน Ubuntu) นักพัฒนา Windows สามารถใช้ไบนารีที่คอมไพล์ล่วงหน้าหรือคอมไพล์จากซอร์สโดยใช้ CMake และ Visual Studio เอกสารอย่างเป็นทางการรวมคู่มือการสร้างแบบขั้นตอนต่อขั้นตอนสำหรับทุกแพลตฟอร์มที่รองรับ

ติดตั้ง OCCT ผ่านผู้จัดการแพคเกจ (Ubuntu/Debian)

sudo apt update
sudo apt install libocct-dev libocct-data-exchange-dev libocct-visualization-dev

การดำเนินการบูลีนและการสร้างโมเดลของแข็ง

OCCT ให้การดำเนินการบูลีนที่แข็งแกร่ง (union, intersection, subtraction) สำหรับของแข็ง 3 มิติ ทำให้สามารถสร้างรูปร่างซับซ้อนจากรูปทรงพื้นฐานได้ เคอร์เนลโทโพโลยีของมันสนับสนุนคุณลักษณะขั้นสูงเช่น fillets, chamfers, holes, และ ribs ด้วยความแม่นยำสูง นักพัฒนาสามารถสร้างฟีเจอร์พารามิเตอร์โดยใช้ C++ APIs และผสานเข้ากับกระบวนการทำงาน CAD ไลบรารีจัดการโครงสร้างข้อมูลโทโพโลยีอย่างมีประสิทธิภาพ รองรับทั้งการสร้างโมเดลแบบ B-Rep และการสร้างรูปทรงโดยใช้ CSG ทำให้ OCCT เหมาะสำหรับการพัฒนาแอปพลิเคชันวิศวกรรมที่ต้องการการคำนวณเรขาคณิตที่แม่นยำและการสร้างโมเดลแบบฟีเจอร์

ทำการรวมบูลีนของของแข็งสองชิ้นด้วย C++

TopoDS_Shape box1 = BRepPrimAPI_MakeBox(10, 10, 10);
TopoDS_Shape box2 = BRepPrimAPI_MakeBox(20, 5, 5);
BRepAlgoAPI_Fuse fuseOp(box1, box2);
if (fuseOp.IsDone()) {
    TopoDS_Shape result = fuseOp.Shape();
    // Save or visualize result
}

การแลกเปลี่ยนข้อมูล (STEP & IGES)

OCCT มีโมดูลการแลกเปลี่ยนข้อมูลที่ครอบคลุมซึ่งสนับสนุนรูปแบบมาตรฐาน ISO เช่น STEP (AP203/AP214) และ IGES โมดูลเหล่านี้ทำให้สามารถนำเข้าและส่งออกโมเดล CAD พร้อมคงรักษาเรขาคณิต, โทโพโลยี, เมตาดาต้า, และโครงสร้างผลิตภัณฑ์ ตัวอ่าน/เขียน STEP รองรับการปฏิบัติตามมาตรฐาน AP214 อย่างเต็มรูปแบบสำหรับข้อมูลการออกแบบยานยนต์และเครื่องกล นักพัฒนาสามารถประมวลผลโมเดลที่นำเข้าโดยโปรแกรม, ดึงหน้าพื้นผิว/ขอบ, แก้ไขเรขาคณิต, และส่งออกใหม่ในรูปแบบต่าง ๆ การทำงานร่วมกันนี้มีความสำคัญต่อการทำงานร่วมกันของ CAD ในระบบซอฟต์แวร์ที่แตกต่างกันและรับประกันการบูรณาการที่ราบรื่นเข้าสู่กระบวนการออกแบบที่มีอยู่

นำเข้าไฟล์ STEP และส่งออกเป็น STL ผ่าน C++

Handle(STEPCAFControl_Reader) reader = new STEPCAFControl_Reader();
IFSelect_ReturnStatus status = reader->ReadFile("model.step");
if (status == IFSelect_RetDone) {
    Handle(TDocStd_Document) doc;
    reader->Transfer(doc);
    // Export to STL
    STEPCAFControl_Writer writer;
    writer.Write("output.stl");
}

การแสดงผล 3 มิติและการเรนเดอร์

ชุดเครื่องมือการแสดงผลของ OCCT ให้ความสามารถในการเรนเดอร์ 3 มิติที่ทรงพลังพร้อมการสนับสนุน OpenGL ที่เร่งด้วยฮาร์ดแวร์, การติดตามรังสี, และการจัดแสงขั้นสูง นักพัฒนาสามารถสร้างตัวดู CAD แบบโต้ตอบด้วยฟีเจอร์การเลือก, การไฮไลท์, และเครื่องมือการนำทาง ชุดเครื่องมือนี้รวมคลาสสำหรับการจัดการมุมมอง 3 มิติ, การจัดการกราฟฉาก, และไพป์ไลน์การเรนเดอร์แบบกำหนดเอง คุณลักษณะเช่นการตัดขอบ, ความโปร่งใส, และโหมดการแสดงผลเส้นลวด/เส้นที่ซ่อนอยู่รับประกันการแสดงผลคุณภาพระดับมืออาชีพ สิ่งนี้ทำให้ OCCT เหมาะสำหรับการพัฒนาเครื่องมือการแสดงผลวิศวกรรม, แอปพลิเคชันความเป็นจริงเสมือน, และเบราว์เซอร์ผลการจำลองด้วยประสิทธิภาพแบบเรียลไทม์

สร้างตัวดู 3D แบบโต้ตอบด้วย OCCT

Handle(V3d_Viewer) aViewer = new V3d_Viewer();
Handle(AIS_InteractiveContext) aContext = new AIS_InteractiveContext(aViewer);
Handle(AIS_Shape) anActor = new AIS_Shape(aShape);
aContext->Display(anActor, Standard_True);
// Enable rotation, zoom, pan
aViewer->InitActiveView();
aViewer->ActiveView()->SetDegenerateModeOn();

การสร้างเมชและการวิเคราะห์

OCCT มีเครื่องมือการสร้างเมชที่แปลงโมเดล B-Rep เป็นเมชสามเหลี่ยมสำหรับการจำลองและการแสดงผล โมดูล Mesh รองรับการเมชแบบปรับตัวได้พร้อมการควบคุมความแม่นยำของการตัดแบ่งขอบและพื้นผิว นักพัฒนาสามารถสร้างเมชองค์ประกอบจำกัดสำหรับการวิเคราะห์ CAE คำนวณเมตริกคุณภาพเมช และทำการดำเนินการเมชเช่นการปรับละเอียดและการทำให้เรียบ ไลบรารียังให้เครื่องมือสำหรับการแลกเปลี่ยนข้อมูลเมช (STL, OBJ) และการรวมกับตัวแก้ FEM ภายนอก ความสามารถนี้เชื่อมโยงการออกแบบ CAD กับกระบวนการจำลอง ทำให้สามารถพัฒนาแอปพลิเคชันการวิเคราะห์วิศวกรรมแบบครบวงจรได้

สร้างเมชจากรูปทรง B-Rep ผ่าน C++

BRepMesh_IncrementalMesh aMesh(aShape, 0.01);
// Access mesh data
TopExp_Explorer anExp(aShape, TopAbs_FACE);
for (; anExp.More(); anExp.Next()) {
    TopoDS_Face aFace = TopoDS::Face(anExp.Current());
    Handle(Poly_Triangulation) aTriangulation =
        BRep_Tool::Triangulation(aFace, aLoc);
    if (!aTriangulation.IsNull()) {
        // Process triangulation nodes and triangles
    }
}
 ไทย