失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > SolidWorks二次开发 API-SOLIDWORKS Simulation分析参数修改

SolidWorks二次开发 API-SOLIDWORKS Simulation分析参数修改

时间:2022-12-06 04:44:03

相关推荐

SolidWorks二次开发 API-SOLIDWORKS Simulation分析参数修改

今天我们来讲个小例子。

是关于SOLIDWORKS Simulation的。

先说明一点,这东西我也不熟。有问题别问我

首先,我做了一个很难的分析,条件也是很复杂,具体操作我就不说了,分析结果如下:

当然这个图和我们今天要做的事情 关系不大,我们主要了解 一下如何连接到SOLIDWORKS Simulation 上并修改载荷参数,重新运行分析,得到新的结果 。

具体的api查找过滤和之前看帮助类似,我就直接上图了:

下面是关键代码:

把上面的力的大小从100 改成150,然后重新进行风格的划分,运行计算。

`

private void btnSimStudy_Click(object sender, EventArgs e)

{

var actPath = RegDllPath(“”);

var start = actPath.Substring(0,actPath.IndexOf("CSharpAndSolidWorks",0));var partPath = $@"{start}CSharpAndSolidWorks\CSharpAndSolidWorks\TemplateModel\Simulation API Demo.SLDPRT";SldWorks swApp = PStandAlone.GetSolidWorks();CWModelDoc swsActDoc = default(CWModelDoc);CWStudyManager swsStudyMngr = default(CWStudyManager);CWStudy swsStudy = default(CWStudy);CWLoadsAndRestraintsManager swsLBCMgr = default(CWLoadsAndRestraintsManager);CWForce swsCWForce = default(CWForce); int errors = 0;int warnings = 0;string fileName = partPath;// 打开模型var swModel = (ModelDoc2)swApp.OpenDoc6(fileName, (int)swDocumentTypes_e.swDocPART, (int)swOpenDocOptions_e.swOpenDocOptions_Silent, "", ref errors, ref warnings);// Get the SOLIDWORKS Simulation objectdynamic COSMOSWORKS = default(dynamic);dynamic COSMOSObject = default(dynamic);// Determine host SOLIDWORKS major versionint swVersion = Convert.ToInt32(swApp.RevisionNumber().Substring(0, 2));// Calculate the version-specific ProgID of the Simulation add-in that is compatible with this version of SOLIDWORKSint cwVersion = swVersion - 15;String cwProgID = String.Format("SldWorks.Simulation.{0}", cwVersion);Debug.Print(cwProgID);// Get the SOLIDWORKS Simulation objectCOSMOSObject = swApp.GetAddInObject(cwProgID);COSMOSWORKS = COSMOSObject.CosmosWorks;// Open and get active documentswsActDoc = (CWModelDoc)COSMOSWORKS.ActiveDoc;if (swsActDoc == null) ErrorMsg(swApp, "No active document");// Create new static studyswsStudyMngr = (CWStudyManager)swsActDoc.StudyManager;if (swsStudyMngr == null) ErrorMsg(swApp, "No CWStudyManager object");//得到第一个算例对象swsStudy = (CWStudy)swsStudyMngr.GetStudy(0);//算例名称,可以区分多个算例 swsStudy.Nameif (swsStudy == null) ErrorMsg(swApp, "No CWStudy object");swsLBCMgr = (CWLoadsAndRestraintsManager)swsStudy.LoadsAndRestraintsManager;//get the Force Feature//这是是第一个条件,所以参数写0var sCwForce = swsLBCMgr.GetLoadsAndRestraints(0, out int errcode);if (sCwForce != null){var swForce = (CWForce)sCwForce;swForce.ForceBeginEdit();//修改值为150swForce.NormalForceOrTorqueValue = 150; var res = swForce.ForceEndEdit();}//Create meshvar CwMesh = (CWMesh)swsStudy.Mesh;if (CwMesh == null) ErrorMsg(swApp, "No mesh object");CwMesh.Quality = 1;CwMesh.GetDefaultElementSizeAndTolerance(0, out double el, out double tl);var errCode = swsStudy.CreateMesh(0, el, tl);if (errCode != 0) ErrorMsg(swApp, "Mesh failed");//RunswsStudy.RunAnalysis();}public void ErrorMsg(object swApp, string Message){MessageBox.Show(Message);MessageBox.Show("'*** WARNING - General");MessageBox.Show("'*** " + Message);MessageBox.Show("");}

`

这样结果出来了,至于怎么拿到最新的结果 ,或者说截图的话后面有机会再讲了。

源码位置:

/painezeng/CSharpAndSolidWorks

如果觉得《SolidWorks二次开发 API-SOLIDWORKS Simulation分析参数修改》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。