magnet 6.11.2中分析结果后,如何取得气隙磁密空间分布图?
本帖最后由 flyingmind 于 2009-2-16 20:04 编辑请问magnet求解结束后,如何取得气隙磁密的空间分布图?或者数据也行
真心求教
PS:软件版本:6.11.2 Project bar有个Field tab可画各种分布图
要输出数据的话,Tools菜单下有Field probe
Field line graph等工具 本帖最后由 flyingmind 于 2009-2-15 23:04 编辑
谢谢,field tab我知道的,但我的是6.11.2版本,tools菜单下只有field probe只能选择点,并无field line graph工具,我需要画的是气隙磁密随空间位置变化的曲线,不知道你有没有建议?谢谢
PS:我的气隙是一条直线,所谓的field probe只能一个点一个点在图中点,坐标好像无法准确控制,我没有找到像maxwell那么方便的画图方法 你这个问题只能通过脚本实现,也就是你要将你要采样的直线离散成很多点,然后你采样各点场量即可。具体说明如下:
Field values in a shaded or arrow plot can be probed through a script. You can copy and paste the sample script below to a text file and then edit the script as necessary to suit your model.
The sample script gets the |B| field value at point (0,0,0). The field value is written to a message box that is displayed in the MagNet main window and is also written to a text file called FieldProbing.txt located in the folder C:\temp.
The lines beginning with an apostrophe (') and displayed in blue are comments to the script.
Sample script
'The |B| field for Problem ID 1 is loaded into memory. The Field ID is returned
?infoScalarField).
fieldId= getDocument().loadMagnetostaticField(1, "|B|", fieldType)
'The scalar field value at the specified point is returned.
CALL getDocument().getScalarFieldAtPoint(fieldId, 0, 0, 0, value)
'The field value is appended to the specified message.
Message= "The scalar field value of |B| at (0, 0, 0) is " & value
'A message box containing the message is displayed.
MsgBox(Message)
'The contents of the message box are written to the specified file.
CALL writeTextFile("c:\temp\FieldProbing.txt", Message)
'If the Field ID is greater than 0, the script continues and the memory used by the field is freed. If the Field ID is less than 0, the value was not obtained (so unloading is not necessary).
If (fieldId > 0) Then
getDocument().unloadField(fieldId)
End If
?Copyright 2002, Infolytica Corporation
有啥问题再讨论。 本帖最后由 flyingmind 于 2009-2-17 13:14 编辑
4# thwfei
谢谢,你一句点醒我梦中人,哈哈
经过一番研究,特将代码贴如下(注,我的是瞬态场分析,气隙线取的(-1050,-5.5,0)与(1050,-5.5,0)之间的线段,取2101个点):
NN=2101
Dim abc(2101)
Dim x(2101)
y=-5.5
z=0
ReDim solution(1)
solution(0)= 1
solution(1)= 140
Set Field=getDocument().getSolution().getTransientField(solution, "|B| smoothed")
Dim value
Redim value(0)
mytxt="x" & vbTab & "y" & vbTab & "z" & vbTab & "'|B| smoothed'" & vbCrLf
for i=1 To NN
k=i-1
x(k)=-1*(NN-1)/2+k
Call Field.getFieldAtPoint(x(k),y,z,value)
mytxt=mytxt & x(k) & vbTab & y & vbTab & z & vbTab & value(0) & vbCrLf
next
Call writeTextFile("abccc.txt",mytxt)
则将结果写入abccc.txt文件中,用电子表格打开,绘图即可
气隙磁密空间分布图如下:
感谢thwfei,我一开始也想着通过脚本实现,但苦于不了解脚本,没办法,只要硬着头皮看帮助了 不客气,有什么问题可以一起研究研究。 顶,好贴,我刚遇到同样的问题,有的救了。
只不过脚本好麻烦啊,没学过 脚本就只能看帮助和自己摸索了,调程序需要耐心的 刚学习magner,没想到要看线上的磁密这么麻烦··但还得学呀·· 脚本学习中···{:1_436:} 要用脚本 这是什么语言啊? 要用脚本,,真复杂。。。 脚本看起来真复杂。 感觉是VB。 谢谢楼上的讨论,小弟这两天正为这个烦恼。
如果有6。27版本就好了,可以直接取磁场。 想问一下,程序从哪里输入 回复 16# kyq2009
scripting 菜单下,你可以新建和编辑程序。
6。22版本以上的应该是提供。
建模时可以先打开“start recording uer script”,他会纪录你所有建模的过程以及计算过程,下次再建相同模型时,可以直接调用他,修改一下参数就可以用了。省的记那么多命令。
by the way 问一下 版主,有没有在使用magnet 批处理软件时,可以直接让他把计算完的 结果放到EXEle里面。 NN=2101
Dim abc(2101)
Dim x(2101)
y=-5.5
z=0
ReDim solution(1)
solution(0)= 1
solution(1)= 140
Set Field=getDocument().getSolution().getTransientField(solution, "|B| smoothed")
Dim value
Redim value(0)
mytxt="x" & vbTab & "y" & vbTab & "z" & vbTab & "'|B| smoothed'" & vbCrLf
for i=1 To NN
k=i-1
x(k)=-1*(NN-1)/2+k
Call Field.getFieldAtPoint(x(k),y,z,value)
mytxt=mytxt & x(k) & vbTab & y & vbTab & z & vbTab & value(0) & vbCrLf
next
Call writeTextFile("abccc.txt",mytxt)
有几个问题请教一下:
1
ReDim solution(1)
solution(0)= 1
solution(1)= 140 这个数组干什么用的? 2
getTransientField(solution, "|B| smoothed") 你不是静态场吗,gettransientfield thwfei有联系方式没,有几个问题想请教您一下
页:
[1]
2