侵权投诉

HFSS-API常用的基本形状和布尔操作函数

知社学术圈 2021-08-27 15:38 次阅读

摘要:

上节HFSS-API入门第一弹:画个Box主要是分享了调用改良hfssapi新建工程和设计文件并插入变量画一个参数化的Box,本期推文将推送常用的基本形状和布尔操作函数。欢迎小伙伴们阅读、分享、再看,转发给更多有需要的人!喜欢的小伙伴可赞赏下作者哦。

本文使用的软件为MATLAB2019a和AnsysEM 18.2

0 1 简单介绍

常规模型大家只需要用到画方块、柱子、矩形片、圆形,并对其进行Unite和Subtract之类的布尔操作即可。上次推文已经介绍了hfssBox的函数用法,下节将先对hfssCylinder,hfssRectangle,hfssCircle进行函数使用讲解,然后介绍hfssUnite和hfssSubtract的加减操作函数。

拉到文末有下载改良后的hfssapi,建议收藏链接,后续新出的函数会不定期在该文件夹内更新。文件也不大,几百kB,每次有更新重新下载覆盖即可。

先提醒下matlab打开有中文注释代码乱码问题,按下图所示将Editor的Font改为Monospaced即可。

对于设置Color,有的人想花里胡哨地配色的话,可以进行RGB三色的颜色查询:https://www.sojson.com/rgb.html。没有绝对颜感的人不要轻易尝试,否则配出来会是下图这种样子。可能你觉得很绚丽,但是真的很乡村风啊!!!本人还是习惯用上次推文的三种配色,极简最好。

0 2 函数使用教程

接下来先介绍三个建模常用的函数:hfssCylinder,hfssRectangle,hfssCircle。

% hfssCylinder(fid, CylinderName, Axis, Center, Radius, Height, Units, Color, Material, Transparency, flag)% CylinderName:圆柱的名字;Axis:圆柱建模的中心轴向(‘X’,‘Y’或‘Z’,大小写均可);Center:圆柱底面的圆心坐标;% Radius:圆柱底面的圆半径;Height:圆柱的高度;Units:单位% Color:圆柱的颜色(RGB);Material:材料名字(不要随便自己整个名字,必须是HFSS材料库里的名字);% Transparency:显示的透明度;flag:值为1时Center, Radius, Height只支持数字,值为2时value支持元胞数组表达式% 实例:% hfssCylinder(fid, ‘Cy1’, ‘Z’, {‘Cy_dx’, ‘Cy_dy’, ‘Cy_dz’}, ‘Cy_R’,‘Cy_H’, ‘mm’,...% “(132 132 193)”, “FR4_epoxy”, 0, 2);% hfssCylinder(fid, ‘Cy1’, ‘Z’, [0,0,0], 0.5,2, ‘mm’,...% “(132 132 193)”, “FR4_epoxy”, 0, 1);

% hfssRectangle(fid, RectangleName, Axis, Start, Width, Length, Units, Color, Transparency,flag)% RectangleName:矩形片的名字;Axis:矩形片的法向轴向(‘X’,‘Y’或‘Z’,大小写均可);% Start:矩形片的起始基点;% Width:矩形片的宽;Length:矩形片的长;Units:单位% Color:矩形片的颜色(RGB);% Transparency:显示的透明度;% flag:值为1时Start, Width, Length只支持数字,值为2时value支持元胞数组表达式% HFSS中的Rectangle只可设置边界条件,不可设置材料属性% 实例:% hfssRectangle(fid, ‘Rec1’, ‘Z’, {‘Rec_dx’, ‘Rec_dy’, ‘Rec_dz’}, ‘Rec_W’,‘Rec_L’, ‘mm’,...% “(132 132 193)”, 0, 2);% hfssRectangle(fid, ‘Rec1’, ‘Z’, [0,0,0], 1, 2, ‘mm’,...% “(132 132 193)”, 0, 1);

% hfssCircle(fid, CircleName, Axis, Center, Radius, Units, Color, Transparency,flag)% CircleName:圆形片的名字;Axis:圆形片的法向轴向(‘X’,‘Y’或‘Z’,大小写均可);Center:圆形片的圆心坐标;% Radius:圆形片的半径;Units:单位% Color:圆形片的颜色(RGB);% Transparency:显示的透明度;% flag:值为1时Center, Radius只支持数字,值为2时value支持元胞数组表达式% HFSS中的Circle只可设置边界条件,不可设置材料属性% 实例:% hfssCircle(fid, ‘Cir1’, ‘Z’,{‘Cir_dx’, ‘Cir_dy’, ‘Cir_dz’}, ‘Cir_R’, ‘mm’,...% “(128 128 128)”, 0, 2)% hfssCircle(fid, ‘Cir1’, ‘Z’,[0,0,0], 1, ‘mm’,...% “(128 128 128)”, 0, 1)

需要注意上面的hfssRectangle,当坐标轴分别选取‘X’,‘Y’或‘Z’时,按下面代码建立三个Rectangle模型。

hfssRectangle(fid, ‘Rec1’, ‘X’, {‘Rec_dx’, ‘Rec_dy’, ‘Rec_dz’}, ‘Rec_W’,‘Rec_L’, ‘mm’,...“(255 128 0)”, 0, 2);hfssRectangle(fid, ‘Rec2’, ‘Y’, {‘Rec_dx’, ‘Rec_dy’, ‘Rec_dz’}, ‘Rec_W’,‘Rec_L’, ‘mm’,...“(255 128 0)”, 0, 2);hfssRectangle(fid, ‘Rec3’, ‘Z’, {‘Rec_dx’, ‘Rec_dy’, ‘Rec_dz’}, ‘Rec_W’,‘Rec_L’, ‘mm’,...“(255 128 0)”, 0, 2)

逐个点击这三个Rectangle,查看其属性会发现:若坐标轴选‘X’,则‘Rec_W’,‘Rec_L’分别赋值给Ysize和Zsize;若坐标轴选‘Y’,则‘Rec_W’,‘Rec_L’分别赋值给Zsize和Xsize;若坐标轴选‘Z’,则‘Rec_W’,‘Rec_L’分别赋值给Xsize和Ysize;即按着‘X’,‘Y’,‘Z’顺序进行轮换式赋值。

在建模过程中,往往需要Unite和Subtract这两种加减型的布尔操作,这时候hfssUnite和hfssSubtract函数就派上用场了。

% hfssUnite(fid, ObjectList)% ObjectList:待Unite的物体名字% 实例:% hfssUnite(fid, {‘Object1Name’, ‘Object2Name’, ‘Object3Name’});

% hfssSubtract(fid, BigParts, SmallParts, KeepOriginals)% BigParts:待减物品名字;SmallParts:被减的物体名字% KeepOriginals:为false时不保留被减物,为true时则保留被减物% 实例:% hfssSubtract(fid, {‘Object1Name’}, {‘Object2Name’}, false);

通过下面的视频可以直观感受下以上五个函数的建模作用,以及hfssSubtract的KeepOriginals为false和true时的差异:

上面视频的两段代码文件在文末的链接内,按个人情况按图索骥地修改tmpPrjFile,tmpScriptFile ,hfssExePath这几个路径和Design_name,将编写的MATLAB生成vbs脚本的.m文件与下载的hfssapi-by-Jianhui Huang放在同一个总文件夹内,点击运行即可生成vbs脚本(在自行赋值的tmpScriptFile的这个路径下)。vbs脚本可以直接点击运行,或者在HFSS软件中Run Script。

基础性地写代码编注释还是挺费时间和精力的,希望大家多点赞分享。

代码分享区

hfssapi-by-Jianhui Huang

下载链接(后续代码持续在下面链接更新):

https://pan.baidu.com/s/1N0EE3Uv7krkypfzi9vxCvg

提取码:o5p5

代码已封装好打包为p文件不可修改,每次重新下载覆盖,按函数注释进行掉包即可!

注释事项:MATLAB生成vbs脚本的.m文件与hfssapi-by-Jianhui Huang放在同一个总文件夹内。不要再examples文件夹内运行.m文件!

责任编辑:haq

原文标题:HFSS-API入门第二弹:基本形状和操作

文章出处:【微信号:zhishexueshuquan,微信公众号:知社学术圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

怎样用printf 函数和getchar 函数去简化STM32串口数据的传输呢

printf 函数和getchar 函数有何功能? 怎样用printf 函数和getchar 函数去简化STM32串口数据的传输呢? ...
发表于 10-22 07:49 0次 阅读

怎样去设计一种基于单片机的智能窗帘呢

怎样去设计一种基于单片机的智能窗帘呢?怎样去编写其主函数代码呢?...
发表于 10-22 07:29 0次 阅读

map文件从哪来?map文件有啥用

map文件是什么? map文件从哪来? map文件有啥用? ...
发表于 10-22 06:54 0次 阅读

怎样去移植LWIP_IAP中的iap_http模式呢

怎样去移植LWIP_IAP中的iap_http模式呢?有哪些步骤?...
发表于 10-21 07:18 0次 阅读

详细介绍go语言中的闭包的实现

什么是闭包? 什么场景下会用闭包 ? 本文对 go 语言中的闭包做了详细介绍。 闭包是由函数及其相关....
的头像 马哥Linux运维 发表于 10-20 16:18 240次 阅读

简述Python加速运行小窍门

Python 是一种脚本语言,相比 C/C++ 这样的编译语言,在效率和性能方面存在一些不足。但是,....
的头像 Linux爱好者 发表于 10-20 15:28 696次 阅读

简述ElasticSearch的实现

1.近实时搜索 1.1 实时与近实时 实时搜索(Real-time Search)很好理解,对于一个....
的头像 马哥Linux运维 发表于 10-20 14:45 247次 阅读

Python协程与JavaScript协程的对比及经验技巧

前言以前没怎么接触前端,对 JavaScript 的异步操作不了解,现在有了点了解。一查发现 Pyt....
的头像 马哥Linux运维 发表于 10-20 14:30 186次 阅读

简述图像梯度的基本原理

当用均值滤波器降低图像噪声的时候,会带来图像模糊的副作用。我们当然希望看到的是清晰图像。那么,清晰图....
的头像 新机器视觉 发表于 10-19 16:22 165次 阅读
简述图像梯度的基本原理

一文了解Cortex-M中断向量表对齐原则

来源 | 痞子衡嵌入式 一、Cortex-M中断向量表对齐原则   中断向量表就是一个集中保存系统全....
的头像 strongerHuang 发表于 10-19 11:06 234次 阅读
一文了解Cortex-M中断向量表对齐原则

有什么方法可以实现时间戳转日期的算法呢

有什么方法可以实现时间戳转日期的算法呢?怎样去实现时间戳转日期的算法呢? ...
发表于 10-19 09:23 0次 阅读

STM32F407ZG串口配置有哪些步骤

STM32F407ZG串口操作相关库函数是什么? STM32F407ZG串口配置有哪些步骤?...
发表于 10-19 08:14 0次 阅读

在操作系统中怎样去使用ls -l指令呢

在操作系统中怎样去使用ls -l指令呢?结果怎样?...
发表于 10-19 08:10 0次 阅读

中断优先级配置的函数有哪几种

中断优先级配置的函数有哪几种? 怎样去比较抢占优先级与响应优先级呢? ...
发表于 10-19 08:02 0次 阅读

怎样通过循环次数计算延迟函数的延迟时间呢

单片机不同晶振怎么计算延迟时间?怎样通过循环次数计算延迟函数的延迟时间呢?有什么方法吗?...
发表于 10-19 06:08 0次 阅读

怎样去开发一种基于STM32的贪吃蛇小游戏

怎样去开发一种基于STM32的贪吃蛇小游戏?
发表于 10-18 06:42 0次 阅读

关于Python18个你不知道的高效编程技巧

初识Python语言,觉得python满足了我上学时候对编程语言的所有要求。python语言的高效编....
的头像 马哥Linux运维 发表于 10-15 11:23 276次 阅读

动态内存分配的注意事项及本质是什么

C语言中比较重要的就是指针,它可以用来链表操作,谈到链表,很多时候为此分配内存采用动态分配而不是静态....
的头像 C语言编程学习基地 发表于 10-13 15:37 282次 阅读
动态内存分配的注意事项及本质是什么

快速提高数据质量的数据清洗小技巧

原始数据中如果夹杂着大量的空格,可能会在我们筛选数据或统计时带来一定麻烦。如何去掉多余的空格,仅在字....
发表于 10-13 11:38 18次 阅读

ACL2021的跨视觉语言模态论文之跨视觉语言模态任务与方法

来自:复旦DISC 引言 本次分享我们将介绍三篇来自ACL2021的跨视觉语言模态的论文。这三篇文章....
的头像 深度学习自然语言处理 发表于 10-13 10:48 255次 阅读
ACL2021的跨视觉语言模态论文之跨视觉语言模态任务与方法

一文详解虚函数及其相关知识点

本期是C++基础语法分享的第七节,今天给大家来分享一下: (1)虚析构函数; (2)纯虚函数; (3....
的头像 C语言编程学习基地 发表于 10-13 10:14 242次 阅读

xv6的文件系统是如何实现的

文件系统 本文继续来看 的文件系统部分, 将文件系统的设计分为 7 层: ,磁盘、缓存区、日志三个部....
的头像 Linux阅码场 发表于 10-12 18:00 164次 阅读
 xv6的文件系统是如何实现的

什么是MicroPython 它能做什么有什么局限

随着Python成为主流的编程语言,MicroPython在嵌入式系统领域也越来越热门起来,尤其是大....
的头像 电子森林 发表于 10-12 11:44 282次 阅读

如何在Colab中使用SQL

如今,编码测试在数据科学面试过程中几乎是标准的。 作为一名数据科学招聘经理,我发现一个20-30分钟....
的头像 智能感知与物联网技术研究所 发表于 10-12 09:39 213次 阅读
如何在Colab中使用SQL

Python的时间处理模块中处理日期与时间的全面总结

Python的时间处理模块在日常的使用中用的较多,但是使用的时候基本上都是要查资料,还是有些麻烦的,....
的头像 马哥Linux运维 发表于 10-12 09:24 233次 阅读
Python的时间处理模块中处理日期与时间的全面总结

C语言中驱动法编程的代码案例

数据压倒一切。如果选择了正确的数据结构并把一切组织的井井有条,正确的算法就不言自明。编程的核心是数据....
的头像 硬件攻城狮 发表于 10-12 09:21 245次 阅读

一本教你怎么写出让同事无法维护的代码

‍对,你没看错,本文就是教你怎么写出让同事无法维护的代码。一、程序命名 容易输入的变量名 。比如:F....
的头像 Linux爱好者 发表于 10-11 15:45 200次 阅读

探究关于数字电路的一些基础知识

1.常用门电路图 2.逻辑代数的基本定理----化简时比较好用 反演定理:对于任意一个逻辑式 Y,若....
的头像 FPGA设计论坛 发表于 10-11 15:04 325次 阅读
探究关于数字电路的一些基础知识

开发一个鸿蒙版仿苹果计算器教程.附代码

众所周知鸿蒙 JS 框架是非常轻量级的 MVVM 模式。通过使用和 Vue2 相似的属性劫持技术实现....
的头像 HarmonyOS技术社区 发表于 10-11 14:17 264次 阅读
开发一个鸿蒙版仿苹果计算器教程.附代码

Linux内核热补丁安全隐患的探索

Linux 内核热补丁可以修复正在运行的 linux 内核,是一种维持线上稳定性不可缺少的措施,现在....
的头像 Linux阅码场 发表于 10-11 11:54 226次 阅读
Linux内核热补丁安全隐患的探索

SystemVerilog语言介绍汇总

作者:limanjihe  https://blog.csdn.net/limanjihe/arti....
的头像 FPGA之家 发表于 10-11 10:35 258次 阅读

剖析verilog2005的骚操作之对数函数

小技巧分享: verilog下取对数其实可用$clog2这个系统函数,和自己找代码里面写入funct....
的头像 玩儿转FPGA 发表于 10-09 15:29 296次 阅读
剖析verilog2005的骚操作之对数函数

C语言指针作为形参怎么改变其指向的地址

就是一个函数的输入参数是一个指针,该函数需要改变该指针指向的地址,如: 现在有一个全局数组b,现在需....
的头像 嵌入式ARM 发表于 10-09 11:54 2248次 阅读

脉冲发生器的分类及特点

脉冲发生器是用来发生信号的系统,产生所需参数的电测试信号仪器。按其信号波形分为四大类。 正弦信号发生....
的头像 ss 发表于 10-02 17:59 232次 阅读

如何用walsh码完成多用户的扩频

那么如何用walsh码完成多用户的扩频呢?用了以后效果会有哪些改变呢?这也是后续需要展示的程序以及理....
的头像 通信工程师专辑 发表于 09-30 17:17 243次 阅读

C++中的资源泄露问题

在Modern C++之前,C++无疑是个更容易写出坑的语言,无论从开发效率,和易坑性,让很多新手望....
的头像 Linux爱好者 发表于 09-30 17:03 275次 阅读

C++输入和输出的真实面目

C++输入和输出 在C++里std::cin、std::cout、std::cerr和std::en....
的头像 Android编程精选 发表于 09-29 15:22 237次 阅读

如何才能保证JWT安全

jwt是什么? JWTs是JSON对象的编码表示。JSON对象由零或多个名称/值对组成,其中名称为字....
的头像 Android编程精选 发表于 09-29 15:09 229次 阅读

在C++中如何用虚函数实现多态

01 — C++虚函数探索 C++是一门面向对象语言,在C++里运行时多态是由虚函数和纯虚函数实现的....
的头像 Android编程精选 发表于 09-29 14:18 251次 阅读

系统调用具体是如何实现的

系统调用就是调用操作系统提供的一系列内核功能函数,因为内核总是对用户程序持不信任的态度,一些核心功能....
的头像 Linux阅码场 发表于 09-29 11:10 275次 阅读

剖析C语言中scanf函数常见问题

在写C代码时难免对一些知识点不熟悉,导致犯错,今天分享几点小知识给大家。 空白符问题        ....
的头像 STM32嵌入式开发 发表于 09-24 16:45 298次 阅读

Uber是怎么做到减少大数据平台成本的

随着 Uber 业务的扩张,为其提供支持的基础数据呈指数级增长,因此处理成本也越来越高。当大数据成为....
的头像 人工智能与大数据技术 发表于 09-24 15:53 241次 阅读

Crypto算法库使用技巧之基于STM32 AES GCM应用提示

引言 X-CUBE-CRYPTOLIB 是基于 STM32 的 Crypto 算法库,支持对称密钥、....
的头像 STM32单片机 发表于 09-24 14:23 803次 阅读

OpenHarmony HDF传感器模型框架介绍与传感器驱动开发指导

作者介绍 刘飞虎(kevin),担任OpenHarmony社区SIG_DriverFramework....
的头像 OpenAtom OpenHarmony 发表于 09-24 11:21 317次 阅读
OpenHarmony HDF传感器模型框架介绍与传感器驱动开发指导

一篇让你看懂数字信号模拟信号

数电模电是电子信息类专业的专业基础课。但是由于比较难,所以很多人学的并不是很好,今天阿斌就来带大家先....
的头像 硬件攻城狮 发表于 09-24 10:57 4103次 阅读
一篇让你看懂数字信号模拟信号

C++中const以及this指针的使用

const 作用 修饰变量,说明该变量不可以被改变; 修饰指针,分为指向常量的指针(pointer ....
的头像 C语言编程学习基地 发表于 09-23 11:39 288次 阅读

如何在在RISCV中使用DSP指令

1.概述 DSP有相关的专业芯片,能够专门实现计算功能,相比于通用处理器,DSP芯片专门用于计算,可....
的头像 嵌入式IoT 发表于 09-22 14:28 3797次 阅读

浅析离散时间信号与系统

理论必须结合实际!因此在2018年就有了第六部分的讲解,目的就是让同学们看到学到的理论知识怎么在计算....
的头像 通信工程师专辑 发表于 09-22 11:30 857次 阅读
浅析离散时间信号与系统

51单片机的启动代码究竟里面写了什么

在我们使用kei c51创建一个51单片机项目时,会有如下图所示的提示:   keil创建新项目时,....
的头像 strongerHuang 发表于 09-22 10:15 318次 阅读
51单片机的启动代码究竟里面写了什么

介绍3种方法跨时钟域处理方法

跨时钟域处理是FPGA设计中经常遇到的问题,而如何处理好跨时钟域间的数据,可以说是每个FPGA初学者....
的头像 FPGA设计论坛 发表于 09-18 11:33 2088次 阅读
介绍3种方法跨时钟域处理方法

C语言中struct的用法有哪些

定义结构体变量       下面举一个例子来说明怎样定义结构体变量。                ....
的头像 STM32嵌入式开发 发表于 09-15 09:41 1288次 阅读

C++基础语法友元类和友元函数

本期是C++基础语法分享的第五节,今天给大家来分享一下: (1)explicit(显式)关键字; (....
的头像 C语言编程学习基地 发表于 09-12 09:52 304次 阅读

C++基础语法之inline 内联函数

上节我们分析了C++基础语法的const,static以及 this 指针,那么这节内容我们来看一下....
的头像 C语言编程学习基地 发表于 09-09 09:38 280次 阅读

如何使用C++语法中的volatile

volatile volatile int i = 10; volatile 关键字是一种类型修饰符....
的头像 C语言编程学习基地 发表于 09-09 09:38 336次 阅读

C++语法中的inline内联函数详解

上节我们分析了C++基础语法的const,static以及 this 指针,那么这节内容我们来看一下....
的头像 C语言编程学习基地 发表于 09-09 09:33 1415次 阅读

Kitronik ARCADE游戏手柄实现连连看

连连看相信大家都玩过,但这个用Kitronik AR CADE游戏手柄来玩连连看的项目你相信是一个高....
的头像 电子森林 发表于 09-08 11:47 400次 阅读
Kitronik ARCADE游戏手柄实现连连看

函数信号发生器的功能及优势

函数信号发生器是一种信号发生装置,能产生某些特定的周期性时间函数波形 ( 正弦波、方波、三角波、锯齿....
发表于 09-08 11:35 273次 阅读

Spark SQL的概念及查询方式

一、Spark SQL的概念理解 Spark SQL是spark套件中一个模板,它将数据的计算任务通....
的头像 数据分析与开发 发表于 09-02 15:44 302次 阅读
Spark SQL的概念及查询方式

你们知道指针和引用正确的使用场景吗

先解决两个疑问 ◆ 指针和引用的不同之处是什么? ◆ 何时用用指针?何时用引用? 指针和引用的不同之....
的头像 STM32嵌入式开发 发表于 09-02 14:37 308次 阅读
你们知道指针和引用正确的使用场景吗

为什么要进行单相机标定

为什么要进行单相机标定? 广义:畸变矫正和一维和二维测量 畸变矫正: 在几何光学和阴极射线管(CRT....
的头像 新机器视觉 发表于 09-02 09:45 413次 阅读