การออกแบบโดยใช้คอมพิวเตอร์ช่วย - ไฟล์ CAD มักใช้สำหรับการออกแบบ 2D และ 3D การออกแบบเหล่านี้สร้างขึ้นโดยโปรแกรมซอฟต์แวร์ CAD และโดยปกติจะใช้เพื่อสร้างแบบจำลองและแผนสถาปัตยกรรม หากคุณเคยทำงานกับ CAD คุณมักจะคุ้นเคยกับรูปแบบไฟล์บางอย่างของ AutoCAD เช่น DWG, DXF, DGN, DWF บทความนี้จะกล่าวถึงวิธีการดูไฟล์ CAD ภายในแอปพลิเคชัน Java โดยทางโปรแกรม

หัวข้อต่อไปนี้จะกล่าวถึงโดยสังเขปด้านล่าง:

Java API เพื่อ Render ไฟล์ CAD - DWG, DXF, DWF, DGN

GroupDocs.Viewer for Java เป็น API ที่อนุญาตให้แสดงเอกสารและไฟล์รูปภาพต่างๆ ในรูปแบบ HTML รูปภาพ หรือ PDF เพื่อดูไฟล์เหล่านี้ภายในแอปพลิเคชัน Java ของคุณ API รองรับ รูปแบบไฟล์มากกว่า 100 รูปแบบในการแสดงผลทางโปรแกรมเป็น HTML, JPG, PNG หรือ PDF

ในบทความนี้เราจะยึดติดกับไฟล์ CAD นอกเหนือจากรูปแบบ DWG และ DGN ที่กล่าวถึงแล้ว คุณยังสามารถดูรูปแบบ AutoCAD เช่น DWF, DWT, DXF และไฟล์ IFC, STL, IGS, CF2, Plotter document (PLT, HPG) ภายในแอปพลิเคชันจาวาของคุณได้อีกด้วย

ดาวน์โหลดและกำหนดค่า

รับไลบรารี จากการดาวน์โหลดหรือเพียงเพิ่มการกำหนดค่า pom.xml ต่อไปนี้ในแอปพลิเคชัน Java ที่ใช้ Maven เพื่อลองใช้ตัวอย่างที่กล่าวถึงด้านล่าง สำหรับรายละเอียด คุณสามารถไปที่ ข้อมูลอ้างอิง API

<repository>
	<id>GroupDocsArtifactRepository</id>
	<name>GroupDocs Artifact Repository</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-viewer</artifactId>
        <version>21.2</version> 
</dependency>

แปลงภาพวาด CAD เป็น Render เป็น HTML, PNG, JPG หรือ PDF ใน Java

API อนุญาตให้แสดงเอกสาร CAD เป็นรูปแบบ HTML, JPG, PNG และ PDF ในบทความนี้ ฉันจะยึดรูปแบบ DWG สำหรับการแปลงและการแสดงผลเป็นรูปแบบอื่นโดยใช้ตัวอย่าง ในการเริ่มต้น ให้แปลงการออกแบบ DWG และแสดงผลเป็น HTML พร้อมตัวเลือกทรัพยากรแบบฝังและทรัพยากรภายนอก

แปลง DWG เป็น HTML ด้วยทรัพยากรแบบฝัง

ต่อไปนี้เป็นขั้นตอนในการแปลงไฟล์ DWG เพื่อแสดงผลเป็น HTML

  • เริ่มต้นวัตถุคลาส Viewer โดยใช้ไฟล์ .dwg ต้นทาง
  • สร้าง HtmlViewOptions โดยใช้เมธอด forEmbeddedResources
  • แสดงผล .dwg เป็น HTML โดยใช้เมธอด view

ซอร์สโค้ดต่อไปนี้แปลงไฟล์ DWG และแสดงผลเป็น HTML พร้อมทรัพยากรที่ฝังอยู่ใน Java

// Render .dwg CAD drawing เพื่อดูเป็น HTML พร้อมทรัพยากรฝังตัวโดยใช้ Java
try (Viewer viewer = new Viewer("drawing.dwg")) {
	HtmlViewOptions viewOptions = HtmlViewOptions.forEmbeddedResources("page_{0}.html");
	viewer.view(viewOptions);
}

แปลง DWG เป็น HTML ด้วยทรัพยากรภายนอก

ต่อไปนี้เป็นขั้นตอนในการแปลงไฟล์ DWG เพื่อแสดงผลเป็นไฟล์ HTML และด้วยทรัพยากรภายนอก

  • เริ่มต้นวัตถุคลาส Viewer โดยใช้ไฟล์ .dwg ต้นทาง
  • สร้าง HtmlViewOptions โดยใช้เมธอด forExternalResources
  • แสดงผล .dwg เป็น HTML โดยใช้เมธอด view

ซอร์สโค้ดต่อไปนี้แสดงไฟล์ DWG เป็น HTML พร้อมทรัพยากรภายนอกใน Java

// Render .dwg CAD drawing เพื่อดูเป็น HTML ด้วยทรัพยากรภายนอกโดยใช้ Java
try (Viewer viewer = new Viewer("drawing.dwg")) {
	HtmlViewOptions viewOptions = HtmlViewOptions.forExternalResources("page_{0}.html", "page_{0}/resource_{1}", "page_{0}/resources");
	viewer.view(viewOptions);
}

แปลง DWG เป็น PDF, JPG และ PNG ใน Java

คล้ายกับการแปลงเป็นรูปแบบ HTML ไฟล์ DWG สามารถแสดงผลเป็นรูปแบบ PDF, JPG และ PNG โดยใช้ ViewOptions ตามลำดับดังต่อไปนี้:

รับเลย์เอาต์และเลเยอร์ของ DWG ใน Java

เนื่องจากไฟล์ CAD อาจประกอบด้วยเลย์เอาท์และเลเยอร์ต่างๆ มากมาย คุณจึงสามารถรับเลย์เอาต์และเลเยอร์ได้อย่างง่ายดายโดยใช้ขั้นตอนต่อไปนี้

  • สร้างอินสแตนซ์ของวัตถุ ViewInfoOptions สำหรับการแสดงผล HTML
  • เมื่อใช้ ViewInfoOptions คุณจะได้รับ CadViewInfo
  • รับเค้าโครงจาก viewInfo โดยใช้วิธี getLayouts
  • รับเลเยอร์จาก viewInfo โดยใช้วิธี getLayers

รหัสต่อไปนี้แสดงวิธีรับเลย์เอาต์และเลเยอร์ทั้งหมดของไฟล์ DWG โดยใช้ Java

// รับเลย์เอาต์และเลเยอร์ของการวาด DWG CAD ใน Java
try (Viewer viewer = new Viewer("drawing.dwg")) {
	ViewInfoOptions viewInfoOptions = ViewInfoOptions.forHtmlView();
	CadViewInfo viewInfo = (CadViewInfo) viewer.getViewInfo(viewInfoOptions);
    
	System.out.println("File type: " + viewInfo.getFileType());
	System.out.println("Pages count: " + viewInfo.getPages().size());
    
	for (Layout layout : viewInfo.getLayouts()) {
		System.out.println(layout);
	}
	for (Layer layer : viewInfo.getLayers()) {
		System.out.println(layer);
	}
}

Render CAD Layers ของไฟล์ DWG ใน Java

ตามค่าเริ่มต้น เลเยอร์ทั้งหมดของแบบร่าง CAD จะถูกเรนเดอร์ตามที่แสดงด้านบน อย่างไรก็ตาม คุณสามารถเรนเดอร์เลเยอร์เฉพาะของ DWG ได้โดยเลือกเลเยอร์ที่เลือกโดยใช้เมธอด setLayers ของ Java API ดังที่แสดงด้านล่าง

  • เริ่มต้นวัตถุคลาส Viewer โดยใช้ไฟล์ .dwg ต้นทาง
  • สร้างอินสแตนซ์ HtmlViewOptions
  • เพิ่มเลเยอร์ที่จะแสดงผลโดยใช้เมธอด setLayers ของ CadOptions
  • แสดงผล .dwg เป็น HTML โดยใช้เมธอด view

รหัสต่อไปนี้แสดงเลเยอร์ของไฟล์ CAD ในรูปแบบ DWG ใน Java

// Render Layers ของ .dwg CAD drawing ใน Java
try (Viewer viewer = new Viewer("drawing.dwg")) {
	HtmlViewOptions viewOptions = HtmlViewOptions.forEmbeddedResources();
	viewOptions.getCadOptions().setLayers(Arrays.asList(new Layer("Stairs"), new Layer("Walls")));
	viewer.view(viewOptions);
}

Render CAD Layouts ของไฟล์ DWG ใน Java

เมื่อเราเรนเดอร์แบบ CAD เราจะได้รับเฉพาะการนำเสนอแบบจำลองตามค่าเริ่มต้น ในการเรนเดอร์โมเดลรวมถึงเลย์เอาต์ที่ไม่ว่างเปล่าทั้งหมด เราเพียงต้องตั้งค่าคุณสมบัติ RenderLayout ของ CadOptions ให้เป็นจริง

  • เริ่มต้นวัตถุคลาส Viewer โดยใช้ไฟล์ .dwg ต้นทาง
  • สร้างอินสแตนซ์ HtmlViewOptions
  • ตั้งค่าคุณสมบัติ RenderLayout ของ CadOptions เป็นจริง
  • แสดงผล .dwg เป็น HTML โดยใช้เมธอด view

รหัสต่อไปนี้แสดงเค้าโครงที่ไม่ว่างเปล่าทั้งหมดพร้อมกับแบบจำลองของแบบร่าง CAD ที่มีรูปแบบ DWG ใน Java

// Render Layouts ของการวาด .dwg CAD ใน Java
try (Viewer viewer = new Viewer("drawing.dwg")) {
	HtmlViewOptions viewOptions = HtmlViewOptions.forEmbeddedResources();
	viewOptions.getCadOptions().setRenderLayouts(true);
	viewer.view(viewOptions);
}

รับใบอนุญาต API ฟรี

คุณสามารถ รับใบอนุญาตชั่วคราวได้ฟรี เพื่อใช้ API โดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีการดูไฟล์ CAD ภายในแอปพลิเคชัน Java ฉันหวังว่าคุณจะมั่นใจที่จะสร้าง CAD Viewer ของคุณเองโดยใช้ Java คุณสามารถแสดงโมเดล เค้าโครง และเลเยอร์ของไฟล์ CAD เพิ่มเติมภายในแอปพลิเคชัน คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ GroupDocs.Viewer for Java โดยใช้ เอกสารประกอบ ในกรณีที่คุณมีข้อสงสัย โปรดแจ้งให้เราทราบผ่าน ฟอรัม ของเรา

ดูสิ่งนี้ด้วย