编辑于江苏南京2021年7月31号。
Catia中测量的方法有两种,第一是通过获取文档的SPAWorkbench对象,通过SPAWorkbench获取Measurable对象,进而获取需要测量的参数,如角度、长度、体积等。这种方法只适用于当个物体的测量,对于两个物体如点的距离、线的间距等无法进行测量。
相关代码如下
//1.首先获取当前文档的SPAWorkbench对象
var spaWorkbench = oDoc.GetWorkbench("SPAWorkbench") as SPAWorkbench;
//2.得到Measurable对象
Measurable measureable = spaWorkbench.GetMeasurable(selRef);
//3.测量长度
var length = measureable.Length;
第二种方法可以通过知识工程模块来获得测量的参数,通过知识工程的distance 方法获取两个物体之间的长度等。
C#代码如下:文章来源:https://www.toymoban.com/news/detail-414285.html
Application catapp = Marshal.GetActiveObject("Catia.Application") as Application;
var oDoc = catapp.ActiveDocument as PartDocument;
var rootPart= oDoc.Part;
var paras= rootPart.Parameters.RootParameterSet;
//(1)创建一个参数用于接收测量的参数
var c1= paras.AllParameters.CreateDimension("Custome", "LENGTH", 12d);
//(2)选择需要测量的物体,并找到物体存放的路径
var p1= CatiaHelper.SelectionObject<HybridShapeCurveExplicit>(catapp);
var str1 = paras.AllParameters.GetNameToUseInRelation(p1);
var p2 = CatiaHelper.SelectionObject<HybridShapeCurveExplicit>(catapp);
var str2 = paras.AllParameters.GetNameToUseInRelation(p2);
//(3)拼接用于知识工程公式的字符串
string resultStr = "distance (" + str1 + "," + str2 + ")";
//(4)创建知识工程的关系
var resutFormula= rootPart.Relations.CreateFormula("Result","计算两点距离",c1, resultStr);
其中CatiaHelper是自定义的Catia帮助类,CatiaHelper.SelectionObject()方法是用于交互选择Catia类型的。具体实现参考代码如下。文章来源地址https://www.toymoban.com/news/detail-414285.html
public static T SelectionObject<T>( INFITF.Application catapp) where T:class
{
T resultItem = default(T);
string typeStr = typeof(T).ToString();
string[] strAry = typeStr.Split('.');
typeStr =strAry[strAry.Length-1];
Selection sel = (catapp.ActiveDocument).Selection;
sel.Clear();
Array arr = new object[1];
arr.SetValue(typeStr, 0);
PushCatiaToUpper();
string str = sel.SelectElement2(arr, "请选择"+typeof(T).ToString(),true);
try
{
resultItem = str == "Normal" ? (T)sel.Item(1).Value : null;
}
catch (Exception e)
{
throw new Exception(e.Message);
}
return resultItem;
}
到了这里,关于Catia开发之测量(C#)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!