超級好用的??參數化3D CAD 建模??圖形庫 (CadQuery庫介紹)

CadQuery 庫詳細介紹??

??CadQuery?? 是一個基于 ??Python?? 的 ??參數化 3D CAD 建模?? 庫,允許用戶通過編寫代碼(而不是傳統 GUI)來創建精確的 ??3D 模型??。它特別適用于 ??自動化設計、機械工程、3D 打印?? 等場景,提供強大的 ??程序化建模?? 能力。


??1. CadQuery 的核心特點??

? ??基于 OpenCASCADE(OCCT)??:底層使用工業級幾何引擎,確保高精度建模。
? ??鏈式 API??:類似 jQuery 的語法,代碼簡潔直觀。
? ??參數化設計??:支持變量、循環、條件判斷,便于快速迭代設計。
? ??支持多種導出格式??:STL、STEP、OBJ、SVG 等,兼容主流 CAD 軟件(如 FreeCAD、SolidWorks)。
? ??與 Python 生態集成??:可結合 NumPy、Matplotlib 等庫進行高級計算和可視化。


??2. 基本概念??

??(1)?Workplane(工作平面)??

CadQuery 的所有建模操作都從?Workplane?開始,它定義了初始坐標系(如?"XY""XZ""YZ")。

 

python

import cadquery as cq# 在 XY 平面上創建一個矩形
result = cq.Workplane("XY").rect(10, 20)

??(2) 基本幾何體??

  • box():立方體
  • cylinder():圓柱
  • sphere():球體
  • lineTo()?/?polyline():繪制 2D 輪廓并拉伸
 

python

# 創建一個 10x20x5 的長方體
box = cq.Workplane("XY").box(10, 20, 5)

??(3) 布爾運算??

  • cut():差集(挖孔)
  • union():并集(合并)
  • intersect():交集
 

python

# 在立方體上挖一個圓柱孔
result = box.faces(">Z").circle(3).cutThruAll()

??(4) 倒角 & 圓角??

  • fillet():圓角(對邊進行平滑處理)
  • chamfer():倒角(斜切邊)
 

python

# 對立方體的所有垂直邊進行圓角處理
result = box.edges("|Z").fillet(1.0)

??(5) 拉伸 & 旋轉??

  • extrude():拉伸 2D 輪廓
  • revolve():旋轉 2D 輪廓
 

python

# 繪制一個圓并拉伸成圓柱
result = cq.Workplane("XY").circle(5).extrude(10)

??3. 進階功能??

??(1) 參數化建模??

 

python

length = 30
width = 20
height = 10# 使用變量定義模型
box = cq.Workplane("XY").box(length, width, height)

??(2) 復雜輪廓(2D 草圖)??

 

python

# 繪制一個 L 形輪廓并拉伸
result = (cq.Workplane("XY").moveTo(0, 0).lineTo(10, 0).lineTo(10, 5).lineTo(5, 5).lineTo(5, 10).lineTo(0, 10).close().extrude(2)
)

??(3) 陣列(Pattern)??

 

python

# 在立方體上打 4 個孔
result = (cq.Workplane("XY").box(20, 20, 5).faces(">Z").rarray(8, 8, 2, 2)  # (x間距, y間距, x數量, y數量).circle(2).cutThruAll()
)

??(4) 導出模型??

 

python

# 導出為 STL(3D 打印)
cq.exporters.export(result, "model.stl")# 導出為 STEP(CAD 軟件兼容)
cq.exporters.export(result, "model.step")

??4. CadQuery vs. OpenSCAD??

??特性????CadQuery????OpenSCAD??
??語法??Python(更靈活)專用語言(較局限)
??建模方式??鏈式 API函數式編程
??幾何引擎??OpenCASCADE(OCCT)CGAL
??學習曲線??中等(需 Python 基礎)較陡(新語法)
??社區支持??活躍(GitHub、論壇)較成熟
??適用場景??機械設計、參數化建模簡單 3D 打印模型

??5. 適用場景??

  • ??機械零件設計??(齒輪、支架、外殼)
  • ??3D 打印模型優化??(參數化調整尺寸)
  • ??自動化建模??(批量生成變體模型)
  • ??教育??(學習 CAD 與編程結合)

??6. 學習資源??

  • ??官方文檔??:CadQuery GitHub
  • ??示例庫??:CadQuery Examples
  • ??FreeCAD 插件??:可在 FreeCAD 中使用 CadQuery 腳本

??總結??

CadQuery 是 ??程序化 CAD 建模?? 的強大工具,適合 ??工程師、設計師、開發者?? 使用 Python 創建精確的 3D 模型。如果你熟悉 Python 并希望擺脫傳統 CAD 軟件的 GUI 限制,CadQuery 是一個絕佳選擇! 🚀

??試試這個簡單示例:??

 

python

import cadquery as cq# 創建一個帶孔的 L 形支架
model = (cq.Workplane("XY").box(20, 20, 5)  # 底座.faces(">Z").rect(15, 15).extrude(10)     # 凸臺.edges("|Z").fillet(2)       # 倒角.faces(">Z").hole(5)         # 鉆孔
)# 導出 STL 文件
cq.exporters.export(model, "bracket.stl")

運行后,你會得到一個可用于 3D 打印的模型!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/79229.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/79229.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/79229.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HBM的哪些事

命令操作 這也許是DDR往HBM演進的一些奇淫技巧。 本篇內容屬于雜談,關于HBM的奇淫技巧,隨后出專題介紹。

Python基于深度學習的網絡輿情分析系統(附源碼,部署)

大家好,我是Python徐師兄,一個有著7年大廠經驗的程序員,也是一名熱衷于分享干貨的技術愛好者。平時我在 CSDN、掘金、華為云、阿里云和 InfoQ 等平臺分享我的心得體會。 🍅文末獲取源碼聯系🍅 2025年最全的計算機軟件畢…

滑動窗口leetcode 209和76

一、leetcode 209. 長度最小的子數組 代碼&#xff1a; class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {int n nums.size();int left 0;int sum 0;int res 100001;for(int right 0;right <n;right){sum nums[right];while(s…

node.js 實戰——mongoDB 續一

mongoDB的基本指令 進入mongodb mongo顯示當前的所有數據庫 show dbs # 或者 show databases切換數據庫/進入指定數據庫 使用這個命令的時候&#xff0c;是不要求這個數據庫是否創建 use 數據庫名顯示當前數據庫 db顯示數據庫中所有集合 show collections數據庫的CRUD的…

SVMSPro平臺獲取Websocket視頻流規則

SVMSPro平臺獲取Websocket視頻流規則 Websocket 的服務端口為&#xff1a;53372&#xff0c;如需要公網訪問需要開啟這個端口 這里講的是如何獲取長效URL&#xff0c;短效&#xff08;時效性&#xff09;URL也支持&#xff0c;下回講 一、如何獲取Websocket實時流視頻 ws:/…

Arduino按鍵開關編程詳解

一、按鍵開關的基本原理與硬件連接 1.1 按鍵開關的工作原理 按鍵開關是一種常見的輸入設備&#xff0c;其核心原理基于機械觸點的閉合與斷開。當用戶按下按鍵時&#xff0c;內部的金屬片會連接電路兩端&#xff0c;形成通路&#xff1b;松開按鍵后&#xff0c;金屬片在彈簧作…

我的日記雜文

Sequoia sempervirens 北美紅杉樹 Troll 洞穴巨人 喜歡在網上搞事的人 piss off 滾開 讓人惱火的 歐洲美甲 60euor - 30euro 拖車 mobie house Motel 汽車旅館 Minoxidil 米諾地爾 Health insurance 醫療保險 casetify 香港手機品牌 coolant 汽車防凍液 Auto tint film 汽車貼…

數字智慧方案5867丨智慧建造(BIM技術智慧工地)在施工階段的實踐與應用方案(90頁PPT)(文末有下載方式)

資料解讀&#xff1a;智慧建造(BIM技術智慧工地)在施工階段的實踐與應用方案 詳細資料請看本解讀文章的最后內容。 在當今的建筑行業中&#xff0c;智慧建造已成為提升施工效率和質量的關鍵手段。隨著科技的進步&#xff0c;智慧建造結合了物聯網、大數據、人工智能等技術&am…

機器學習中的標簽策略:直接標簽、代理標簽與人工數據生成

機器學習中的標簽策略&#xff1a;直接標簽、代理標簽與人工數據生成 摘要 本文深入探討了機器學習領域中標簽的關鍵概念&#xff0c;包括直接標簽與代理標簽的定義、優缺點比較&#xff0c;以及人工生成數據的相關內容。通過詳細實例和練習&#xff0c;幫助讀者理解如何選擇…

從0搭建Transformer

1. 位置編碼模塊&#xff1a; import torch import torch.nn as nn import mathclass PositonalEncoding(nn.Module):def __init__ (self, d_model, dropout, max_len5000):super(PositionalEncoding, self).__init__()self.dropout nn.Dropout(pdropout)# [[1, 2, 3],# [4, 5…

【Bootstrap V4系列】學習入門教程之 表格(Tables)和畫像(Figure)

Bootstrap V4系列 學習入門教程之 表格&#xff08;Tables&#xff09;和畫像&#xff08;Figure&#xff09; 表格&#xff08;Tables&#xff09;一、Examples二、Table head options 表格頭選項三、Striped rows 條紋行四、Bordered table 帶邊框的表格五、Borderless table…

在C# WebApi 中使用 Nacos02: 配置管理、服務管理實戰

一、配置管理 1.添加一個新的命名空間 這里我都填寫為publicdemo 2.C#代碼配置啟動 appsetting.json加上&#xff1a; (nacos默認是8848端口) "NacosConfig": {"ServerAddresses": [ "http://localhost:8848" ], // Nacos 服務器地址"Na…

如何搭建spark yarn 模式的集群集群。

下載 App 如何搭建spark yarn 模式的集群集群。 搭建Spark on YARN集群的詳細步驟 Spark on YARN模式允許Spark作業在Hadoop YARN資源管理器上運行&#xff0c;利用YARN進行資源調度。以下是搭建步驟&#xff1a; 一、前提條件 已安裝并配置好的Hadoop集群&#xff08;包括HDF…

C++--入門基礎

C入門基礎 1. C的第一個程序 C繼承C語言許多大多數的語法&#xff0c;所以以C語言實現的hello world也可以運行&#xff0c;C中需要把文件定義為.cpp&#xff0c;vs編譯器看是.cpp就會調用C編譯器編譯&#xff0c;linux下要用g編譯&#xff0c;不再是gcc。 // test.cpp #inc…

從實列中學習linux shell9 如何確認 服務器反應遲鈍是因為cpu還是 硬盤io 到底是那個程序引起的。cpu負載多高算高

在 Linux 系統中,Load Average(平均負載) 是衡量系統整體壓力的關鍵指標,但它本身沒有絕對的“高/低”閾值,需要結合 CPU 核心數 和 其他性能指標 綜合分析。以下是具體判斷方法: 一、Load Average 的基本含義 定義:Load Average 表示 單位時間內處于可運行狀態(R)和不…

聊一聊接口測試更側重于哪方面的驗證

目錄 一、功能性驗證 輸入與輸出正確性 參數校驗 業務邏輯覆蓋 二、數據一致性驗證 數據格式規范 數據完整性 數據類型與范圍 三、異常場景驗證 容錯能力測試 邊界條件覆蓋 錯誤碼與信息清晰度 四、安全與權限驗證 身份認證 數據安全 防攻擊能力 五、性能與可…

Fiddler抓取APP端,HTTPS報錯全解析及解決方案(一篇解決常見問題)

環境&#xff1a;雷電模擬器Android9系統 ? 你所遇到的fiddler中抓取HTTPS的問題可以分為三類&#xff1a;一類是你自己證書安裝上邏輯錯誤&#xff0c;另一種是APP中使用了“證書固定”的手段。三類fiddler中生成證書時的參數過程。 1.Fiddler證書安裝上的邏輯錯誤 更新Opt…

OpenGL-ES 學習(15) ----紋理

目錄 紋理簡介紋理映射紋理映射流程示例代碼&#xff1a;紋理的環繞和過濾方式紋理的過濾方式 紋理簡介 現實生活中&#xff0c;紋理(Texture) 類似于游戲中皮膚的概念&#xff0c;最通常的作用是裝飾 3D 物體&#xff0c;它像貼紙一樣貼在物體的表面&#xff0c;豐富物體的表…

OpenCV計算機視覺實戰(2)——環境搭建與OpenCV簡介

OpenCV計算機視覺實戰&#xff08;2&#xff09;——環境搭建與OpenCV簡介 0. 前言1. OpenCV 安裝與配置1.1 安裝 Python-OpenCV1.2 配置開發環境 2. OpenCV 基礎2.1 圖像讀取與顯示2.2 圖像保存 3. 攝像頭實時捕獲小結系列鏈接 0. 前言 OpenCV (Open Source Computer Vision …

ubuntu22.04安裝顯卡驅動與cuda+cuDNN

背景&#xff1a; 緊接前文&#xff1a;Proxmox VE 8.4 顯卡直通完整指南&#xff1a;NVIDIA 2080 Ti 實戰。在R740服務器完成了proxmox的安裝&#xff0c;并且安裝了一張2080ti 魔改22g顯存的的顯卡。配置完了proxmox顯卡直通&#xff0c;并將顯卡掛載到了vm 301&#xff08;…