c2064 项不会计算为接受0个参数的函数_getMask()讨论:Abaqus Part对象的成员变量常用函数...
最近工作之余,想制作一个自动对多cell的Part进行skin并建立相应set的小插件。我的目的是对该Part中各个cell分别进行skin,以便于将来赋予不同的属性。这样可以有效的减少输出结果文件的大小。
本以为这应该是一个极其简单的小问题,不会浪费我太多的精力。但是当开始写程序的时候才发现一个巨大的坑点:Part对象的Skin函数不接受列表类型的参数或者数组类型的参数,它只接受ABAQUS特定的几何数组类型或者序列类型,按理说list类型属于序列类型,但是该函数并不接受。如果通过getSequenceFromMask生成可用faces,mask究竟如何获得又是一个问题。
mask为什么难以获得呢?因为getMask()函数是FaceArray对象的成员函数,而该对象的建立是通过part对象建立的(p.faces),它会生成所有faces的合集(比如[0,1,2,3,4,5,6]),而我要进行skin的cell只包含这些faces中的一部分,并且编号是随机的不可预测的,但是组成该cell的face编号可以通过c.getFaces()((2,3.4,5))。按照我最初的想法,我有了这些面的ID号,把它们从p.faces中读取出来重新组合就可以了,但是组合完成的类型是list,Skin函数不接受它作为参数。我尝试了多种方法均不能将最终的结果转化成Skin可以使用的格式。并且由于组合后的不是abaqus的几何数组类型,所以它并没有getMask()方法,也就无法通过该方法获得可以使用的mask。
无奈之下只好使用getSequenceFromMask函数,这就要解决一个麻烦的问题:getSequenceFromMask的mask值究竟怎么来?目前看来唯一的办法就是解密getMask()函数。(未知原因,公司网络连接不了ABAQUS帮助文件。)
我使用如下命令获取目标part的faces信息,得知共有47个面:
>>> p = mdb.models['G101ABS'].parts['G101ABS-qiaoguan-banhuang-1']
>>> f = p.faces
>>> len(f)
47
>>>
我想先看一下,如果我想选择所有面,mask是多少:
>>> f.getMask()
("('[#ffffffff #7fff ]',),",)
>>>
好吧,我看出来了这是一个十六进制的东西,但是完全搞不明白这堆乱码究竟怎么来的...
我想看看编号是0的面的mask是多少:
>>> f0=f[:1]
>>> f0.getMask()
("('[#1 ]',),",)
>>>
我想看看编号是1的面的mask是多少:
>>> f1=f[1:2]
>>> f1.getMask()
("('[#2 ]',),",)
>>>
不出所料,那么编号2的面mask会是3吗:
>>> f2=f[2:3]
>>> f2.getMask()
("('[#4 ]',),",)
>>>
好吧竟然是4,那么编号3的面mask会是多少呢?
>>> f3=f[3:4]
>>> f3.getMask()
("('[#8 ]',),",)
>>>
那么编号4的面mask会是多少呢?
>>> f4=f[4:5]
>>> f4.getMask()
("('[#10 ]',),",)
>>>
好吧不出意外是16(说过啦,mask是十六进制的)。这让我想起了初中数学对我来说噩梦难度的找规律填数字问题。这到底是一个什么规律呢?各位客官也许已经有了发现,不如让我试试编号是[1,2,3]组合的mask是多少吧:
>>> f123=f[1:4]
>>> f123.getMask()
("('[#e ]',),",)
>>>
结果是e(14),非常漂亮的2+4+8。
到这里大家可以想象一下:有一根导线将这47个face按照顺序串在一起,每一个face都是一个小灯泡,你需要哪个,哪个就亮而其余的都是暗的,然后它们组成了美丽的二进制数字:所以1是1,01是2,001是4,0001是8,00001是16,0111是14。规律好像被我们找到了。不过还有一个问题啊,还记得这个吗?
>>> f.getMask()
("('[#ffffffff #7fff ]',),",)
>>>
这个#ffffffff #7fff 是什么鬼啊?哦哦,应该是ABAQUS希望每32个灯泡一组吧?那就试试吧,看看32号面(第33个面,因为第一面的id是0)的mask是多少吧,应该会是# #1 吧?
>>> f32=f[32:33]
>>> f32.getMask()
("('[#0 #1 ]',),",)
>>>
好的,没问题!到这里我应该是顺利的找出了getMask()的计算方法了,但是我还是不会设置ABAQUS特有的几何数组唉,那只能自己制作一个getmask函数来代替getMask函数来生成期待已久的mask啦。getmask()函数接受正整数list类型参数生成该list的mask。
通过实践顺利完成了对多cell的part进行逐一skin的功能。
等等,还有一个大问题,这些cell都是有公用面的,那么skin出来的face再赋予属性,岂不是相当于公用面赋予了多余的属性?如此看来,还需要对c.getFaces()生成的list进行更进一步的剔除相同项之后再使用自己的getmask函数。这样就完美了。
OK,通过如上的介绍,相信有心人完全可以自己解决这个小问题。附件就是这个小插件啦。期待各位的使用反馈:
getMask()讨论:Abaqus Part对象的成员变量常用函数www.jishulink.com
c2064 项不会计算为接受0个参数的函数_getMask()讨论:Abaqus Part对象的成员变量常用函数...相关推荐
- c2064 项不会计算为接受0个参数的函数_【JS必知必会】高阶函数详解与实战
本文涵盖 前言 高级函数概念 函数作为参数的高阶函数 map filter reduce sort详解与实战 函数作为返回值的高阶函数 isType函数与add求和函数 如何自己创建高阶函数 前言 一 ...
- c2064 项不会计算为接受0个参数的函数_无网格法理论与Matlab程序设计(6)——传统径向基点插值(RPIM)形函数...
参考资料 G.R.Liu Y.T.GU著 王建明 周学军译 <无网格法理论及程序设计> 数值实现 Matlab 2019a 前情回顾 形式主义的居士:无网格法理论与Matlab程序设计(1 ...
- c++ 项不会计算为接受 0 个参数的函数_OFFSET函数从入门到进阶之进阶操作篇(与MATCH组合)...
了解了OFFSET函数的参数和基本用法,我们就开始进行进阶操作了.在基本用法中,发现各个参数都是我们单个输入,实际工作中,OFFSET函数通常用在区域数据的引用,这就会牵涉到通过拖动进行填充,那里面的 ...
- oracle中计算两个日期之间得天数、月数、年数以及结合使用常用函数
1.相差天数(两个日期相减)--Oracle中两个日期相差天数-- select TO_NUMBER(TO_DATE('2018-6-5','yyyy-mm-dd hh24:mi:ss')- TO_D ...
- C语言sum函数不接受一个参数,函数不接受2个参数怎么解决
c++函数不接受两个参数是为什么 class Time { int hour,minute,second; public: Time(int a=0,int b=0,i需要在使用之前声明一下函数,你在 ...
- 【体能五项】体能五项训练成绩计算Python实现
文章目录 一.项目介绍 1.1 简介 1.2 项目编制环境 1.3 程序界面 (1)自动填表程序界面 (2)成绩计算程序界面 1.4 实现效果 (1)自动填表功能 (2)成绩计算功能 二.项目结构 2 ...
- java实现频繁项集_java实现Apriori算法——频繁项集的计算
请注意,本文编写于 1195 天前,最后修改于 708 天前,其中某些信息可能已经过时. 前言 之前学校开的选修课<数据挖掘>,布置的两道算法题,时间有限完成其中一道:用Apriori算法 ...
- 要求将数组中的0项去掉,将不为0的值存入一个新的数组,
package Day05;/*** 7.* 现在有如下一个数组:* int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};* 要求将以上数组中的0项去掉,将不 ...
- 岩土工程、颗粒流计算软件PFC6.0疫情传播案例——生化危机、病毒传播感染、古尔丹大战霜狼氏族
颗粒流软件PFC6.0 案例--病毒感染.传播感染算例<古尔丹的黑魔法军团> 没人点赞这个博客就关啦!T_T 博客介绍 代码 结果 没人点赞这个博客就关啦!T_T 博客介绍 想了几个名字: ...
最新文章
- R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(改变图例位置、移除图例)实战
- 一首歌的时间看懂荷兰三色旗问题
- HDU 4777 Rabbit Kingdom 树状数组
- 交换机用光纤模块互连一端灯不亮或两端都不亮,如何处理?
- 程序员降薪求职到底该不该?
- PyPI 管理员删除已潜伏10个月且下载量超1万次的恶意包
- 中间件和Django缓存
- 农广传媒获中体基金2000万元Pre-A轮融资
- 【转载】别了,摩托罗拉(十一):小高尔文“新政”
- Metasplotable3 简易安装教程
- Java自学指南一、找一个开始并能坚持下去的理由
- 银河麒麟安装steam
- 全国哀悼日 网站变灰装(附代码)
- 组织架构与中台建设,回顾阿里小米京东美团四大商业巨头的战略变迁
- 哪个数据库替代oracle,关于Oracle数据库替代加密算法
- 超融合架构真的完美吗?
- fatal error C1189
- 解析:未来物联网发展的十大趋势
- ios android md5加密,iOS中使用MD5加密
- Android实现语音识别成中文