Hide Table of Contents

Analyze Part Example (C#)

This example shows how to perform a static analysis of a part and plot nodal strain results.

NOTE: To get persistent reference identifiers (PIDs) for model selections, you can use pidcollector.exe or IModelDocExtension::GetPersistReference3.

//--------------------------------------------------------------------------
// Preconditions:
// 1. Add the SOLIDWORKS Simulation as an add-in
//    (in SOLIDWORKS, click Tools > Add-ins > SOLIDWORKS Simulation).
// 2. Add the SOLIDWORKS Simulation primary interop assembly
//    (in the IDE's Project Explorer, right-click
//    the project name, click Add Reference, click the Browse tab,
//    navigate to install_dir\api\redist\CLR2,
//    click SolidWorks.Interop.cosworks.dll, and click OK).  
// 3. Modify the path to solidworks materials.sldmat as needed.
// 4. Ensure the specified part exists.
// 5. Open the Immediate window.
//
// Postconditions:
// 1.  Adds a default static study results plot.
// 2.  Creates study Static-solid.
// 3.  Applies a material to the model.
// 4.  Applies restraints and pressure to the selected faces.
// 5.  Creates a mesh.
// 6.  Runs the analysis.
// 7.  Prints strain and stress results to the Immediate window.
// 8.  Creates a nodal equivalent strain plot of the results.
// 9.  Prints plot data to the Immediate window.
// 10. Hides fixture and force symbols. Examine the graphics area
//     to verify.
// 11. Press F5 to continue.
// 12. Shows fixture and force symbols. Examine the graphics area
//     to verify.
// 13. Inspect the plots.
//
// NOTE: Because this model is used elsewhere, do not save any changes.
//-------------------------------------------------------------------------

using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;
using SolidWorks.Interop.cosworks;
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
 
namespace AnalyzePartCSharp.csproj
{
 
    partial class SolidWorksMacro
    {
        public void Main()
        {
            CosmosWorks COSMOSWORKS = default(CosmosWorks);
            CwAddincallback CWObject = default(CwAddincallback);
            CWModelDoc ActDoc = default(CWModelDoc);
            CWStudyManager StudyMngr = default(CWStudyManager);
            CWStudy Study = default(CWStudy);
            CWSolidManager SolidMgr = default(CWSolidManager);
            CWSolidComponent SolidComponent = default(CWSolidComponent);
            CWSolidBody SolidBody = default(CWSolidBody);
            CWMesh CwMesh = default(CWMesh);
            CWResults CWResult = default(CWResults);
            object stress = null;
            ModelDoc2 Part = default(ModelDoc2);
            CWLoadsAndRestraintsManager LBCMgr = default(CWLoadsAndRestraintsManager);
            CWPressure CWPressure = default(CWPressure);
            CWRestraint CWRes1 = default(CWRestraint);
            object pointer1 = null;
            object pointer2 = null;
            object pointer3 = null;
            CWMaterial CWMat = default(CWMaterial);
            byte[] var1 = null;
            byte[] var2 = null;
            byte[] var3 = null;
            int returnValue = 0;
            string selection1 = null;
            string selection2 = null;
            string selection3 = null;
            int status = 0;
            int warnings = 0;
            int errCode = 0;
            int NSource = 0;
            double el = 0;
            double tl = 0;             
            int errorCode = 0;
            object[] results = null;
            CWPlot plot = default(CWPlot);
            string plotName = "";
            int i = 0;
            Entity[] entity = new Entity[1];
            int nType = 0;
            int nBase = 0;
            int nContour = 0;
            bool BFlip = false;
            bool BSpecifyColorLimit = false;
            object VarColor = null;
            object[] vDispOptions = null;
            object[] vPlotPosFormatOptions = null;
            object[] vPlotSettings = null;
            string Name = "";
            object Color = null;
 
            // Open SOLIDWORKS part document 
            Part = (ModelDoc2)swApp.OpenDoc6("C:\\Program Files\\SOLIDWORKS Corp\\SOLIDWORKS\\Simulation\\Examples\\Tutor1.SLDPRT ", (int)swDocumentTypes_e.swDocPART, (int)swOpenDocOptions_e.swOpenDocOptions_Silent, ""ref status, ref warnings);
            if (Part == null) ErrorMsg(swApp, "Failed to open C:\\Program Files\\SOLIDWORKS Corp\\SOLIDWORKS\\Simulation\\Examples\\Tutor1.SLDPRT."true);
 
            // Get SOLIDWORKS Simulation object 
            CWObject = (CwAddincallback)swApp.GetAddInObject("SldWorks.Simulation");
            if (CWObject == null) ErrorMsg(swApp, "No CwAddincallback object"true);
            COSMOSWORKS = (CosmosWorks)CWObject.CosmosWorks;
            if (COSMOSWORKS == null) ErrorMsg(swApp, "No CosmosWorks object"true);
 
            // Get active document        
            ActDoc = (CWModelDoc)COSMOSWORKS.ActiveDoc;
            if (ActDoc == null) ErrorMsg(swApp, "No active document"true);

           // Add default static study results plot
          
errCode = ActDoc.AddDefaultStaticStudyPlot((int)swsDefaultStaticResultTypes_e.swsStaticResultElementalStrain, (int)  swsStaticResultElementalStrainComponentTypes_e.swsStaticElementalStrain_ENERGY);
 

            // Set default plot boundary color
            errCode = ActDoc.SetSimulationOptionDefaultPlotsBoundaryColorInRGB((int)swsSimulationOptionDefaultPlotsBoundaryColorInRGBBoundaryOption_e.swsSimulationOptionDefaultPlotsBoundaryColorInRGBBoundaryOption_ModelOrMesh, 0, 0, 255);
            errCode = ActDoc.SetSimulationOptionDefaultPlotsBoundaryColorInRGB((int)swsSimulationOptionDefaultPlotsBoundaryColorInRGBBoundaryOption_e.swsSimulationOptionDefaultPlotsBoundaryColorInRGBBoundaryOption_TranslucentSingleColor, 255, 0, 0);
 
            // Get default plot model or mesh boundary color
            object[] colorObj = null;
            colorObj = (object[])ActDoc.GetSimulationOptionDefaultPlotsBoundaryColorInRGB((int)swsSimulationOptionDefaultPlotsBoundaryColorInRGBBoundaryOption_e.swsSimulationOptionDefaultPlotsBoundaryColorInRGBBoundaryOption_ModelOrMesh, out errCode);
            Debug.Print("RGB values for model or mesh:");
            for (i = 0; i <= colorObj.GetUpperBound(0); i++)
            {
                Debug.Print(colorObj[i].ToString());
            }
 
            // Create new static study 
            StudyMngr = (CWStudyManager)ActDoc.StudyManager;
            if (StudyMngr == null) ErrorMsg(swApp, "No study manager object"true);
            Study = (CWStudy)StudyMngr.CreateNewStudy3("Static_solid", (int)swsAnalysisStudyType_e.swsAnalysisStudyTypeStatic, (int)swsMeshType_e.swsMeshTypeSolid, out errCode);
            if (Study == null) ErrorMsg(swApp, "No study object"true);
 
            // Set material from the SOLIDWORKS material library 
            SolidMgr = (CWSolidManager)Study.SolidManager;
            if (SolidMgr == null) ErrorMsg(swApp, "No solid manager object"true);
            SolidComponent = (CWSolidComponent)SolidMgr.GetComponentAt(0, out errCode);
            if (errCode != 0) ErrorMsg(swApp, "No solid component"true);
            SolidBody = (CWSolidBody)SolidComponent.GetSolidBodyAt(0, out errCode);
            if (errCode != 0) ErrorMsg(swApp, "No solid bod."true);
            returnValue = SolidBody.SetLibraryMaterial("c:\\Program Files\\SOLIDWORKS Corp\\SOLIDWORKS\\lang\\english\\sldmaterials\\solidworks materials.sldmat""Ductile Iron (SN)");
            if (returnValue == 0) ErrorMsg(swApp, "No material applied"true);
            CWMat = (CWMaterial)SolidBody.GetDefaultMaterial();
            NSource = CWMat.Source;
 
            // Get the PIDs of the faces 
            // First two selections are the faces for restraints 
            // Third selection is the face where pressure is applied 
            selection1 = "216,14,0,0,3,0,0,0,255,254,255,0,0,0,0,0,255,255,1,0,11,0,109,111,70,97,99,101,82,101,102,95,99,1,0,0,0,0,0,0,0,5,0,0,0,0,3,0,0,0,0,0,0,125,195,148,37,173,73,178,84,125,195,148,37,173,73,178,84,0,0,255,255,1,0,21,0,109,111,76,80,97,116,116,101,114,110,83,117,114,102,73,100,82,101,112,95,99,0,0,255,255,1,0,6,0,109,111,70,82,95,99,255,255,1,0,13,0,109,111,69,120,116,79,98,106,101,99,116,95,99,255,255,1,0,14,0,109,111,79,98,106,70,105,108,101,68,101,102,95,99,255,255,1,0,17,0,109,111,67,83,116,114,105,110,103,72,97,110,100,108,101,95,99,255,254,255,6,84,0,117,0,116,0,111,0,114,0,49,0,123,228,186,50,11,128,255,254,255,62,67,0,58,0,92,0,80,0,114,0,111,0,103,0,114,0,97,0,109,0,32,0,70,0,105,0,108,0,101,0,115,0,92,0,83,0,111,0,108,0,105,0,100,0,87,0,111,0,114,0,107,0,115,0,92,0,67,0,79,0,83,0,77,0,79,0,83,0,87,0,111,0,114,0,107,0,115,0,92,0,69,0,120,0,97,0,109,0,112,0,108,0,101,0,115,0,92,0,84,0,117,0,116,0,111,0,114,0,49,0,46,0,83,0,76,0,68,0,80,0,82,0,84,0,97,23,28,65,0,0,0,0";
            selection1 = selection1 + ",2,0,1,0,0,0,0,0,0,0,1,0,0,0,255,254,255,7,68,0,101,0,102,0,97,0,117,0,108,0,116,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,156,231,186,50,255,255,1,0,23,0,109,111,70,114,111,109,83,107,116,69,110,116,83,117,114,102,73,100,82,101,112,95,99,0,0,5,128,8,0,14,0,0,0,88,231,186,50,3,0,0,0,1,0,0,0,0,0,0,0,255,255,1,0,20,0,109,111,69,110,100,70,97,99,101,83,117,114,102,73,100,82,101,112,95,99,0,0,5,128,8,0,6,0,0,0,211,228,186,50,1,0,0,0,255,255,255,255,0,0,17,128,0,0,5,128,8,0,6,0,0,0,211,228,186,50,0,0,0,0,255,255,255,255,0,0,0,0,0,0";
            StringtoArray(selection1, ref var1);
            pointer1 = Part.Extension.GetObjectByPersistReference3((var1), out status);
 
            selection2 = "216,14,0,0,3,0,0,0,255,254,255,0,0,0,0,0,255,255,1,0,11,0,109,111,70,97,99,101,82,101,102,95,99,1,0,0,0,0,0,0,0,5,0,0,0,0,3,0,0,0,0,0,0,125,195,148,37,173,73,178,84,125,195,148,37,173,73,178,84,0,0,255,255,1,0,23,0,109,111,70,114,111,109,83,107,116,69,110,116,83,117,114,102,73,100,82,101,112,95,99,0,0,255,255,1,0,6,0,109,111,70,82,95,99,255,255,1,0,13,0,109,111,69,120,116,79,98,106,101,99,116,95,99,255,255,1,0,14,0,109,111,79,98,106,70,105,108,101,68,101,102,95,99,255,255,1,0,17,0,109,111,67,83,116,114,105,110,103,72,97,110,100,108,101,95,99,255,254,255,6,84,0,117,0,116,0,111,0,114,0,49,0,123,228,186,50,11,128,255,254,255,62,67,0,58,0,92,0,80,0,114,0,111,0,103,0,114,0,97,0,109,0,32,0,70,0,105,0,108,0,101,0,115,0,92,0,83,0,111,0,108,0,105,0,100,0,87,0,111,0,114,0,107,0,115,0,92,0,67,0,79,0,83,0,77,0,79,0,83,0,87,0,111,0,114,0,107,0,115,0,92,0,69,0,120,0,97,0,109,0,112,0,108,0,101,0,115,0,92,0,84,0,117,0,116,0,111,0,114,0,49,0,46,0,83,0,76,0,68,0,80,0,82,0,84,0,97,23,28,";
            selection2 = selection2 + "65,0,0,0,0,2,0,1,0,0,0,0,0,0,0,1,0,0,0,255,254,255,7,68,0,101,0,102,0,97,0,117,0,108,0,116,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,88,231,186,50,3,0,0,0,255,255,1,0,20,0,109,111,69,110,100,70,97,99,101,83,117,114,102,73,100,82,101,112,95,99,0,0,5,128,8,0,6,0,0,0,211,228,186,50,1,0,0,0,255,255,255,255,0,0,14,128,0,0,5,128,8,0,6,0,0,0,211,228,186,50,0,0,0,0,255,255,255,255,0,0,0,0,0,0";
            StringtoArray(selection2, ref var2);
            pointer2 = Part.Extension.GetObjectByPersistReference3((var2), out status);
 
            selection3 = "216,14,0,0,3,0,0,0,255,254,255,0,0,0,0,0,255,255,1,0,11,0,109,111,70,97,99,101,82,101,102,95,99,1,0,0,0,0,0,0,0,8,0,0,0,0,3,0,0,0,0,0,0,125,195,148,37,173,73,178,84,125,195,148,37,173,73,178,84,0,0,255,255,1,0,20,0,109,111,69,110,100,70,97,99,101,83,117,114,102,73,100,82,101,112,95,99,0,0,255,255,1,0,6,0,109,111,70,82,95,99,255,255,1,0,13,0,109,111,69,120,116,79,98,106,101,99,116,95,99,255,255,1,0,14,0,109,111,79,98,106,70,105,108,101,68,101,102,95,99,255,255,1,0,17,0,109,111,67,83,116,114,105,110,103,72,97,110,100,108,101,95,99,255,254,255,6,84,0,117,0,116,0,111,0,114,0,49,0,123,228,186,50,11,128,255,254,255,62,67,0,58,0,92,0,80,0,114,0,111,0,103,0,114,0,97,0,109,0,32,0,70,0,105,0,108,0,101,0,115,0,92,0,83,0,111,0,108,0,105,0,100,0,87,0,111,0,114,0,107,0,115,0,92,0,67,0,79,0,83,0,77,0,79,0,83,0,87,0,111,0,114,0,107,0,115,0,92,0,69,0,120,0,97,0,109,0,112,0,108,0,101,0,115,0,92,0,84,0,117,0,116,0,111,0,114,0,49,0,46,0,83,0,76,0,68,0,80,0,82,0,84,0,97,23,28,65,0,0,0,0,2,0,";
            selection3 = selection3 + "1,0,0,0,0,0,0,0,1,0,0,0,255,254,255,7,68,0,101,0,102,0,97,0,117,0,108,0,116,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,51,230,186,50,1,0,0,0,255,255,255,255,255,255,1,0,23,0,109,111,70,114,111,109,83,107,116,69,110,116,83,117,114,102,73,100,82,101,112,95,99,0,0,5,128,8,0,8,0,0,0,218,229,186,50,4,0,0,0,0,0,255,255,1,0,18,0,109,111,80,76,105,110,101,83,117,114,102,73,100,82,101,112,95,99,0,0,5,128,8,0,31,0,0,0,210,195,223,50,17,128,0,0,5,128,8,0,23,0,0,0,160,192,223,50,14,128,0,0,5,128,8,0,19,0,0,0,181,233,186,50,1,0,0,0,1,0,0,0,2,0,0,0,17,128,0,0,5,128,8,0,31,0,0,0,210,195,223,50,17,128,0,0,5,128,8,0,23,0,0,0,160,192,223,50,14,128,0,0,5,128,8,0,19,0,0,0,181,233,186,50,1,0,0,0,1,0,0,0,1,0,0,0,17,128,0,0,5,128,8,0,31,0,0,0,210,195,223,50,17,128,0,0,5,128,8,0,23,0,0,0,160,192,223,50,14,128,0,0,5,128,8,0,19,0,0,0,181,233,186,50,1,0,0,0,2,0,0,0,3,0,0,0,17,128,0,0,5,128,8,0,31,0,0,0,210,195,223,50,17,128,0,0,5,128,8,0,23,0,0,0,160,192,223,50,14,";
            selection3 = selection3 + "128,0,0,5,128,8,0,19,0,0,0,181,233,186,50,1,0,0,0,2,0,0,0,4,0,0,0,0,0,0,0,0,0";
            StringtoArray(selection3, ref var3);
            pointer3 = Part.Extension.GetObjectByPersistReference3((var3), out status);
 
            object[] varArray1 = { pointer1, pointer2 };
            object[] varArray2 = { pointer3 };
 
            // Add fixed restraint 
            LBCMgr = (CWLoadsAndRestraintsManager)Study.LoadsAndRestraintsManager;
            if (LBCMgr == null) ErrorMsg(swApp, "No loads and restraints manager"false);
            CWRes1 = (CWRestraint)LBCMgr.AddRestraint(0, (varArray1), nullout errCode);
            if (errCode != 0) ErrorMsg(swApp, "No fixed restraint created"true);
 
            // Apply pressure normal to selected face 
            CWPressure = (CWPressure)LBCMgr.AddPressure(0, (varArray2), nullout errCode);
            if (errCode != 0) ErrorMsg(swApp, "No normal pressure created"true);
            CWPressure.PressureBeginEdit();
            CWPressure.Unit = 1;
            CWPressure.Value = 1000;
            errCode = CWPressure.PressureEndEdit();
            if (errCode != 0) ErrorMsg(swApp, "Nonuniform pressure distribution not set"true);
 
            // Mesh 
            CwMesh = (CWMesh)Study.Mesh;
            if (CwMesh == null) ErrorMsg(swApp, "No mesh object"false);
            CwMesh.Quality = 1;
            CwMesh.GetDefaultElementSizeAndTolerance(0, out el, out tl);
            errCode = Study.CreateMesh(0, el, tl);
            if (errCode != 0) ErrorMsg(swApp, "Mesh failed"true);
 
            // Run analysis 
            errCode = Study.RunAnalysis();
            if (errCode != 0) ErrorMsg(swApp, "Analysis failed"true);
            CWResult = (CWResults)Study.Results;
            if (CWResult == null) ErrorMsg(swApp, "No resulta object"false);
            stress = CWResult.GetMinMaxStress(0, 0, 1, null, 0, out errCode);
 
            // Get strain and stress values for 
            // first face selected for restraint 
            DispatchWrapper[] dispWrapper = new DispatchWrapper[1];
            dispWrapper[0] = new DispatchWrapper((Entity)pointer1);
            object[] results = null;
            string resultsString = null;
 
            int i;
            Debug.Print("  Strain value by node:");
            results = (object[])CWResult.GetStrainForEntities3(true, (int)swsStrainComponent_e.swsStrainComponentESTRN, 1, null, dispWrapper, status, 0, false, out errCode);
            for (i = 0; i < results.Length; i++)
            {
                resultsString = Convert.ToString(results[i]);
                Debug.Print("    " + resultsString);
            }
 
            Debug.Print(" ");
            Debug.Print("  Stress value by node:");
            results = (object[])CWResult.GetStressForEntities3(true, (int)swsStressComponent_e.swsStressComponentVON, 1, null, dispWrapper, (int)swsStrengthUnit_e.swsStrengthUnitPascal, status, 0, false, out errCode);
            for (i = 0; i < results.Length; i++)
            {
                resultsString = Convert.ToString(results[i]);
                Debug.Print("    " + resultsString);
            }

// Create a nodal equivalent strain plot
plot = CWResult.CreatePlot(3, (int)swsStaticResultNodalStrainComponentTypes_e.swsStaticNodalStrain_ESTRN, (int)swsUnit_e.swsUnitSI, false, out errorCode);
errorCode = plot.ActivatePlot();
errorCode = plot.GetPlotName(
out plotName);
errorCode = plot.ApplyNameViewOrientation(
"*Front");
results = (
object[])plot.GetMinMaxResultValues(out errorCode);
errorCode = plot.SetPlotTitle(
"Nodal Equivalent Strain");
plot.SetFOSPlot(
false);
plot.Set2DPlanarRevolveAngle(0.0);
plot.SetNormalizeModeShape(
false);
plot.ShowAs3DPlot(
true);
plot.ShowTensorOrVector(
false);
plot.ShowShellin3D(
false);
plot.ShowNormalizeValuesFrom0To1(
true);
errorCode = plot.ShowDeformedPlot(
true, (int)swsDeformType_e.swsAutomatic, 0.0, true);
plot.ShowBeamProfile(
false);
plot.ShowAvgResultsAcrossBoundaryForParts(
false);

Debug.Print("Result plot created: " + plotName);
Debug.Print("Node " + results[0] + " " + "has minimum strain value: " + results[1]);
Debug.Print("Node " + results[2] + " " + "has maximum strain value: " + results[3]);

Debug.Print("Number of plots for these results: " + CWResult.GetPlotCount());
foreach (string Name_loopVariable in (string[])CWResult.GetPlotNames())
{

    Name = Name_loopVariable;
   
Debug.Print("");
   
Debug.Print("Plot: " + Name);
    errorCode = CWResult.GetPlotColorOptions(Name,
out nType, out nBase, out nContour, out BFlip, out BSpecifyColorLimit, out VarColor);
   
Debug.Print("Plot color options:");
   
Debug.Print(" Color map as defined in swsColorChartOptionLegendTypeValue_e: " + nType);
   
Debug.Print(" Number of base colors in color map: " + nBase);
   
Debug.Print(" Number of gradient colors in color map: " + nContour);
   
Debug.Print(" Reverse the color mapping? " + BFlip);
   
Debug.Print(" Specify a color for values above the yield limit? " + BSpecifyColorLimit);
   
Debug.Print(" Color for values above the yield limit and user-defined colors (RGB): ");

    string rgb = "{";
   
int rgbInd = 1;
   
int ind = 1;
   
object[] ColorObj = (object[])VarColor;
   
int size = ColorObj.Length;
   
int[] intColor = new int[size];

    for (i=0; i<size; i++){
        intColor[i] = (
int)ColorObj[i];
    }

    // Create RGB triplet for each color
    foreach (int Color_loopVariable in intColor)
    {

        Color = Color_loopVariable;

        if (rgbInd < 3){
            rgb = rgb + Color +
",";
            rgbInd = rgbInd + 1;
        }

        else {
            rgb = rgb + Color +
"}";
            rgbInd = 1;
           
if (!(ind == size)){
                rgb = rgb +
"{";
            }
        }
        ind = ind + 1;
    }   

    Debug.Print(" " + rgb);
    vDispOptions = (
object[])CWResult.GetPlotDisplayOptions(Name, out errorCode);
   
Debug.Print("");
   
Debug.Print("Plot display options:");
   
Debug.Print(" Display the minimum value? " + vDispOptions[0]);
   
Debug.Print(" Display the maximum value? " + vDispOptions[1]);
   
Debug.Print(" Display the plot details? " + vDispOptions[2]);
   
Debug.Print(" Display the legend? " + vDispOptions[3]);
   
Debug.Print(" Display the minimum/maximum range only for parts? " + vDispOptions[4]);
   
Debug.Print(" Allow a user-defined minimum/maximum? " + vDispOptions[5]);
   
Debug.Print(" User-defined minimum: " + vDispOptions[6]);
   
Debug.Print(" User-defined maximum: " + vDispOptions[7]);

    vPlotPosFormatOptions = (object[])CWResult.GetPlotPositionFormatOptions(Name, out errorCode);
   
Debug.Print("");
   
Debug.Print("Plot position/format options:");
   
Debug.Print(" Percentage of the window width: " + vPlotPosFormatOptions[0]);
   
Debug.Print(" Percentage of the window height: " + vPlotPosFormatOptions[1]);
   
Debug.Print(" Chart thickness option as defined in swsColorChartWidthOptionValue_e: " + vPlotPosFormatOptions[2]);
   
Debug.Print(" Chart number format as defined in swsColorChartNumberFormatOptionValue_e: " + vPlotPosFormatOptions[3]);
   
Debug.Print(" Number of decimal places to display: " + vPlotPosFormatOptions[4]);
   
Debug.Print(" Display chart numbers with a 1000 comma separator? " + vPlotPosFormatOptions[5]);
   
Debug.Print(" Use different number format for small numbers? " + vPlotPosFormatOptions[6]);
   
Debug.Print(" Number format for small numbers as defined in swsColorNumberFormatUseDiffNumberFormatOptionValue_e: " + vPlotPosFormatOptions[7]);

    vPlotSettings = (object[])CWResult.GetPlotSettings(Name, out errorCode);
   
Debug.Print("");
   
Debug.Print("Plot settings:");
   
Debug.Print(" Display option for active fringe plot as defined in swsPlotFringeSettingsOptionValue_e: " + vPlotSettings[0]);
   
Debug.Print(" Display option for model boundary as defined in swsPlotBoundarySettingsOptionValue_e: " + vPlotSettings[1]);
   
Debug.Print(" R value for model/mesh color: " + vPlotSettings[2]);
   
Debug.Print(" G value for model/mesh color: " + vPlotSettings[3]);
   
Debug.Print(" B value for model/mesh color: " + vPlotSettings[4]);
   
Debug.Print(" Superimpose the undeformed model on the deformed model? " + vPlotSettings[5]);
   
Debug.Print(" Deformed plot translucent option as defined in swsPlotDeformedShapeOptionSuperImposeValue_e: " + vPlotSettings[6]);
   
Debug.Print(" R value for single translucent color: " + vPlotSettings[7]);
   
Debug.Print(" G value for single translucent color: " + vPlotSettings[8]);
   
Debug.Print(" B value for single translucent color: " + vPlotSettings[9]);
   
Debug.Print(" Color intensity [0,1]: " + vPlotSettings[10]);
}


            // Hide fixture and force symbols
            Study.ShowOrHideFixtures = false;
            Study.ShowOrHideForce = false;
 
            System.Diagnostics.Debugger.Break();
 
            //S how fixture and force symbols
            Study.ShowOrHideFixtures = true;
            Study.ShowOrHideForce = true;
        }
 
 
        private void ErrorMsg(SldWorks SwApp, string Message, bool EndTest)
        {
            swApp.SendMsgToUser2(Message, 0, 0);
            swApp.RecordLine("'*** WARNING - General");
            swApp.RecordLine("'*** " + Message);
            swApp.RecordLine("");
        }
 
 
        private void StringtoArray(string inputSTR, ref byte[] varEntity)
        {
            string[] PIDArray = null;
            byte[] PID = null;
            int i;
 
            // Parse string into an array
            PIDArray = inputSTR.Split(new char[] { ',' });
 
            //Convert string array to byte array
            int sizeArray = PIDArray.Length;
            PID = new byte[sizeArray];
            for (i = 0; i < PIDArray.Length; i++)
            {
 
                PID[i] = Convert.ToByte(PIDArray[i]);
            }
            varEntity = PID;
        }
 
 
        /// <summary> 
        /// The SldWorks swApp variable is pre-assigned for you. 
        /// </summary> 
        public SldWorks swApp;
    }
 
}



Provide feedback on this topic

SOLIDWORKS welcomes your feedback concerning the presentation, accuracy, and thoroughness of the documentation. Use the form below to send your comments and suggestions about this topic directly to our documentation team. The documentation team cannot answer technical support questions. Click here for information about technical support.

* Required

 
*Email:  
Subject:   Feedback on Help Topics
Page:   Analyze Part Example (C#)
*Comment:  
*   I acknowledge I have read and I hereby accept the privacy policy under which my Personal Data will be used by Dassault Systèmes

Print Topic

Select the scope of content to print:

x

We have detected you are using a browser version older than Internet Explorer 7. For optimized display, we suggest upgrading your browser to Internet Explorer 7 or newer.

 Never show this message again
x

Web Help Content Version: API Help (English only) 2015 SP05

To disable Web help from within SOLIDWORKS and use local help instead, click Help > Use SOLIDWORKS Web Help.

To report problems encountered with the Web help interface and search, contact your local support representative. To provide feedback on individual help topics, use the “Feedback on this topic” link on the individual topic page.