Opencascade.js - 如何访问 TCollection_ExtendedString 中的实际字符串

问题描述 投票:0回答:1

我正在尝试访问从 .step 文件解析的装配零件的名称。我使用的方法与此博客条目中所示的方法相同:https://dev.opencascade.org/content/finding-name- assembly-part-step-file-using-xde,但使用的是 javascript。 我能够提取标签的 TDataStd_Name 属性,其中包含 TCollection_ExtendedString 对象:

assembly.GetShapes(labels);
var freeShape = labels.First();
var components = new oc.TDF_LabelSequence_1();
oc.XCAFDoc_ShapeTool.GetComponents(freeShape, components, true);
var compLabel = components.First();
var name = new oc.Handle_TDF_Attribute_1();
compLabel.FindAttribute_1(oc.TDataStd_Name.GetID(), name);
var TCollection_ExtendedString = name.get().Get();
// this fails:
const nameString = TCollection_ExtendedString.ToExtString();
const nameChar =TCollection_ExtendedString.Value(0);

当我尝试通过调用 TCollection_ExtendedString.ToExtString() 访问对象中包含的信息时,遇到绑定错误:“由于未绑定类型,无法调用 TCollection_ExtendedString.ToExtString:PKD” 我还尝试使用 TCollection_ExtendedString.Value() 逐个字符地访问字符串,这也给了我一个绑定错误。 有谁知道这个问题的解决方法? 谢谢!

javascript typescript emscripten opencascade
1个回答
0
投票

你可以使用

assembly.GetShapes(labels);
var freeShape = labels.First();
var components = new oc.TDF_LabelSequence_1();
oc.XCAFDoc_ShapeTool.GetComponents(freeShape, components, true);
var compLabel = components.First();
var name = new oc.Handle_TDF_Attribute_1();
compLabel.FindAttribute_1(oc.TDataStd_Name.GetID(), name);
var TCollection_ExtendedString = name.get().Get();

const nameString = new oc.TCollection_AsciiString_13(TCollection_ExtendedString, 0).ToCString();
© www.soinside.com 2019 - 2024. All rights reserved.