public static double getMateValue(Component2 component) { Feature mate = swAssembly.FeatureByName(component.Name2 + "-distance"); if (mate == null) { return(-1); } IDisplayDimension dispDim = (IDisplayDimension)mate.GetFirstDisplayDimension(); IDimension dim = dispDim.IGetDimension(); double[] someRet = dim.GetSystemValue3((int)swSetValueInConfiguration_e.swSetValue_InSpecificConfigurations, new string[] { component.ReferencedConfiguration }); return(someRet[0]); }
public void updateExtrusionDepth(double depthInInches) { if (depthInInches < 0) { return; } double depthInMeters = Utilities.inchesToMeters(depthInInches); IDisplayDimension dispDim = (IDisplayDimension)extrusion.GetFirstDisplayDimension(); IDimension dim = dispDim.IGetDimension(); dim.SetSystemValue3(depthInMeters, (int)swSetValueInConfiguration_e.swSetValue_InSpecificConfigurations, new string[] { belongsTo.ReferencedConfiguration }); swFeatureMgr.EditRollback((int)swMoveRollbackBarTo_e.swMoveRollbackBarToEnd, extrusion.Name); swAssembly.EditRebuild(); swDoc.EditRebuild3(); swDoc.ForceRebuild3(false); swAssembly.EditAssembly(); }
private void OnDimensionChange(DocumentHandler docHandler, IDisplayDimension dispDim) { App.SendMsgToUser2($"'{docHandler.Model.GetTitle()}' dimension change: {dispDim.IGetDimension().FullName} = {dispDim.IGetDimension().Value}", (int)swMessageBoxIcon_e.swMbInformation, (int)swMessageBoxBtn_e.swMbOk); }
public static void moveToPosition(Component2 component, int position, double originalPosition) { /* * Buttons have 1 and 0 positions * Sliders move along the track from 1 to 0 in 4 steps * Dials move in a circle from 0 to 2*pi in 4 steps */ // for now, we will just try to move around the buttons, sliders, and dials, because that is least impossible! if (position == -1) { return; } // see discussions at // https://forum.solidworks.com/message/341157#341157#341157 double newDistance = 0; if (component.Name2.StartsWith("button")) { if (position == 1) { newDistance = Utilities.inchesToMeters(.02); } else { newDistance = originalPosition; } } else if (component.Name2.StartsWith("slider")) { newDistance = position / 4.0 * originalPosition; } else if (component.Name2.StartsWith("dial")) { newDistance = position * Math.PI / 2; } if (position == 0) { newDistance = originalPosition; } Feature mate = swAssembly.FeatureByName(component.Name2 + "-distance"); if (mate == null) { return; } IDisplayDimension dispDim = (IDisplayDimension)mate.GetFirstDisplayDimension(); IDimension dim = dispDim.IGetDimension(); dim.SetSystemValue3(newDistance, (int)swSetValueInConfiguration_e.swSetValue_InSpecificConfigurations, new string[] { component.ReferencedConfiguration }); swAssembly.EditRebuild(); swDoc.ForceRebuild3(false); swAssembly.EditAssembly(); }