Python下的三维建模和可视化
本文介绍基于AnyCAD Rapid Py三维图形平台开发Python的三维应用
1 准备工作
1.1 安装 vc_resit 2022
在Windows下,AnyCAD Rapid SDK依赖Vistual C++ 运行时库,64位版本需要在客户机上安装vc_redist.x64.exe
微软官方下载地址:
- x64: vc_redist.x64.exe
1.2 安装 Python 3.12
::: warning
若本机已经安装了Python 3.12则可略过此步骤。
:::
安装过程略。
1.3 安装 PyAnyCAD
AnyCAD直接支持从pipy.org安装,在命令行中执行如下命令:
pip install PyAnyCAD
1.4 安装VS Code代码编辑器
使用VS Code可以方便的进行Py代码的编辑和调试。
当然你也可以选择你喜欢的代码编辑器。
2 创建简单的应用
创建最简单的PyAnyCAD应用: HelloWorld.py
# 引入PyAnyCAD包
from AnyCAD.PyAnyCore import GlobalInstance, RenderWindow
from AnyCAD import PyAnyCAD as AnyCAD
# 初始化AnyCAD SDK
GlobalInstance.Initialize()
# 创建窗口
window = RenderWindow("Hello AnyCAD", 800, 600)
# 创建Box几何对象
box = AnyCAD.ShapeBuilder.MakeBox(AnyCAD.GAx2(), 1,1,1)
# 显示几何对象
window.ShowTopoShape(box, None)
# 显示窗口
window.Show()
# 释放窗口资源
window.Destroy()
# 释放全局资源
GlobalInstance.Destroy()
点击编辑器右上角的运行按钮,你会看到如下窗口:

有没有一种“简单的令人发指”的感觉?
3 创建复杂的窗口应用 - PyQt5
使用PyQt5可以创建复杂的Python窗口应用程序
3.1 安装 PyQt5
pip install PyQt5
3.2 编写Py脚本
创建一个Qt5主窗口,并把AnyCAD三维控件做为中心窗口。HelloWorldQt.py
import sys, os
# 引入Qt5
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtCore import Qt
# 引入AnyCAD
from AnyCAD.PyAnyCore import GlobalInstance
from AnyCAD import PyAnyCAD as AnyCAD
# 引入AnyCAD Qt5组件
from AnyCAD.PyAnyQt import QtRenderControl
# 主窗口
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("AnyCAD PyQt")
self.setMinimumSize(1024, 768)
# 创建三维窗口
self.renderView = QtRenderControl(self)
self.setCentralWidget(self.renderView)
# 创建简单的几何模型
box = AnyCAD.ShapeBuilder.MakeBox(AnyCAD.GAx2(), 1,1,1)
self.renderView.ShowTopoShape(box, None)
if __name__ == '__main__':
# 初始化
GlobalInstance.Initialize()
# 创建Qt窗口
app = QApplication(sys.argv)
w = MainWindow()
w.show()
app.exec()
# 释放全局资源
GlobalInstance.Destroy()
3.3 运行程序
程序运行结果如下:

4 小结
作为目前最流行的编程语言之一,Python使用起来那是非常简单。结合简单、易用、强大的 AnyCAD Rapid SDK,你也能开发出强大的三维应用程序。
AnyCAD Rapid Py的接口与AnyCAD Rapid .NET高度一致,差异几乎仅在编程语言语法上的差异。参考在线文档,你可以创建出更复杂的几何模型。
Python下的三维建模和可视化的更多相关文章
- Python科学计算三维可视化(整理完结)
中国MOOC<Pyhton计算计算三维可视化>总结 课程url:here ,教师:黄天宇,嵩天 下文的图片和问题,答案都是从eclipse和上完课后总结的,转载请声明. Python数据三 ...
- Python小白的数学建模课-09 微分方程模型
小白往往听到微分方程就觉得害怕,其实数学建模中的微分方程模型不仅没那么复杂,而且很容易写出高水平的数模论文. 本文介绍微分方程模型的建模与求解,通过常微分方程.常微分方程组.高阶常微分方程 3个案例手 ...
- Python/spss-多元回归建模-共线性诊断2(推荐AA)
sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...
- Python小白的数学建模课-A1.2021年数维杯C题(运动会优化比赛模式探索)探讨
Python小白的数学建模课 A1-2021年数维杯C题(运动会优化比赛模式探索)探讨. 运动会优化比赛模式问题,是公平分配问题 『Python小白的数学建模课 @ Youcans』带你从数模小白成为 ...
- Python小白的数学建模课-03.线性规划
线性规划是很多数模培训讲的第一个算法,算法很简单,思想很深刻. 要通过线性规划问题,理解如何学习数学建模.如何选择编程算法. 『Python小白的数学建模课 @ Youcans』带你从数模小白成为国赛 ...
- Python小白的数学建模课-05.0-1规划
0-1 规划不仅是数模竞赛中的常见题型,也具有重要的现实意义. 双十一促销中网购平台要求二选一,就是互斥的决策问题,可以用 0-1规划建模. 小白学习 0-1 规划,首先要学会识别 0-1规划,学习将 ...
- Python小白的数学建模课-A3.12 个新冠疫情数模竞赛赛题与点评
新冠疫情深刻和全面地影响着社会和生活,已经成为数学建模竞赛的背景帝. 本文收集了与新冠疫情相关的的数学建模竞赛赛题,供大家参考,欢迎收藏关注. 『Python小白的数学建模课 @ Youcans』带你 ...
- Python小白的数学建模课-17.条件最短路径
条件最短路径问题,指带有约束条件.限制条件的最短路径问题.例如: 顶点约束,包括必经点或禁止点的限制: 边的约束,包括必经路段.禁行路段和单向路段:无权路径长度的限制,如要求经过几步或不超过几步到达终 ...
- Sketchup+ArcGIS三维建模与管理
一.软件安装及其说明 1.需要安装的软件及其安装: 这份报告主要涉及到的有三个需要安装的软件ArcGIS9.3(或9.2) .Sketchup6.0和SketchUp6 ESRI 插件. ArcGIS ...
- Python调用matplotlib实现交互式数据可视化图表案例
交互式的数据可视化图表是 New IT 新技术的一个应用方向,在过去,用户要在网页上查看数据,基本的实现方式就是在页面上显示一个表格出来,的而且确,用表格的方式来展示数据,显示的数据量会比较大,但是, ...
随机推荐
- WPF 组织机构摄像机树 全量加载 大数据量 分页加载摄像机节点
WPF 组织机构摄像机树 全量加载 大数据量 分页加载摄像机节点 完整代码: https://gitee.com/s0611163/WpfTreeDemo 性能: 8000组织机构20万摄像机,全量加 ...
- C++ 标准库 智能指针
C++没有垃圾回收,因此 new 出来的对象都要自己管理 为了方便的管理内存,我们发现垃圾回收中引用计数的思路很简单就能在 C++中实现,而其实标准库中就已经有这样的实现,也就是智能指针 它们的头文件 ...
- 题解 CF1550C. Manhattan Subarrays (思维)
来源:Educational Codeforces Round 111 (Rated for Div. 2) 不难但很好的思维题 设 \(d(p,q)\) 为 \(p,q\) 两点之间的曼哈顿距离 给 ...
- 题解 [HDU6747] Rotate 期望 + 逆元
来源:2020 年百度之星·程序设计大赛 - 初赛一 一个圈,从内到外一共被分成了 \(n\) 个环,中间是空的. 我们把从外到内第 \(i\) 层环平分成 \(a[i]\) 份,其中 \(a[i]\ ...
- vue tabBar导航栏设计实现3-进一步抽取tab-item
系列导航 一.vue tabBar导航栏设计实现1-初步设计 二.vue tabBar导航栏设计实现2-抽取tab-bar 三.vue tabBar导航栏设计实现3-进一步抽取tab-item 四.v ...
- C#将汉字转换为拼音
首先上效果图 方法调用 private void txt_Chinese_TextChanged(object sender, EventArgs e) { txt_PinYIn.Text = //调 ...
- 使用 Docker 安装 MongoDB 数据库
by emanjusaka from https://www.emanjusaka.top/2024/01/docker-create-mongo-db 彼岸花开可奈何 本文欢迎分享与聚合,全文转载请 ...
- WPF Prism框架Region失效了?
站长最近转载了痕迹的Prism 8系列博文,不知道你对该框架是否有一定了解了?不了解,可以看看本号转载的系列: WPF Prism框架合集(2.创建Prism应用程序) WPF Prism框架合集(3 ...
- STM32CubeMX教程23 FSMC - IS62WV51216(SRAM)驱动
1.准备材料 开发板(正点原子stm32f407探索者开发板V2.4) STM32CubeMX软件(Version 6.10.0) 野火DAP仿真器 keil µVision5 IDE(MDK-Arm ...
- [转帖]9.2 TiFlash 架构与原理
9.2 TiFlash 架构与原理 相比于行存,TiFlash 根据强 Schema 按列式存储结构化数据,借助 ClickHouse 的向量化计算引擎,带来读取和计算双重性能优势.相较于普通列存,T ...