protected override MacroFeatureRebuildResult OnRebuild(ISldWorks app, IModelDoc2 model, IFeature feature) { var body = app.IGetModeler().CreateBox(new Point(0.1, 0.2, 0.3), new Vector(0, 0, 1), 0.1, 0.2, 0.3); return(MacroFeatureRebuildResult.FromBody(body, feature.GetDefinition() as IMacroFeatureData)); }
protected override void OnSetDimensions(ISldWorks app, IModelDoc2 model, IFeature feature, MacroFeatureRebuildResult rebuildResult, DimensionDataCollection dims, DimensionMacroFeatureParams parameters) { dims[nameof(parameters.RefDimension)].SetOrientation(new Point(0, 0, 0), new Vector(0, 1, 0)); dims[nameof(parameters.RefCalcDimension)].SetOrientation(new Point(0, 0, 0), new Vector(0, 0, 1)); dims[nameof(parameters.RefRadDimension)].SetOrientation(new Point(0, 0, 0), new Vector(1, 0, 0)); }
protected override MacroFeatureRebuildResult OnRebuild(ISldWorks app, IModelDoc2 model, IFeature feature) { //use extension methods of IModeler to create a box body IBody2 tempBody = app.IGetModeler().CreateBox(new Point(0, 0, 0), new Vector(1, 0, 0), 0.1, 0.1, 0.1); return(MacroFeatureRebuildResult.FromBody(tempBody, feature.GetDefinition() as IMacroFeatureData, false)); }
protected override MacroFeatureRebuildResult OnRebuild(LifecycleMacroFeatureHandler handler, LifecycleMacroFeatureParams parameters) { handler.Rebuild(); return(MacroFeatureRebuildResult.FromStatus(true)); }
protected override MacroFeatureRebuildResult OnRebuild(ISldWorks app, IModelDoc2 model, IFeature feature, RoundStockFeatureParameters parameters) { var cylParams = GetCylinderParams(model, parameters); //temp SetProperties(model, parameters, cylParams); // parameters.Height = cylParams.Height; parameters.Radius = cylParams.Radius; var featData = feature.GetDefinition() as IMacroFeatureData; MacroFeatureOutdateState_e state; SetParameters(model, feature, featData, parameters, out state); if (state != MacroFeatureOutdateState_e.UpToDate) { app.ShowBubbleTooltip("Stock Master", $"'{feature.Name}' feature is outdated. Edit definition of the feature to update", BubbleTooltipPosition_e.TopLeft, Resources.warning_icon); } if (parameters.CreateSolidBody) { var body = m_StockModel.CreateCylindricalStock(cylParams); return(MacroFeatureRebuildResult.FromBody(body, feature.GetDefinition() as IMacroFeatureData)); } else { return(MacroFeatureRebuildResult.FromStatus(true)); } }
private void UpdateDimensions(ISldWorks app, IModelDoc2 model, IFeature feature, MacroFeatureRebuildResult rebuildRes, IDisplayDimension[] dispDims, string[] dispDimParams, TParams parameters) { using (var dimsColl = new DimensionDataCollection(dispDims, dispDimParams)) { if (dimsColl.Any()) { OnSetDimensions(app, model, feature, rebuildRes, dimsColl, parameters); } } }
protected override MacroFeatureRebuildResult OnRebuild(ISldWorks app, IModelDoc2 model, IFeature feature, DimensionMacroFeatureParams parameters) { parameters.RefCalcDimension = parameters.RefDimension * 2; parameters.DateTimeStamp = DateTime.Now.Ticks; SetParameters(model, feature, feature.GetDefinition() as IMacroFeatureData, parameters); feature.Name = parameters.RefDimension.ToString(); return(MacroFeatureRebuildResult.FromStatus(true)); }
protected override MacroFeatureRebuildResult OnRebuild(ISldWorks app, IModelDoc2 model, IFeature feature) { if (!string.IsNullOrEmpty(model.GetPathName())) { return(MacroFeatureRebuildResult.FromStatus(true)); } else { return(MacroFeatureRebuildResult.FromStatus(false, Resources.MacroFeatureError)); } }
protected virtual MacroFeatureRebuildResult CreateRebuildResult(ISldWorks app, IMacroFeatureData featData, TParams parameters) { var bodies = CreateGeometry(app, parameters); if (bodies.Any()) { return(MacroFeatureRebuildResult.FromBodies(bodies, featData, true)); } else { return(MacroFeatureRebuildResult.FromStatus(true)); } }
protected override MacroFeatureRebuildResult OnRebuild(ISldWorks app, IModelDoc2 model, IFeature feature, JRTrimFeatureData parameters) { try { var swMFD = feature.GetDefinition() as IMacroFeatureData; var resBodies = parameters.CreateBodies(app, preview: false).ToArray(); return(MacroFeatureRebuildResult.FromBodies(resBodies, swMFD)); } catch (Exception ex) { return(MacroFeatureRebuildResult.FromStatus(false, ex.Message)); } }
protected override MacroFeatureRebuildResult OnRebuild(LinkFileMacroFeatureHandler handler, LinkFileMacroFeatureParameters parameters) { if (handler.LastError == null) { parameters.FileLastUpdateTimeStamp = handler.LastUpdateStamp; SetParameters(handler.Model, handler.Feature, handler.Feature.GetDefinition() as IMacroFeatureData, parameters); return(MacroFeatureRebuildResult.FromBodies( handler.CachedBodies.Select(b => b.ICopy()).ToArray(), handler.Feature.GetDefinition() as IMacroFeatureData)); } else { return(MacroFeatureRebuildResult.FromStatus(false, handler.LastError.ToString())); } }
protected override MacroFeatureRebuildResult OnRebuild(ISldWorks app, IModelDoc2 model, IFeature feature, BoundingCylinderMacroFeatureParams parameters) { var modeler = app.IGetModeler(); Point center; Vector axis; double radius; double height; double extraHeight; GetCylinderParameters(parameters, out center, out axis, out radius, out height, out extraHeight); var cyl = modeler.CreateCylinder(center, axis, radius, height + extraHeight); return(MacroFeatureRebuildResult.FromBody(cyl, feature.GetDefinition() as IMacroFeatureData)); }
protected override void OnSetDimensions(ISldWorks app, IModelDoc2 model, IFeature feature, MacroFeatureRebuildResult rebuildResult, DimensionDataCollection dims, BoundingCylinderMacroFeatureParams parameters) { Point center; Vector axis; double radius; double height; double extraHeight; GetCylinderParameters(parameters, out center, out axis, out radius, out height, out extraHeight); var dimOrig = center.Move(axis, height); var dimDir = new Vector(axis); dims[0].SetOrientation(dimOrig, dimDir); }
protected override MacroFeatureRebuildResult OnRebuild(ISldWorks app, IModelDoc2 model, IFeature feature, TParams parameters) { try { var featData = feature.GetDefinition() as IMacroFeatureData; return(CreateRebuildResult(app, featData, parameters)); } catch (UserErrorException ex) { Logger.Log(ex); return(MacroFeatureRebuildResult.FromStatus(false, ex.Message)); } catch (Exception ex) { Logger.Log(ex); return(MacroFeatureRebuildResult.FromStatus(false, "Rebuild error")); } }
protected override void OnSetDimensions(ISldWorks app, IModelDoc2 model, IFeature feature, MacroFeatureRebuildResult rebuildResult, DimensionDataCollection dims, BodiesFilletFeatureDataModel parameters) { var filletRebuildRes = rebuildResult as BodiesFilletMacroFeatureRebuildResult; var filletFace = filletRebuildRes.FilletFaces.FirstOrDefault() as IFace2; if (filletFace != null) { var surf = filletFace.IGetSurface(); var uvBounds = filletFace.GetUVBounds() as double[]; var evalData = surf.Evaluate( (uvBounds[0] + uvBounds[1]) / 2, (uvBounds[2] + uvBounds[3]) / 2, 0, 0) as double[]; var pt = new Point(evalData[0], evalData[1], evalData[2]); var norm = new Vector(evalData[evalData.Length - 3], evalData[evalData.Length - 2], evalData[evalData.Length - 1]); Vector axis = null; if (surf.IsCylinder()) { var cylParams = surf.CylinderParams as double[]; axis = new Vector(cylParams[3], cylParams[4], cylParams[5]); } else if (surf.IsTorus()) { var torParams = surf.TorusParams as double[]; axis = new Vector(torParams[3], torParams[4], torParams[5]); } var rad = parameters.Radius; var moveDir = new Vector(norm); moveDir.Scale(-1); var dimStartPt = pt.Move(moveDir, rad); dims[0].SetOrientation(dimStartPt, axis); } }
protected override MacroFeatureRebuildResult OnRebuild(LifecycleMacroFeatureHandler handler, LifecycleMacroFeatureParams parameters) { //TODO: access handler to extract feature specific data return(MacroFeatureRebuildResult.FromStatus(true)); }
protected override void OnSetDimensions(ISldWorks app, IModelDoc2 model, IFeature feature, MacroFeatureRebuildResult rebuildResult, DimensionDataCollection dims, DimensionMacroFeatureParams parameters) { var rebuildRes = rebuildResult as CustomRebuildResult; var customData = rebuildRes.CustomData; //TODO: use custom data to arrange dimensions }
protected override MacroFeatureRebuildResult OnRebuild(ISldWorks app, IModelDoc2 model, IFeature feature) { IBody2[] tempBodies = null; //TODO: create temp bodies return(MacroFeatureRebuildResult.FromBodies(tempBodies, feature.GetDefinition() as IMacroFeatureData, true)); }
protected override MacroFeatureRebuildResult OnRebuild(ISldWorks app, IModelDoc2 model, IFeature feature) { return(MacroFeatureRebuildResult.FromStatus(false, "Failed to regenerate this feature")); }
protected override MacroFeatureRebuildResult OnRebuild(ISldWorks app, IModelDoc2 model, IFeature feature) { return(MacroFeatureRebuildResult.FromStatus(true)); }
protected override MacroFeatureRebuildResult OnRebuild(ISldWorks app, IModelDoc2 model, IFeature feature) { return(MacroFeatureRebuildResult.FromStatus(false, ObsoleteFeatureRebuildError)); }
/// <summary> /// Override this function to configure the dimensions of macro feature (i.e. position, style, etc.) /// </summary> /// <param name="app">Pointer to application</param> /// <param name="model">Pointer to current model</param> /// <param name="feature">Pointer to macro feature</param> /// <param name="dims">Pointer to dimensions of macro feature</param> /// <param name="parameters">Current instance of parameters (including the values of dimensions)</param> /// <remarks>Use the <see cref="DimensionDataExtension.SetOrientation(DimensionData, Point, Vector)"/> /// helper method to set the dimension orientation and position based on its values</remarks> protected virtual void OnSetDimensions(ISldWorks app, IModelDoc2 model, IFeature feature, MacroFeatureRebuildResult rebuildResult, DimensionDataCollection dims, TParams parameters) { OnSetDimensions(app, model, feature, dims, parameters); }