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 新技术的一个应用方向,在过去,用户要在网页上查看数据,基本的实现方式就是在页面上显示一个表格出来,的而且确,用表格的方式来展示数据,显示的数据量会比较大,但是, ...
随机推荐
- Java Socket Demo
服务端: package com.sux.demo; import java.io.*; import java.net.ServerSocket; import java.net.Socket; i ...
- AtCoder Beginner Contest 194 Editorial
A - I Scream 根据 奶脂率 和 乳脂率 判断是何种冰淇淋 int main() { ios_base::sync_with_stdio(false), cin.tie(0); int a, ...
- 源码深度解析 Handler 机制及应用
本文以源码分析+实际应用的形式,详细讲解了 Handler 机制的原理,以及在开发中的使用场景和要注意的地方. 一.基本原理回顾 在 Android 开发中,Handler及相关衍生类的应用经常用到, ...
- 深度揭秘阿里云 Serverless Kubernetes
作者 | 陈晓宇(阿里云技术专家) 策划 | 褚杏娟 伴随着云原生的发展,从早先的单机版 Docker 到 Kubernetes 的编排领域的一统江湖,再到云上托管 Kubernetes,技术风雨变化 ...
- echarts自定义legend样式
https://blog.csdn.net/changyana/article/details/126281275
- C++跨DLL内存所有权问题探幽(一)DLL提供的全局单例模式
最近在开发的时候,特别是遇到关于跨DLL申请对象.指针.内存等问题的时候遇到了这么一个问题. 问题 跨DLL能不能调用到DLL中提供的单例? 问题比较简单,就是我现在有一个进程A,有DLL B DLL ...
- Ubuntu22.04上使用systemctl命令配置开机自启动服务、脚本、命令
systemctl介绍 systemctl是Linux系统上用于管理系统服务(systemd单元)的命令行工具.它可以用来启动.停止.重启.禁用.启用.查询和管理系统服务的状态. 以下是一些常用的sy ...
- Synchronized的使用及原理总结
本文为博主原创,未经允许不得转载 Synchronized的使用总结: 1.作用 原理 synchronized 的锁膨胀升级过程 对象的内存布局 锁的消除及逃逸分析 synchronized的方 ...
- 部署开源项目管理工具focalboard
前言 focalboard是一款开源项目管理工具,类似Jira.Trello.官网地址 组件 版本 说明 Debian 12.1 操作系统 docker 20.10.7 容器运行时 docker-co ...
- 软考下午科目——第三章——UML分析与设计
UML分析与设计 大纲要求: 学会面向对象的分析与设计,掌握UML描述方法 UML基础知识 面向对象的分析与设计 面向对象方法是一种运用对象.类.继承.封装.聚合.关联.消息.多态性等概念来构造系统的 ...