本文將繼續(xù)給讀者介紹裝配體對(duì)象AssemblyDoc中的方法--添加裝配蚤氏。如下圖所示漩仙,本文我們將給轉(zhuǎn)軸添加3個(gè)配合關(guān)系,分別為軸重合芽突,距離配合以及角度配合试浙。
在AssemblyDoc中,存在AddMate5的方法寞蚌,用于部件的裝配操作田巴,方法詳情:
Mate2 SwMate = AssemblyDoc.instance.AddMate5(MateTypeFromEnum, AlignFromEnum, Flip, Distance, DistanceAbsUpperLimit, DistanceAbsLowerLimit, GearRatioNumerator, GearRatioDenominator, Angle, AngleAbsUpperLimit, AngleAbsLowerLimit, ForPositioningOnly, LockRotation, WidthMateOption, ErrorStatus)
該方法中有很多的參數(shù),詳情如下
參數(shù)MateTypeFromEnum:
該參數(shù)為裝配類型的枚舉swMateType_e挟秤,例如距離配合重合配合等壹哺,其成員如下:
參數(shù)AlignFromEnum:
該參數(shù)為對(duì)齊類型的枚舉swMateAlign_e,主要成員如下艘刚,其作用即為操作中的【配合對(duì)齊】選擇項(xiàng)
參數(shù)Flip:
該參數(shù)僅在距離裝配時(shí)有效管宵,其作用即為操作中的【反轉(zhuǎn)尺寸】選擇項(xiàng)
參數(shù)Distance,DistanceAbsUpperLimit攀甚,DistanceAbsLowerLimit:
此3個(gè)參數(shù)都與距離相關(guān)的配合有關(guān)箩朴。
當(dāng)為固定距離配合時(shí),該三個(gè)參數(shù)的取值相同秋度。
當(dāng)為距離范圍配合時(shí)炸庞,DistanceAbsUpperLimit,DistanceAbsLowerLimit分別代表上下限值静陈。
參數(shù)GearRatioNumerator 燕雁,GearRatioDenominator用于齒輪配合時(shí)有效诞丽。
參數(shù)Angle,AngleAbsLowerLimit拐格,AngleAbsLowerLimit :
此3個(gè)參數(shù)都與角度相關(guān)的配合有關(guān)僧免,用法同距離。
當(dāng)為固定角度配合時(shí)捏浊,該三個(gè)參數(shù)的取值相同懂衩。
當(dāng)為角度范圍配合時(shí),AngleAbsUpperLimit金踪,AngleAbsLowerLimit分別代表上下限值浊洞。
參數(shù)ForPositioningOnly :
是否僅用于定位
參數(shù)LockRotation :
是否鎖定旋轉(zhuǎn)
參數(shù)WidthMateOption:
寬度配合的附加選項(xiàng),僅寬度配合時(shí)有效
參數(shù)ErrorStatus
返回執(zhí)行結(jié)果
操作分析:
1.同時(shí)選中需要進(jìn)行配合的基準(zhǔn)胡岔。
2.添加需要的配合法希。
代碼實(shí)例
public static void AddMate(SldWorks swApp, ModelDoc2 Doc, string newpartpath)
{
#region 添加部件
swApp.OpenDoc(newpartpath, 1);
((AssemblyDoc)Doc).AddComponent5(newpartpath, 0, "", false, "", 0, 0.3, 0);
swApp.CloseDoc(newpartpath);
#endregion
Component2 BaseComp = ((AssemblyDoc)Doc).GetComponentByName("底座-1");
Component2 RoateComp = ((AssemblyDoc)Doc).GetComponentByName("轉(zhuǎn)軸-1");
int err = 0;
#region 軸裝配
Feature BaseAxi = BaseComp.FeatureByName("基準(zhǔn)軸1");
Feature RoateAxi = RoateComp.FeatureByName("轉(zhuǎn)軸中心軸");
BaseAxi.Select(false);
RoateAxi.Select(true);
((AssemblyDoc)Doc).AddMate5((int)swMateType_e.swMateCOINCIDENT, (int)swMateAlign_e.swMateAlignALIGNED,false,0,0,0,0,0,0,0,0,false,false,0,out err);
#endregion
#region 底面裝配距離
Feature BaseBp = BaseComp.FeatureByName("Top");
Feature RoateBp = RoateComp.FeatureByName("Top");
BaseBp.Select(false);
RoateBp.Select(true);
((AssemblyDoc)Doc).AddMate5((int)swMateType_e.swMateDISTANCE, (int)swMateAlign_e.swMateAlignALIGNED, false, 10/1000.0, 10 / 1000.0, 10 / 1000.0, 0, 0, 0, 0, 0, false, false, 0, out err);
#endregion
#region 方位裝配
Feature BaseOir = BaseComp.FeatureByName("Right");
Feature RoateOir = RoateComp.FeatureByName("Right");
BaseOir.Select(false);
RoateOir.Select(true);
((AssemblyDoc)Doc).AddMate5((int)swMateType_e.swMateANGLE, (int)swMateAlign_e.swMateAlignALIGNED, false,0, 0, 0, 0, 0, (30/180.0)*Math.PI, (30 / 180.0) * Math.PI, (30 / 180.0) * Math.PI, false, false, 0, out err);
#endregion
Doc.EditRebuild3();
}
從上面我們可以看到,無論操作哪種配合關(guān)系靶瘸,都使用AddMate5方法進(jìn)行配合的添加苫亦,其中的參數(shù)有很多,但只有部分參數(shù)與我們需要建立的配合有關(guān)怨咪。
在目前最新的Soldiworks版本中屋剑,官方又提供了更新的添加裝配的方法,各類配合會(huì)有自己的MateData,即配合數(shù)據(jù)诗眨,然后通過該統(tǒng)一的方法進(jìn)行調(diào)用唉匾,在后續(xù)的章節(jié)中,還會(huì)給大家進(jìn)一步講解該方法的使用匠楚。
AssemblyDoc.CreateMate(MateData)
如下圖為本文的示例程序巍膘,源碼可上我的Github下載。操作步驟可見文章《公眾號(hào)源碼Github分享庫》 芋簿, 實(shí)例序號(hào)15