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相关推荐

  1. FreeCAD学习笔记——Python scripting tutorial

    Python scripting tutorial 1. Object和ViewObject FreeCAD从一开始就作为命令行应用程序工作,没有用户界面.结`几乎所有东西都被分为"几何&q ...

  2. FreeCAD学习笔记——Mesh Scripting、Part Module和Code snippets

    一. Mesh Scripting 一个完整的例子,计算一个球体和一个与球体相交的圆柱体之间的交集. >>> import Mesh, BuildRegularGeoms >& ...

  3. FreeCAD学习笔记——Units、Builtin modules和Workbench creation

    一.Units ① 查看其他单位转换成系统标准单位: >>> tu = FreeCAD.Units.parseQuantity >>> tu('10 m') 100 ...

  4. freeCAD学习笔记一:尝试一个最简单的例子

    听说freeCAD是一款优秀的3D制图软件,想尝试一下. 软件主界面 我的笔记 1 新建或打开文件 这个与大部分的软件都差不多,没有什么好说的,新建了一个文件,保存为test1,后来又另存为test2 ...

  5. freeCAD学习笔记二:复制与放置多个相似的实体

    在用freeCAD制作3D图时,很可能会有这种需求,就是画出一个实体之后,另一个实体可能与已经做出来的实体差不多,只是细节或位置上有差别.这个时候就需要用到实体的复制与放置功能.将这个过程记录一下. ...

  6. freeCAD学习笔记三:复制草图中的对象

    在绘制freeCAD中的草图时,肯定会产生这样的需要,就是想通过复制粘贴的方式来快速生成相似的对象,可是一开始没有找到如何复制草图的对象的菜单,还以为freeCAD不支持这个功能,后来才发现是没有找对 ...

  7. FreeCAD学习笔记——GuiCommand

    Gui Command ① GuiCommand是FreeCAD在用户主要交互点中最重要的功能之一.每次用户选择菜单项或按下工具栏按钮时,它都会激活GuiCommand.GuiCommand的一些属性 ...

  8. 学习笔记之Linux Basics for Hackers【(美)OccupyTheWeb 著】

    第一章:基础知识学习 一.术语解释 二进制文件:此术语是指可以执行的文件,二进制文件通常位于/ usr/bin 或 usr/sbin 目录中,包括 ps,cat,ls 和 cd 等实用程序以及无线应 ...

  9. freecad学习资料

    freecad功能学习: B站freecad教学视频 freecad开发框架学习: JiNan.YouQuan.Soft freecad官方wiki:[宝藏,说的很明白] freecad官方wiki ...

最新文章

  1. MBTiles离线包生成和使用
  2. FPA笔记三 数据功能的识别
  3. Linux记录-进程数和句柄数调整
  4. STM32F103ZET6 蜂鸣器、按键
  5. 从数据仓库到大数据平台再到数据中台(内附13张架构图)
  6. SketchUp-2022版本
  7. qq通讯助手java版,QQ同步助手1.0(Java)Build0028[安卓软件]
  8. 【DG】物理DG中LNSn、NSS、NSA进程
  9. 最新Win10离线安装.NET Framework 3.5的方法(附离线包2022/3/22)
  10. 个人公众号如何运营?可以从哪些方向突破?
  11. 移动硬盘 无法访问 解决方法
  12. 联通宽带拨号开机自动连接
  13. 灰色模型代码GM(1,1),从excel导入数据,亦可导出数据到excel中。
  14. 企业中台最佳实践--组织架构调整(五)
  15. 负责将用户输入的信息转化为计算机,计算机基础复习题参考答案-
  16. 大数据分析在病毒疫苗研究中的应用
  17. 两款三维GIS软件对比:Skyline和EV-Globe
  18. RabbitMQ:Erlang distribution failed解决方案
  19. 学完这些图像处理,我拿去给女友修了图...
  20. 怎么用PDF虚拟打印机给PDF添加背景

热门文章

  1. java足球管理界面_基于jsp的足球俱乐部管理系统-JavaEE实现足球俱乐部管理系统 - java项目源码...
  2. 京东C++开发工程师 2020校招卷总结
  3. 凹形长方形的周长计算_《巧求周长》教学设计
  4. Android:TagView 云标签item多种颜色设置
  5. 一篇掌握SpringBoot+SpringCache+Redis超详细实例
  6. PHP dechex,PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
  7. vue 设置el-table 某一列点击出现输入框可以编辑
  8. [Python]Django请求与响应
  9. 【项目管理】灰度发布(灰度放量)
  10. library netcdf 路径_中国科学院超级计算青岛分中心NETCDF4安装手册