FreeCAD学习笔记——FreeCAD Scripting Basics
FreeCAD Scripting Basics
1. python解释器和python help
提供类浏览器窗口,通过类似
App.
,就可以查看所有的类、属性、方法。print dir()
将列出当前在FreeCAD中加载的所有模块,print dir(App)
可以列出App模块的所有内容。
在FreeCAD帮助菜单中,您将找到标有“自动python模块文件”的条目,该条目将打开一个浏览器窗口,其中包含FreeCAD解释器可用的所有Python模块的完整实时生成文档,包括Python和FreeCAD内置模块,系统安装的模块和FreeCAD附加模块。
Built-in FreeCAD Modules: 由于FreeCAD设计为在没有图形用户界面(GUI)的情况下运行,几乎所有功能都分为两组:
核心功能——名为“App”,GUI功能——名为“Gui”
。因此,我们的两个主要的FreeCAD内置模块
称为App和Gui
。这两个模块也可以从解释器外部的脚本访问
,分别名称为“FreeCAD”和“FreeCADGui”
。在
App模块
中,您将找到与应用程序本身相关的所有内容,例如打开或关闭文件的方法,以及对文档的方法,例如设置活动文档或列出其内容。在
Gui模块
中,您将找到用于访问和管理Gui元素的工具,例如工作台及其工具栏
,更有趣的是,可以找到所有FreeCAD内容的图形表示
。
2. Built-in FreeCAD Modules中的App objects、Gui objects、document objects
- 正如我们所说,在FreeCAD中,
core 和representation
之间的一切都是分开的,这也包括3D对象。您可以通过App模块
访问对象的定义属性(在FreeCAD中称为要素
),并通过Gui模块
更改它们在屏幕上的表示方式
。例如,多维数据集具有定义属性
(如宽度,长度,高度
),存储在App对象
中。以及存储在相应Gui对象
中的表示属性
(如面颜色、绘图模式
)。 - 对于文档中的
每个App对象,都存在相应的Gui对象
。事实上,文档本身同时具有App和Gui对象。这仅在使用其完整界面运行FreeCAD时才有效
。在命令行版本中不存在GUI
,因此只有App对象可用。每次将App对象标记为“recomputed()”
时(例如,当其中一个参数发生更改时),都会重新生成对象的Gui部分
,可能直接对Gui对象进行的更改可能会丢失。
>>> myObject = App.ActiveDocument.getObject("box")
>>> myObject.Length
10 mm
>>> App.ActiveDocument.box.Length
10 mm
- 在FreeCAD中,您的所有工作都在文档中。文档包含几何图形,可以保存到文件中,可以同时打开多个文档。该
文档
与内部包含的几何图形一样,也具有App和Gui对象
。App对象
包含您的实际几何定义
,而Gui对象
包含文档的不同视图
。可以打开多个窗口,每个窗口都以不同的缩放系数或视角查看您的工作。这些视图都是文档Gui对象的一部分。
3. 使用其他模块
- FreeCAD和FreeCADGui模块单独负责在FreeCAD文档中
创建和管理对象
。它们实际上并不执行任何操作,例如创建或修改几何体
。因为几何体可以是几种类型,因此它由其他模块管理,每个模块负责管理某种几何类型。例如,Part Module使用OpenCascade内核,因此能够创建和操作B-rep类型的几何体
。该Mesh Module 能够建立和修改网格对象
。FreeCAD能够处理各种对象类型,这些对象类型可以在同一文档中共存,并且将来可以轻松添加新类型。 - 多维数据集存储在myMesh对象的Mesh属性中,它将返回错误类型的错误。因为
这些属性只存储某种类型
,myMesh的Mesh属性中,只能保存使用Mesh模块创建的内容。
>>> myObj = FreeCAD.ActiveDocument.getObject("box") #查询对象类型
>>> print myObj.TypeId
Part::Box
>>> print myObj.isDerivedFrom("Part::Feature") # 查询某个对象是否来自其中一个基础,比如Part::Feature
True
深入学习链接:
Part scripting——Topological data scripting
Mesh Scripting
Draft API
Category:API——所有模块的API
FreeCAD学习笔记——FreeCAD Scripting Basics相关推荐
- FreeCAD学习笔记——Python scripting tutorial
Python scripting tutorial 1. Object和ViewObject FreeCAD从一开始就作为命令行应用程序工作,没有用户界面.结`几乎所有东西都被分为"几何&q ...
- FreeCAD学习笔记——Mesh Scripting、Part Module和Code snippets
一. Mesh Scripting 一个完整的例子,计算一个球体和一个与球体相交的圆柱体之间的交集. >>> import Mesh, BuildRegularGeoms >& ...
- FreeCAD学习笔记——Units、Builtin modules和Workbench creation
一.Units ① 查看其他单位转换成系统标准单位: >>> tu = FreeCAD.Units.parseQuantity >>> tu('10 m') 100 ...
- freeCAD学习笔记一:尝试一个最简单的例子
听说freeCAD是一款优秀的3D制图软件,想尝试一下. 软件主界面 我的笔记 1 新建或打开文件 这个与大部分的软件都差不多,没有什么好说的,新建了一个文件,保存为test1,后来又另存为test2 ...
- freeCAD学习笔记二:复制与放置多个相似的实体
在用freeCAD制作3D图时,很可能会有这种需求,就是画出一个实体之后,另一个实体可能与已经做出来的实体差不多,只是细节或位置上有差别.这个时候就需要用到实体的复制与放置功能.将这个过程记录一下. ...
- freeCAD学习笔记三:复制草图中的对象
在绘制freeCAD中的草图时,肯定会产生这样的需要,就是想通过复制粘贴的方式来快速生成相似的对象,可是一开始没有找到如何复制草图的对象的菜单,还以为freeCAD不支持这个功能,后来才发现是没有找对 ...
- FreeCAD学习笔记——GuiCommand
Gui Command ① GuiCommand是FreeCAD在用户主要交互点中最重要的功能之一.每次用户选择菜单项或按下工具栏按钮时,它都会激活GuiCommand.GuiCommand的一些属性 ...
- 学习笔记之Linux Basics for Hackers【(美)OccupyTheWeb 著】
第一章:基础知识学习 一.术语解释 二进制文件:此术语是指可以执行的文件,二进制文件通常位于/ usr/bin 或 usr/sbin 目录中,包括 ps,cat,ls 和 cd 等实用程序以及无线应 ...
- freecad学习资料
freecad功能学习: B站freecad教学视频 freecad开发框架学习: JiNan.YouQuan.Soft freecad官方wiki:[宝藏,说的很明白] freecad官方wiki ...
最新文章
- MBTiles离线包生成和使用
- FPA笔记三 数据功能的识别
- Linux记录-进程数和句柄数调整
- STM32F103ZET6 蜂鸣器、按键
- 从数据仓库到大数据平台再到数据中台(内附13张架构图)
- SketchUp-2022版本
- qq通讯助手java版,QQ同步助手1.0(Java)Build0028[安卓软件]
- 【DG】物理DG中LNSn、NSS、NSA进程
- 最新Win10离线安装.NET Framework 3.5的方法(附离线包2022/3/22)
- 个人公众号如何运营?可以从哪些方向突破?
- 移动硬盘 无法访问 解决方法
- 联通宽带拨号开机自动连接
- 灰色模型代码GM(1,1),从excel导入数据,亦可导出数据到excel中。
- 企业中台最佳实践--组织架构调整(五)
- 负责将用户输入的信息转化为计算机,计算机基础复习题参考答案-
- 大数据分析在病毒疫苗研究中的应用
- 两款三维GIS软件对比:Skyline和EV-Globe
- RabbitMQ:Erlang distribution failed解决方案
- 学完这些图像处理,我拿去给女友修了图...
- 怎么用PDF虚拟打印机给PDF添加背景
热门文章
- java足球管理界面_基于jsp的足球俱乐部管理系统-JavaEE实现足球俱乐部管理系统 - java项目源码...
- 京东C++开发工程师 2020校招卷总结
- 凹形长方形的周长计算_《巧求周长》教学设计
- Android:TagView 云标签item多种颜色设置
- 一篇掌握SpringBoot+SpringCache+Redis超详细实例
- PHP dechex,PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
- vue 设置el-table 某一列点击出现输入框可以编辑
- [Python]Django请求与响应
- 【项目管理】灰度发布(灰度放量)
- library netcdf 路径_中国科学院超级计算青岛分中心NETCDF4安装手册