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

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值