如何在Patran中将计算结果变形网格转换成CAD模型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Patran中将计算结果变形网格转换成CAD模型相关的知识,希望对你有一定的参考价值。

参考技术A 1 概述

在使用Patran/Nastran进行结构有限元分析后,在一些情况下,需要将变形后的网格结果输出用于其他分析,所以如何通过Patran实现这一功能将方便对有限元计算结果的重用。

2 实现方法

l 首先以向量表示变形的结果

在PatranResults菜单中,

Create / Marker / Vector

Select Vector Result选择Displacement,Translational

Apply

l 创建 FEM 场

在Results菜单中,

Create / Spatial / FEM

输入Field Name

选择Continues/Vector

选择Group

Apply

l 用 FEM 场将节点移动到变形后的位置

Utilities / FEM-Nodes / Node modify By Field

Select FEM/Spatial Fields

选择第2步创建的场 Cancel

Apply

(1-3步的操作,也可以用Utilities/Results/results Utilities的offset来进行)

l 网格变成了变形后的形状,下面在表面生成壳单元(这里用 Tria )

在Elements菜单中,

Create / Element / Edit

Shape: Tria

Topology: Tria6(对于tet10的情况) Pattern: Elem Face

在选择工具菜单中选择Free Face of Element

选择全体模型

Apply

通过该操作,在Tetra单元的表面生成了Tria单元。

l 由壳单元生成几何面

Utilities / geometry / Create Surface from Shell elements

Select Shell element(s)

在选择工具菜单中选择FEM Entity  Element  Tri element

Element List选择在第4步生成的全部tria单元

Apply

l 最后将几何体导出为 IGES 或者 parasolid

File / Export

Format:选择Parasolid xmt或者IGES

3 参考信息

已经安装Patran2010,2011,2012的用户,安装完成后就会看到主菜单上有Utilities

如果是使用比较早版本的Patran,在Patran安装完成后,将Patran安装目录下面shareware\msc\unsupported\utilities\p3epilog.pcl文件拷贝到Patran的安装目录下,以Patran2007r2安装在d盘为例,Patran的安装目录如果按缺省即为d:\MSC.Software\Patran\2007_r2

适用版本:Patran2005版本之后

想知道更多,点击此处

如何在 Blazor WebAssembly 中将 Json 结果转换为字符串?

【中文标题】如何在 Blazor WebAssembly 中将 Json 结果转换为字符串?【英文标题】:How to covert Json result into string in Blazor WebAssembly? 【发布时间】:2021-09-15 04:58:46 【问题描述】:

我想把结果转成字符串传给导航路径,但是我做不到,请帮帮我。

HttpGet 控制器

[HttpGet]
[Route("UserId")]
public async Task<ActionResult<ApplicationUser>> GetUserId(string Username)

  var user = await userManager.FindByNameAsync(Username);
  if (user == null)
  return StatusCode(StatusCodes.Status500InternalServerError, new Response  Status = "Error", Message = "User not exist" );
  var result = await userManager.GetUserIdAsync(user);
  return new JsonResult(result);

控制器返回结果

“85e39a3e-8101-4166-9193-5e41bec1a7ce”

功能

private async Task Login()
    
        var user = new userName  Username = Username ;
        var loginUser = new LoginDb  Username = Username, Password = Password ;
        if (Username == null || Password == null)
        
            toastService.ShowWarning("Please enter Username and Password");
        
        else
        
            user = await Http.GetFromJsonAsync<userName>("Authentication/UserId?Username=" + Username);
            if (user != null)
            
                string Id = System.Text.Json.JsonSerializer.Serialize(user);
                var result = await Http.PostAsJsonAsync("Authentication/login", loginUser);
                if (result.IsSuccessStatusCode)
                
                    NavigationManager.NavigateTo("/profile/" + Id);
                    toastService.ShowSuccess("Login successful");
                
                else
                
                    toastService.ShowError("Username or Password is wrong");
                
            
            else
            
                NavigationManager.NavigateTo("/login");
            

        
    

【问题讨论】:

【参考方案1】:

好的,我可以看到一些问题。

在服务器上:

[HttpGet]
[Route("UserId")]
public async Task<ActionResult<ApplicationUser>> GetUserId(string Username)   // A

  var user = await userManager.FindByNameAsync(Username);
  if (user == null) // B
  return StatusCode(StatusCodes.Status500InternalServerError, new Response  Status = "Error", Message = "User not exist" );
  var result = await userManager.GetUserIdAsync(user);
  return new JsonResult(result);

首先,您的返回类型是 Task&lt;ActionResult&lt;ApplicationUser&gt;&gt; 。 ApplicationUser 与后端身份库绑定,您不能也不应该将其用于 DTO。

你没有,最后你有return new JsonResult(result);,当你将返回类型更改为Task&lt;ActionResult&gt;时就可以了。

在客户端:

//user = await Http.GetFromJsonAsync<userName>("Authentication/UserId?Username=" + Username);
  var userId = await Http.GetFromJsonAsync<string>("Authentication/UserId?Username=" + Username);

端点返回一个简单的字符串。 Json 不知道“用户名”或其他任何内容。

//string Id = System.Text.Json.JsonSerializer.Serialize(user); -- use UserId

您在此处(再次)序列化 Id,使其对于 URL 几乎肯定无效。所以跳过那个。

【讨论】:

感谢先生您的回答和信息,感谢。注意!

以上是关于如何在Patran中将计算结果变形网格转换成CAD模型的主要内容,如果未能解决你的问题,请参考以下文章

cad如何转换成pdf的操作方法?

怎么将BigDecimal转换成Int

cad怎么转换成pdf的操作步骤?

将平面网格变形为球体

如何把cad图转换成visio图

如何使用CAD编辑器将CAD图纸转换成jpg格式?