public void Main() { try { IModelDoc2 model = swApp.IActiveDoc2; if (model is IPartDoc) { BodyHelper proc = new BodyHelper(swApp.IGetMathUtility()); object selObj = model.ISelectionManager.GetSelectedObject6(1, -1); CylinderParams cylParams = proc.GetBoundingCylinder( GetBodyToProcess(model as IPartDoc, selObj), GetDirection(model, selObj)); CreateCylindricalBody(model as IPartDoc, cylParams); } else { throw new NullReferenceException("No Part Document opened"); } } catch (Exception ex) { swApp.SendMsgToUser2("Error: " + ex.Message, (int)swMessageBoxIcon_e.swMbStop, (int)swMessageBoxBtn_e.swMbOk); } }
private void CreateCylindricalBody(IPartDoc part, CylinderParams cylParams) { IBody2 cylTempBody = swApp.IGetModeler().CreateBodyFromCyl(new double[] { cylParams.Origin[0], cylParams.Origin[1], cylParams.Origin[2], cylParams.Direction[0], cylParams.Direction[1], cylParams.Direction[2], cylParams.Radius, cylParams.Height }) as IBody2; IFeature feat = part.CreateFeatureFromBody3(cylTempBody, false, (int)swCreateFeatureBodyOpts_e.swCreateFeatureBodySimplify) as IFeature; IBody2 body = feat.GetBody() as IBody2; body.MaterialPropertyValues2 = new double[] { 1, 1, 0, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 }; }