首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >2022目单圆柱面

2022目单圆柱面
EN

Stack Overflow用户
提问于 2022-06-21 12:25:16
回答 1查看 131关注 0票数 0

我正在使用Devdept 2022。

问题是我不能在没有负雅可比误差的情况下对一个简单的圆柱曲面进行网格化。

过程:-我使用的是转换表面为Brep,然后Brep到网格,最后网格到股骨网格。我找不到更好的方法直接网格曲面。

代码:-

代码语言:javascript
复制
using devDept;
using devDept.Eyeshot;
using devDept.Eyeshot.Entities;
using devDept.Eyeshot.Fem;
using devDept.Geometry;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Rotation = devDept.Eyeshot.Fem.Rotation;
using Material = devDept.Graphics.Material;

namespace NozzleSandbox
{
    public partial class Form1 : Form
    {
        private FemMesh fm;
        private Simulation _currentSimulation;

        public Form1()
        {
            InitializeComponent();

            //event handlers
            _currentSimulation = simulation1;
            _currentSimulation.WorkCompleted += simulation1_WorkCompleted;
            _currentSimulation.WorkFailed += _currentSimulation_WorkFailed;

        }

        private void _currentSimulation_WorkFailed(object sender, WorkFailedEventArgs e)
        {
            throw new NotImplementedException();
        }

        private void simulation1_WorkCompleted(object sender, WorkCompletedEventArgs e)
        {
            if (e.WorkUnit is SolverBase)
            {
                _currentSimulation.ActiveViewport.Legends[0].IsSlave = true;

                // Changes the Legend color box size
                _currentSimulation.ActiveViewport.Legends[0].ItemSize = new Size(9, 18);

                SolverBase solver = (SolverBase)e.WorkUnit;

                FemMesh fm = solver.Mesh;

                // computes the selected plot
                fm.PlotMode = FemMesh.plotType.VonMises;
                //fm.PlotMode = FemMesh.plotType.Uy;

                fm.NodalAverages = true;

                fm.ComputePlot(simulation1, simulation1.ActiveViewport.Legends[0], true);

                simulation1.ZoomFit();

            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {

            TestCylinder();

            SolveSetup();
        }

        private void TestCylinder()
        {
            //use material steel
            Material mat = Material.StructuralSteel;
            mat.ElementThickness = 2;       //2mm thickness


            //draw circle for cylinder cs
            Circle c1 = new Circle(Plane.XY, new Point3D(0, 0, 0), 50);

            //extrude as a surface this circle c1
            Surface cs = c1.ExtrudeAsSurface(250);

            Brep csBrep = cs.ConvertToBrep();

            Mesh msh = csBrep.ConvertToMesh(5, false);

            fm = msh.ConvertToFemMesh(mat, true);

            int numFaces = fm.SetPressure(Plane.ZX, 55, 0.155);

            fm.FixAll(Plane.XY, 0.5);


        }

        private void SolveSetup()
        {
            Solver solver = new Solver(fm);

            _currentSimulation.StartWork(solver);
        }

    }
}

我认为这样的库最好提供强大的方法来处理曲面,因为曲面模型是轻量级的,需要更少的资源和时间来解决。

EN

回答 1

Stack Overflow用户

发布于 2022-06-22 06:23:22

你正在使用一个二维三角形单元在一个三维有限元网格。您需要一个3D外壳或膜元素来解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72700753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档