M守望者

我想证明M的存在,我又想证明M的不存在,这是矛盾的,不矛盾的是,这两个证明我一个都证明不出来

  • 卡瑞尔·麦克布莱德《母爱的羁绊》
  • 苏珊·福沃德《情感勒索》
  • 埃里希·弗洛姆《逃避自由》
  • 罗纳德·理查森《超越原生家庭》
  • 奥利弗·詹姆斯《天生非此》
  • 布鲁斯·费希尔,罗伯特·艾伯蒂《分手后,成为更好的自己》
  • 约翰·格雷《男人来自火星,女人来自金星》

之前因为时间关系,这个洗澡的模型仅仅计算了开始阶段,作为演示demo,也只是加密了上半部分的网格。这次出差,刚好把模型放到工作站上完整跑了一遭。用时1天零9个小时,这澡勉强算是洗完了吧。

软件平台:XFlow 2019x

硬件配置:CPU:AMD Threadripper 1950X 3.4GHz + RAM:32G

对模型设置感兴趣或索要模型,请联系作者。

晶体生长热场模拟,如果设备包含内部水冷管(套)组件的时候,需要将内部边界等效为外部边界,从而指定其边界条件。在FEMAG软件中,设置方式如下:

  1. 首先在 GeoTool 中,运行 FurGeo 进入炉子几何编辑。

  2. 创建水冷组件几何,以及较小一点的内部水域几何,二者的差集(管壁)是我们需要的区域, FurGeo 并没有布尔运算功能,不能通过差集操作直接得到管壁特征,需要借助于辅助线来完成。

  3. 如下图所示,以创建一个水冷管为例,借助于162和163两条线段,将管壁特征切分为如下三个区域,其中区域1和2是我们需要保留的管壁区域,区域3对应的则是水流流经的区域。

    FEMAG设置内部水冷示意图
  4. 单击 Create topology 按钮,然后顺次点击 Detect 2DDetect 1D 按钮,软件将自动检测和标记宏单元。

  5. 这之后,我们会发现区域3也被选中标记,需要我们手动取消标记。选中该区域,右键单击,然后选择 Unassign 选项即可。

  6. 运行 IniMeshSetMesh 组装几何和剖分网格。需要说明的是,在 SetMesh 过程中,一定不要将区域3误标记为gas宏单元。

  7. 运行 wxCregeo。在 Plot/Tree View 窗口右侧的单元树中选择区域3对应的宏单元,右键菜单下单击 Convert to external boundary 选项。

  8. 回到 wxCregeo 主窗口,在 Thermal Operating Conditions 选项面板中单击 External boundary conditions (shell cooling, etc) 右侧的 Impose... 按钮。

  9. 经过如上设置,在弹出的对话框中,可以找到水冷套管内壁对应的边,这些边和炉体外壁一样,可以对其设置任意外部边界条件。

知识分子的长处只是会以理服人,假如不讲理,他就没有长处,只有短处,活着没意思,不如死掉。

——王小波《知识分子的不幸》

现在我想,人活在世界上有两大义务,一是好好做人,无愧于人生一世。这一条我还差得远。另一条是不能惯别人的臭毛病,这一条我差得更远。

——王小波《域外杂谈•盗贼》

晴雯拭泪,就伸手取了剪刀,将左手上两根葱管一般的指甲齐根铰下;又伸手向被内将贴身穿着的一件旧红绫袄脱下,并指甲都与宝玉道:“这个你收了,以后就如见我一般。快把你的袄儿脱下来我穿!我将来在棺材内独自躺着,也就象还在怡红院的一样了。论理不该如此,只是担了虚名,我可也是无可如何了。”宝玉听说,忙宽衣换上,藏了指甲。晴雯又哭道:“回去他们看见了要问,不必撒谎,就说是我的。既担了虚名,越性如此,也不过这样了。”

——曹雪芹《红楼梦•俏丫鬟抱屈夭风流》

爱情的眼睛,即使十分尖锐,它能去寻找情人的缺点吗?

——卢梭《新爱洛伊斯》

他会认为他想主宰他们的生活,是因为他太爱他们了。实际上,他“爱”他们是因为他主宰了他们。他用物质手段贿赂他们,赞扬他们,信誓旦旦地表白对他们的爱,向他们耍小聪明,假装关心他们。他可能给他们任何东西,但有一样除外,即,自由与独立的权利。

——Erich Fromm《逃避自由》

毁人者不美,而受人之毁者遭一番讪谤便加一番修省,可以释回而增美;欺人者非福,而受人欺者遇一番横逆便长一番器宇,可以转祸为福。

——洪应明《菜根谭》

这是一个正式的告别,有些歌舞在作着伴奏,他心里无喜也无悲,水木然地背着那歌乐离去,那歌乐中人实是镜中月水中花,伸手便是一个空。那似水的年月,他过桥,他渡舟,都也是个追不上。

——王安忆《长恨歌》

黄河的水干了 贺兰山下的羊群也不知所向 老人没有熬过寒冬 春分到了,留守的农人已经忘了播种

粗旷的歌者离开了银川 咿咿呀呀的词里已容不下白花和水灵 花儿不再传唱于断壁残垣的村落 凤凰飘荡于温州夜空落寞的霓虹

风车慵懒地摇晃着头颅 电能却没有点亮脚下的一盏灯火 大地已然绝经,浮肿的肚皮上 拔地而起的是吞云吐雾的工厂

你可知道,尕妹妹的眼泪尽了 二阿哥将汗水和体液留在了非洲 你不知道,尕妹妹的心也跟着变了 三表姐召唤她将身体献给长江


Ref:

赵牧阳《黄河谣》 野孩子《黄河谣》 苏阳《凤凰》《长在银川》《贺兰山下》 杨超《长江图》 Dai《来,我把书念给你听》(内部) 信天游《大雁雁回来又开了春》

问题描述

在COMSOL中模拟激光加热316L不锈钢粉末过程。激光加热达到转变点后,粉末融化,从粉末状态转变为实体状态,后续即便温度降低到转变点以下,316L依然保持实体状态,不会恢复为此前粉末状态。316L不锈钢的热传导系数、比热容、密度等参数都与粉末和实体转变的状态相关。模拟过程中需要使用变量捕捉时间历程中节点的温度结果,只要曾经高于转变点温度,即认为发生相变,修改状态变量的数值,后续无论升温和降温对该状态变量都无影响。在此基础上,316L的热物参数设置为与该状态变量相关的函数,相关参数作为材料本构加载到模型中去以表征相转变对加热过程的影响。

相变过程的模拟

在COMSOL中模拟相变过程中材料属性参数的转变,相关的资料很多,这里不详述。

对于常见的固液相变,一般是定义一个相分数变量 \(\phi\) ,让其在固相状态下为0,液相状态下为1。写成如下形式: \[ \phi=(T>T_m) \] 然后热物性能参数(这里以热传导系数为例)写成与 \(\phi\) 相关的表达式: \[ k=k_s(1-\phi)+k_l\phi \]

使用上述表达式可以很好的处理可逆的相变过程,对于本需求中,转变为实体状态后即便降温依然保持实体状态的情形则无法处理。如果材料是整体加热从粉末态转变为实体态,而我们又可以判断整体完成转变的时间 \(t_f\) 的话,可以简单将上式修改为如下形式: \[ k=(k_s(1-\phi)+k_l\phi)(t<t_f)+k_l(t>t_f) \] 激光加热,尤其是移动热源的激光加热,升温转变过程和降温过程在求解域中会同时存在,不存在前述的 \(t_f\) ,所以上述思路不可行。

捕捉时间周期变量最大值

换个思路来说,这个问题涉及的逻辑其实很简单,直接将 \(\phi\) 的定义做个修改即可,如下: \[ \phi=(T_{max}>T_m) \] 刚好是我们需要的逻辑,于是问题就变为了如何获取时间历程中节点温度最大值的问题。COMSOL中,获取特定时刻域内最大值很简单,模型定义下有专门的算子可以用,但是获取时间历程节点的最大值的算子只有在后处理时候才有,不满足我们的需求。

查阅COMSOL文档,有一个\(timemax()\)函数让人眼前一亮,简直是量身定做的函数,文档引用如下:

timemax and timemin

The timemax and timemin operators evaluate the maximum and minimum, respectively, of an expression over time. timemax(t1,t2,expr) finds the maximum of expr on the interval t1 ≤ t ≤ t2. The first two arguments must be real constants

The timemax and timemin operators can only be used during results evaluation, so you cannot use then when setting up the model.

于是将 \(\phi\) 定义成了 \(timemax(0,t,T)>T_m\) 测试,单独用于捕捉 \(\phi\) 数值没问题,一旦将 \(\phi\)\(k\) 建立联系,并用于材料设置,软件就直接报错。仔细看文档发现,这个函数还是只能在后处理过程中用,无法用于设置模型(见引用文档加粗部分)。

另辟路径

看文档过程中,同时发现了一个有意思的函数 \(prev(expr,i)\) ,用于获取前 \(i\) 个时间步的表达式 \(expr\) 的数值。于是想到可以基于此实现类似 \(timemax()\) 的功能。每个时刻判断该时刻温度 \(T\) 与前一时刻 \(T\_{max}\) 的大小,然后返回最大值给 \(T\_{max}\)

\[ T_{max}=max(prev(T_{max},1),T) \] 思路上没有问题,使用 \(prex()\) 函数需求将求解类型切换为Time Discrete求解器,按需切换即可。至于如何将上述表达式写入软件,最开始的尝试是将这个关系写入全局方程。打开Advanced Physics Options选项,在分析模式中右键选择Global - Global equations。在Global equations的输入窗口Name中定义 \(T\_{max}\) 变量,表达式中写入 \(T\_{max}-max(prev(T\_{max},1),T)\),初始值按实际情况设置。通过这种方式理论上实现了使用 \(T\_{max}\) 变量对温度最大值的捕捉,不过意外的是,这种情况依然报错。

抱着最后一丝希望,索性直接添加了一个 General Form PDE与原有的物理模式建立耦合分析。模型设置中,除了 \(f\) 项外,所有的参数都设置为0,令 \(f\) 项为\(T\_{max}-max(prev(T\_{max},1),T)\)。该思路与 Global equations类似,不同的是,基于这种方式获取的 \(T\_{max}\) 可以正常应用于模型,与之建立关系的 \(\phi\)\(k\) 都可以正常使用,并直接作为材料属性参数加载到模型中去。

大功告成,最后放一个测试的结果动画。左侧区域初始温度低于相变点,右侧区域初始温度高于相变点,左边界是高于相变点温度的恒温边界,右边界是低于相变点温度的恒温边界。最终结果是左侧随时间升温发生相变,右侧降温,温度会逐渐低于相变点温度。图中上方是温度分布结果,下方是对应的热传导系数的结果,从下方的图可以看到,左侧热物性能参数随着相变界面变化而变化,实现了对瞬态相变界面的实时追踪,右侧虽然温度逐渐低于相变温度,但是热物性能维持此前的最大值状态保持不变。

COMOSL TimeMax

硬件购置

主板(板载CPU):淘宝,华擎 J3455-ITX mini-ITX主板 17*17 4核CPU

Nas机箱:淘宝,4盘位热插拔存储服务器 迷你ITX铝面板机箱DIY机箱,含电源和风扇

内存条:笔记本拆机内存条,三星 4G DDR3L 1600MHz

硬盘

  • 机械硬盘:3.5寸 5400 SATA3 机械硬盘,西数蓝盘和希捷酷鱼各一块,一块做数据盘,一块做备份盘,京东618
  • 固态硬盘:东芝 TR200系列 240GB SATA3固态硬盘,用作系统盘,京东618

配件:

  • SATA3 数据线 * 2,主板仅包含两根数据线
  • 临时要用的鼠键套装
  • 主板支持 DVI+VGA+HDMI 三种视频输出,准备临时接显示器的线

系统安装

硬件几乎是按照”黑群晖“配置的,不过考虑到主要是以”做成家用存储“的名义瞎折腾,与其折腾NAS,做RAID一劳永逸,还不如直接做成一台Linux服务器,后期还可以随便加私货进去。于是乎直接做了个Ubuntu的启动U盘,装了Ubuntu 18.04上去。

装系统的时候仅插入了固态硬盘,刚开始的时候选择的手动分区,不过进行到最后一步安装Grub引导的时候报错,后来索性让系统使用全盘自动分的区,顺利通过。

系统安装完成按照惯例执行一些例行的操作,包括软件源切换国内,系统更新,固定IP配置,OpenSSH服务器安装等,这里不再赘述。

挂载机械硬盘

  1. 完成系统安装,然后插入两块3.5的机械硬盘,进入Ubuntu。

  2. 使用df -h命令查看两块硬盘默认挂载位置,我的是/dev/sdb1/dev/sdc

  3. 在根目录下新建data和backup目录,并修改权限,其中data用作数据盘,面向局域网服务,backup用作备份盘,每隔一定时间镜像data数据

    1
    2
    sudo mkdir /data /backup
    sudo chmod -R 775 /data /backup
  4. 修改etc/fstab文件,添加如下信息,设置开机自动将两块盘挂载到指定位置

    1
    2
    /dev/sdb1       /data           ext4    defaults        1       2
    /dev/sdc /backup ext4 defaults 1 2

搭建Samba服务器

Samba服务器配置选项很多,这里仅需要配置局域网单用户可访问data目录即可。配置步骤如下:

  1. 首先是安装Samba服务器:

    1
    sudo apt-get install samba
  2. Samba使用自己的用户账号和秘密,默认保存在/etc/samba/smbpasswd 文件中,可以使用smbpasswd命令 创建新的用户:

    1
    sudo smbpasswd -a username

    按照程序指引,设置新用户密码,完成账号添加。

  3. 修改配置文件,设置data目录局域网可访问:

    1
    2
    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak	  # 备份配置文件,以防万一
    sudo vim /etc/samba/smb.conf # 使用VIM编辑配置文件

    转到Samba长长的配置文件末尾,添加如下信息:

    1
    2
    3
    4
    5
    6
    7
    8
    [data]
    path = /data
    available = yes
    valid users = username
    read only = no
    browseable = yes
    public = yes
    writable = yes
  4. 重启Samba服务器,使配置生效

    1
    sudo /etc/init.d/smbd restart
  5. Samba服务器重启后,使用如下命令测试配置文件是否有语法错误:

    1
    sudo testparm
  6. 至此,单用户的Samba服务器就搭建完成了,在局域网下应该可以浏览到该目录了。

局域网其他设备访问Samba服务器

  • Windows:打开资源管理器,地址栏输入\\192.168.2.200\data即可浏览到共享的目录,其中192.168.2.200是Samba服务器内网IP。
  • 手机:需求仅限于看服务器中视频资源的话,安装VLC视频播放器即可。需要浏览更多资源的话,可以安装类似于ES文件浏览器的应用。
  • 电视机:家用的海信电视默认不支持Samba,需要安装第三方程序,比如小白文件管理器来支持。顺便分享一个海信官网的用户吐槽:都什么年代了,居然还不支持Samba。。。

手机相册同步

相册同步使用的是Syncthing,Syncthing是开源的Resilio Sync 替代,支持在设备间进行文件的同步。

服务器端,下载最新版本的安装包,解压缩,然后运行解压缩目录下的syncthing即可:

1
2
3
4
wget https://github.com/syncthing/syncthing/releases/download/v0.14.48/syncthing-linux-amd64-v0.14.48.tar.gz
tar xvzf syncthing-linux-amd64-v0.14.48.tar.gz
cd syncthing-linux-amd64-v0.14.48
./syncthing

程序会自动启动Web界面,用于用户管理设备之间的同步。建议将~/syncthing加入到开机启动项中去。

Android手机自行搜索客户端下载安装即可,IOS目前还没有项目官方直接支持的客户端版本,商店里面的fsync()支持syncthing,不过没有具体测试过。文件夹同步设置按照客户端和服务器Web端引导设置即可。

本机备份

作为影音资源存储服务器,数据更新不会太频繁,实时同步意义不大,定期做一次归档就足够了。我这里使用第二块硬盘用于定期同步备份,相对于多盘配置RAID来说,这样确实简单粗暴了些,不过好处就是一旦data硬盘故障,直接把备份盘换过去即可。

定期备份使用rsync同步工具配合任务计划工具crontab实现。以设置每周日23点自动同步一次文件夹为例,配置过程如下,打开终端,执行:

1
crontab -e

编辑crontab文件,添加如下内容:

1
0 23 * * 0 rsync -az --delete --exclude 'lost+found' /data/ /backup/

Crontab参数说明:

1
2
3
4
5
6
7
8
*     *     *   *    *        command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)

Rsync参数说明:

1
2
3
4
-a:归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-z:对备份的文件在传输时进行压缩处理
--delete:删除目标路径下多余的文件;实现的效果其实是文件在原目录被删除,同步的时候也会删除目标目录的副本
--exclude:排除特定的目录和文件

同步命令rsync默认是将源目录同步到目标目录的同名子目录,data目录后面加/则直接同步data目录的所有子目录。

下载工具推荐

GUI:webtorrent

CLI:aria2

Aria2可以配置web前端,实现远程访问和管理。我这里偷懒没有配置,而是直接使用nohup配合aria2命令行实现远程下载,命令格式如下:

1
nohup [aria2下载命令] >out.log 2>&1 &

手机预装的是HydrogenOS,由于还是习惯Android原生体验,所以果断刷OxygenOS。OnePlus的OxygenOS预装了谷歌全家桶,相当一部分是用不到的,root之后直接删除这些预置应用。开始之前,确认打开开发者模式,以USB调试模式连接电脑。

准备

开始

  1. 解压缩 Platform Tools 包,打开命令行并进入到该解压缩目录

  2. 手机USB调试模式连接电脑,然后重启到 fastboot 模式

    1
    adb.exe reboot bootloader
  3. 手机解锁,如果已经解锁,可以跳过该步骤

    1
    fastboot.exe oem unlock
  4. 将 twrp-3.1.1-1-cheeseburger.img 重命名为 twrp.img 放在 Platform Tools 解压缩目录,然后将其刷入手机

    1
    fastboot.exe flash recovery twrp.img
  5. 重启手机

    1
    fastboot.exe reboot
  6. 键入 fastboot.exe reboot 后手机会自动重启,Oneplus会尝试将用户自定义的recovery替换为系统默认的,为了避免自定义recovery被还原,键入命令后,按住音量+键,选择启动到Twrp。

  7. 成功进入Twrp界面后,选择刷入SuperSu,预先将SuperSu压缩包拷贝到手机中,浏览选择该压缩包刷入即可。

  8. 刷入SuperSu后,重启手机,然后使用adb附带的命令行工具,删除不需要的预装应用

    1
    2
    3
    4
    5
    6
    adb.exe shell
    su #切换到root用户,第一次需要在手机界面确认给予adb shell需要的root权限
    mount -o rw,remount /system #挂载system文件系统为可读写
    cd /system/app #进入系统预装app目录
    ls #查看该目录下对应的app
    rm -R Gmail2 Duo YouTube Music2 *** #删除不需要的预装app

工作需要,在局域网内搭建了Gitlab服务器,然后借助花生壳动态域名解析服务(DDNS)实现外网域名访问。感谢《网络安全法》的出台,花生壳域名需要实名验证才能继续使用,实在懒得上传资料验证,索性直接使用外网IP访问服务器。唯一的问题是路由器重启后,重新拨号获得的外网IP也会变化,需要以某种方式通知项目组成员。因为公司在使用钉钉,所以自然而然地想到了钉钉的群机器人功能。

实现钉钉机器人推送内容很容易,具体请自行查看钉钉自定义机器人文档。外网IP是通过访问IP138提取网页内容得到,相关代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/env python3
# coding=utf-8
import requests
import json


def ding_talk_push(content):
url = 'https://oapi.dingtalk.com/robot/send?access_token=' \
'*********替换为自己的地址**************'
headers = {"Content-Type": "application/json ;charset=utf-8 "}
string_text_msg = {"msgtype": "text", "text": {"content": content}}
string_text_msg = json.dumps(string_text_msg)
requests.post(url, data=string_text_msg, headers=headers)


def get_ext_ip():
url = r'http://1212.ip138.com/ic.asp'
r = requests.get(url)
text = r.text
ip = text[text.find("[") + 1: text.find("]")]
return ip


if __name__ == '__main__':

ExtIP = get_ext_ip()
fp = open('ExtIP.txt')
LastExtIP = fp.read()
fp.close()
if LastExtIP == ExtIP:
pass
else:
ding_talk_push("外网IP:" + ExtIP)
fp2 = open('ExtIP.txt', 'w')
fp2.write(ExtIP)
fp2.close()

程序运行可以自动推送外网IP(如果变了的话)到钉钉群里面。接下来设置程序工作日的早上九点自动执行,Gitlab服务器运行在Ubuntu/Linux下,任务定时执行可以直接通过crontab实现,上面的脚本保存为DingTalkBot.py,打开终端,执行

1
crontab -e

编辑crontab文件,添加如下内容:

1
0 9 * * 1,2,3,4,5 /pathto/python /pathto/DingTalkBot.py

参数说明

1
2
3
4
5
6
7
8
*     *     *   *    *        command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)

注意:路径都使用绝对路径


Update

由于IP 138改版,原有获取外网IP函数失效,将其替换为如下即可

1
2
3
4
from urllib.request import urlopen
def get_ext_ip():
ip = json.load(urlopen('http://httpbin.org/ip'))['origin']
return ip

Simpleware可以基于3D图像重构CAD模型并生成用于有限元和流体计算的网格,相关功能有很多讨论,这里不再赘述。

部分用户尤其是材料领域用户,限于实验条件,很多时候只有单张截面图(典型的,SEM照片),用户的需求也仅是处理2D的图像,然后得到2D面网格。如果使用Simpleware导入单张图片的话,软件默认是将其按照一个像素厚度的3D数据处理的,网格剖分之后默认导出的也是3D的网格,而且由于Z方向只有一个像素厚度(典型的薄层特征),所以网格质量也很差。想要规避Z方向的薄层特征,很容易想到的一个解决方案是将图片多复制几张,不过上述操作默认导出的依然是3D网格,导入到求解器之后只能通过在Z方向的上下两个面施加(周期)对称之类的边界条件,以便于基于3D网格近似处理2D问题。

上述方案将简单的2D问题复杂化成了3D问题,虽然思路上可行,但是显然会浪费大量的计算资源。事实上Simpleware本身是支持直接导出某个Shell面的2D网格的,只不过藏的比较深而已。接下来我们就来看一下相关的步骤:

逻辑上,Simpleware依然只能处理3D图像数据,所以第一步依然是将图片在Z方向复制(或者重复导入),复制的目的是为了后续图像平滑滤波等算法可以顺利使用,同时也是为了弱化薄层特征。一般而言建议复制五层以上。

平滑滤波、然后按照自己的需要分割图像,具体步骤这里不展开,这些都是Simpleware平台基础的功能,根据自己图像的特征灵活选择即可,得到自己想要Mask之后,选择创建FE模型。截至这里,流程上其实依然是2D问题转化为3D问题处理的思路。接下来的步骤则需要特别注意。

打开Model configuration窗口,切换到Volume meshing选项卡,点击More options展开高级设置,找到Target number of elements across a layer,然后将其值设置为0.01。

我们最终要的其实仅仅是垂直于Z方向的某一个面的面网格就可以了,所以Z方向上网格质量好坏是无所谓的,所以这里选择将薄层最小网格层数的参数设置为一个很小的值。

标记要导出的shell特征,选择垂直于Z方向的某一个面(这里以ZMax为例),Zmax和我们生成的Mask重合的区域就是我们最后要的特征,如果有多个Mask,需要分别标记。

这时候选择生成网格,得到的依然是3D网格,因为薄层参数的设置,Z方向网格质量没有限制,会比较粗糙,这刚好是我们期望的。直接将该3D网格导出不是我们的预期,在生成网格之前,有一个关键步骤就是选择所有的Mask,将其标记为non - export part。上述设置确保在导出的时候,只导出Shell特征,实体部分网格不再导出之列。

导出的网格直接用CAE软件打开会识别为shell特征。如果使用的CAE软件需要建模开始就选择维度,建议导出类型选择Nastran(.nas)格式。然后在CAE软件中创建2D模型,最后选择导入之前生成的.nas网格就可以了。

0%