FreeCAD入门指南(二)——添加属性

0 前言

  在FreeCAD入门指南(一)内,介绍了两种创建工字钢的方法:第一种,通过鼠标操作创建;第二种,通过代码实现。点击“工字钢”物体,在data属性面板可以看到“工字钢”具有哪些属性。
在这里插入图片描述

  接下来仍以“工字钢”为例,讲述如何在data属性面板新增物体属性,并且实现当属性值发生改变时,物体会随之发生变化的效果。

1 源码分析

在这里插入图片描述
  通过python console显示的代码,发现创建三维物体的关键是“Arch.makeStructure”函数。该函数源码在ArchStructure.py文件内(该文件所在位置:FreeCAD安装目录→Mod→Arch→ArchStructure.py或者在github上搜索)。决定物体属性的是“Arch.makeStructure”函数内的“_Structure(obj)”。“_Structure”是一个class,源码组成部分如下(源码在ArchStructure.py):与物体属性密切相关的是“setProperties”和“execute”两个函数。“setProperties”决定了物体的具体属性;“execute”函数的作用是,当data属性面板任一属性值发生变化时,将对物体进行重新计算。
在这里插入图片描述

2 属性

2.1 新增属性

  从setProperties函数中,总结归纳新增属性的伪代码如下:

obj.addProperty(属性类别, 属性名称, 属性所在组的名称, 对属性的介绍)
#示例
#obj.addProperty("App::PropertyLength","Height","Structure","App::Property","The height or extrusion depth of this element. Keep 0 for automatic")

addProperty函数需要传入四个参数。其中,**“属性类别”**名称固定,具体详见FreeCAD属性介绍https://wiki.freecad.org/Property;除特殊情况外,其余三个参数自定。
需要注意:新增物体属性并非一定要写在“setProperties”函数内,写在__init__内也行。

2.2 扩展“execute”函数

  FreeCAD对物体进行重新计算是根据“execute”函数,因此,如果希望新增的属性值参与重计算,那么需要根据实际改写“execute”函数。

以上内容是本人学习总结,如有错误,敬请谅解!

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值