public void StoreToSelection(SelectionMgr swSelMgr, ref AttributeDef mdefattr_chbody)
{
//System.Windows.Forms.MessageBox.Show("StoreToSelection()");
// If user pressed OK, apply settings to all selected parts (i.e. ChBody in C::E):
for (int isel = 1; isel <= swSelMgr.GetSelectedObjectCount2(-1); isel++)
if ((swSelectType_e)swSelMgr.GetSelectedObjectType3(isel, -1) == swSelectType_e.swSelCOMPONENTS)
{
//Component2 swPart = (Component2)swSelMgr.GetSelectedObject6(isel, -1);
Component2 swPart = swSelMgr.GetSelectedObjectsComponent3(isel, -1);
ModelDoc2 swPartModel = (ModelDoc2)swPart.GetModelDoc2();
Component2 swPartcorr = swPartModel.Extension.GetCorresponding(swPart);// ***TODO*** for instanced parts? does not work...
swPartcorr = swPart; // ***TODO***
// fetch SW attribute with Chrono parameters for ChBody
SolidWorks.Interop.sldworks.Attribute myattr = (SolidWorks.Interop.sldworks.Attribute)swPartcorr.FindAttribute(mdefattr_chbody, 0);
if (myattr == null)
{
// if not already added to part, create and attach it
System.Windows.Forms.MessageBox.Show("Create data [should not happen here]");
myattr = mdefattr_chbody.CreateInstance5(swPartModel, swPartcorr, "Chrono::ChBody data", 0, (int)swInConfigurationOpts_e.swThisConfiguration);
swPartModel.ForceRebuild3(false); // needed?
if (myattr == null) System.Windows.Forms.MessageBox.Show("Error: myattr null in setting!!");
}
((Parameter)myattr.GetParameter("collision_on")).SetDoubleValue2(
Convert.ToDouble(m_collide), (int)swInConfigurationOpts_e.swThisConfiguration, "");
((Parameter)myattr.GetParameter("friction")).SetDoubleValue2(
m_friction, (int)swInConfigurationOpts_e.swThisConfiguration, "");
((Parameter)myattr.GetParameter("rolling_friction")).SetDoubleValue2(
m_rolling_friction, (int)swInConfigurationOpts_e.swThisConfiguration, "");
((Parameter)myattr.GetParameter("spinning_friction")).SetDoubleValue2(
m_spinning_friction, (int)swInConfigurationOpts_e.swThisConfiguration, "");
((Parameter)myattr.GetParameter("restitution")).SetDoubleValue2(
m_restitution, (int)swInConfigurationOpts_e.swThisConfiguration, "");
((Parameter)myattr.GetParameter("collision_margin")).SetDoubleValue2(
m_collision_margin, (int)swInConfigurationOpts_e.swThisConfiguration, "");
((Parameter)myattr.GetParameter("collision_envelope")).SetDoubleValue2(
m_collision_envelope, (int)swInConfigurationOpts_e.swThisConfiguration, "");
((Parameter)myattr.GetParameter("collision_family")).SetDoubleValue2(
(double)m_collision_family, (int)swInConfigurationOpts_e.swThisConfiguration, "");
/*
// fetch SW attribute with Chrono parameters for ChConveyor
SolidWorks.Interop.sldworks.Attribute myattr_conveyor = (SolidWorks.Interop.sldworks.Attribute)swPart.FindAttribute(defattr_chconveyor, 0);
if (myattr_conveyor == null)
{
// if not already added to part, create and attach it
myattr_conveyor = defattr_chconveyor.CreateInstance5(swPartModel, swPart, "Chrono ChConveyor data", 0, (int)swInConfigurationOpts_e.swThisConfiguration);
if (myattr_conveyor == null)
System.Windows.Forms.MessageBox.Show("myattr null in setting!!");
}
((Parameter)myattr_conveyor.GetParameter("conveyor_speed")).SetDoubleValue2(
m_conveyor_speed, (int)swInConfigurationOpts_e.swThisConfiguration, "");
*/
}
}