PythonOCC 3D图形库学习—创建立方体模型

Open CASCADE(简称OCC)平台是是一个开源的C++类库,OCC主要用于开发二维和三维几何建模应用程序,包括通用的或专业的计算机辅助设计CAD系统、制造或分析领域的应用程序、仿真应用程序或图形演示工具。

PythonOCC是对Open CASCADE的封装。PythonOCC按照官方描述:3D CAD/CAE/PLM DEVELOPMENT FRAMEWORK FOR THE PYTHON PROGRAMMING LANGUAGE. 即用于开发CAD/CAE/CAM程序的一个Python框架。PythonOCC的下载地址为:http://www.pythonocc.org/download/

学习一个框架先从最简单的"Hello world"程序开始,下面用PythonOCC创建一个最简单的立方体并显示出来。

 1 '''
 2 This examples creates and displays a simple box.
 3 '''
 4 
 5 # The first line loads the init_display function, necessary to
 6 # enable the builtin simple gui provided with pythonocc
 7 from OCC.Display.SimpleGui import init_display
 8 
 9 # Then we import the class that instanciates a box
10 # Here the BRepPrimAPI module means Boundary Representation Primitive API.
11 # It provides an API for creation of basic geometries like spheres,cones etc
12 from OCC.BRepPrimAPI import BRepPrimAPI_MakeBox
13 
14 # Following line initializes the display
15 # By default, the init_display function looks for a Qt based Gui (PyQt, PySide)
16 display, start_display, add_menu, add_function_to_menu = init_display()
17 
18 # The BRepPrimAPI_MakeBox class is initialized with the 3 parameters of the box: widht, height, depth
19 my_box = BRepPrimAPI_MakeBox(10., 20., 30.).Shape()
20 
21 # Then the box shape is sent to the renderer
22 display.DisplayShape(my_box, update=True)
23 
24 # At last, we enter the gui mainloop
25 start_display()

显示结果如下,按键盘上的W,S,H键可以在线框模型,面模型和消隐线模型之间切换。按住左键移动鼠标可以旋转物体,鼠标中键用于缩放,按住鼠标中键可以平移物体

参考:

http://www.pythonocc.org/

http://www.vrplumber.com/py3d.py

https://github.com/tpaviot/pythonocc-core/blob/5b7ac9167e50e302cea534c5c7777ca2432f6d09/doc/examples/helloworld.rst

转载于:https://www.cnblogs.com/21207-iHome/p/5241151.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458262.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Struts2、SpringMVC、Servlet(Jsp)性能对比 测试 。 Servlet的性能应该是最好的,可以做为参考基准,其它测试都要向它看齐,参照...

2019独角兽企业重金招聘Python工程师标准>>> Struts2、SpringMVC、Servlet(Jsp)性能对比 测试 。 Servlet的性能应该是最好的,可以做为参考基准,其它测试都要向它看齐,参照它。 做为一个程序员,对于各个框架的性能要有…

深度相机(三)--三种方案对比

from:https://blog.csdn.net/app_12062011/article/details/52511701RGBD方案对比:关键技术规格: 1.检测范围; 2.检测精度; 3.检测角度; 4.帧率。 5.模块大小 6.功耗 目前主流的深度摄像头方案在检测距离上…

Activity隐式启动IntentFilter

时间:2016年3月4日09:54:02IntentFilter过滤信息:action、category、dataaction:1.Intent中的action必须能够和过滤条件中的action匹配,过滤条件中可以有多个action。2.Intent中如果设置多个action则过滤条件中必须至少有同样数量…

基于图像分割的立体匹配方法

1.绪论 立体匹配是三维重建系统的关键步骤,并且作为一种非接触测量方法在工业以及科研领域具有重要的应用价值。为了完成匹配工作以及获取场景的稠密视差图,可以通过构建能量函数对应立体匹配的约束条件。复杂能量函数的全局最优解通常是NP难问题。相对于…

深度相机之TOF原理详解

/*******************************************************************************************************************本文转载源链接没有找到,若有幸被原创作者访问到,请留下原出处,我会更新,谢谢,转载至我的博…

nodejs npm常用命令

npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准。有了npm,可以很快的找到特定服务要使用的包,进行下载、安装以及管理已经安装的包。 1、npm install moduleNames:安装Node模块安…

centos 7 /etc/rc.local 开机不执行的问题

最近发现centos7 的/etc/rc.local不会开机执行,于是认真看了下/etc/rc.local文件内容的就发现了问题的原因了 1234567891011#!/bin/bash# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES## It is highly advisable to create own systemd services or udev rules# …

深度相机(二)--结构光深度测距

原文: http://blog.sina.com.cn/s/blog_80ce3a550100wg5j.html http://blog.csdn.net/u013360881/article/details/51395427 网上资源:http://eia.udg.es/~qsalvi/recerca.html 结构光编码: 在3D 的深度获取上,最为常见的方法是类…

几种特别的颜色参数

switch (buttonIndex) { case 0: aColor [UIColor redColor]; bColor [UIColor colorWithRed:0.97 green:0.68 blue:0.75 alpha:1.0];// 鸨色 break; case 1: aColor [UIColor orangeColor]; bColor [UIColor colorWithRed:1.0 green:0.87 blue:0.72 alpha:1.0];// 肌色 br…

linux 程序包管理5 编译安装

1.二进制程序的访问方法vim /etc/profile.d/apache.shPATH/usr/local/apache/bin:/usr/local/apache/sbin$PATHexport PATH2.头文件输出给系统ln -sv /sur/local/apache/include /usr/include/httpd3.库文件输出vim /etc/ld.so.conf.d/httpd.conf/usr/local/apache/binldconfig…

用python实现模拟登录人人网

用python实现模拟登录人人网 字数4068 阅读1762 评论19 喜欢46我决定从头说起。懂的人可以快速略过前面理论看最后几张图。 web基础知识 从OSI参考模型(从低到高:物理层,数据链路层,网络层,传输层,会话层&a…

双目相机--双目视差与深度距离关系推导详解

相机成像的模型如下图所示: P为空间中的点,P1和P2是点P在左右像平面上的成像点,f是焦距,OR和OT是左右相机的光心。由下图可见左右两个相机的光轴是平行的。XR和XT是两个成像点在左右两个像面上距离图像左边缘的距离。 -----------…

SQL Server有这些属性吗

2019独角兽企业重金招聘Python工程师标准>>> Navicat for SQL Server是一个全面的图形化方式管理数据库,可进行创建、编辑和删除全部数据库对象,例如表、视图、函数、索引和触发器,或运行SQL查询和脚本,查看或编辑BLOB…

Android中常见功能包描述

在Android中,各种包写成android.*的方式,重要包的描述如下所示:android.app :提供高层的程序模型、提供基本的运行环境android.content:包含各种的对设备上的数据进行访问和发布的类android.database :通过…

【立体视觉】双目立体标定与立体校正

from:https://blog.csdn.net/u011574296/article/details/73826420 参考: 机器视觉学习笔记(6)——双目摄像机标定参数说明 机器视觉学习笔记(8)——基于OpenCV的Bouguet立体校正 双摄像头立体成像(三)-畸变…

bootstrap .col-md-6 文字居中问题处理

转载于:https://www.cnblogs.com/benbenfishfish/p/5672520.html

使用jd-gui+javassist修改已编译好的class文件

1.原因:因为公司代码管理不当导致源码丢失,只好已编译好的class文件进行修改 2.首先先在myeclipse中新建java项目并导入javassist 3.将需要修改的文件放到指定文件夹下 4..在项目中添加以下代码 package dtj;import javassist.ClassPool; import javassi…

机器视觉学习笔记(4)——单目摄像机标定参数说明

from:https://blog.csdn.net/xuelabizp/article/details/50314633机器视觉学习笔记(4)——单目摄像机标定参数说明 标签: 机器视觉1.针孔摄像机模型 在介绍摄像机标定参数之前,需要先简单说一下针孔摄像机的原理。投影…

mysql 5.6 binlog组提交

mysql 5.6 binlog组提交实现原理http://blog.itpub.net/15480802/viewspace-1411356 Redo组提交 Redo提交流程大致如下 lock log->mutex write redo log buffer to disk unlock log->mutex fsync Fsync写磁盘耗时较长且不占用log->mutex,也就是其执行期间其…

python基础(正则表达式)

http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 转载于:https://www.cnblogs.com/wanderingzj/p/5253325.html