Дано:
Некий проект.
Создаем новую сборку, добавляем туда этот проект в виде фрагмента, разделяем на тела.
Хочу:
Для каждого полученного тела получить XSIZE, YSIZE, ZSIZE, mass, материал
Первые три получилось получить создав переменную и в ней написать - get_cls("НазваниеТела", "XSIZE") ,
для массы - get("НазваниеТела", mass)
А как получить материал я так и не придумал.
Может есть более прямые пути для получения XSIZE и как получить материал?[CODE] private readonly string vtemp1 = "get{2}(\"{0}\", \"{1}\"{3})";
public double GetV(string bodyName, string valName)
{
var tp = valName.Contains("SIZE");
var p1 = tp ? "_lcs" : "";
var p2 = !tp ? "" : ",\"\"";
vv.Expression = string.Format(vtemp1, bodyName, valName, p1, p2);
return Math.Round(vv.RealValue, 3);
}
Variable vv = null;
private void MakeList()
{
Document.BeginChanges("dd");
vv = Document.GetVariables().Where(w => w.Name == "test").SingleOrDefault();
if (vv == null)
vv = new Variable(Document, "test", 0);
foreach (var b in Document.Bodies.Cast<BodyPart>())
{
if ((b.BaseOperation.Geometry.Solid.Length != 0) && (b.BaseOperation.Visible))
{
System.Diagnostics.Debug.WriteLine($"{b.Name} ({GetV(b.Name, "XSIZE")}, {GetV(b.Name, "YSIZE")}, {GetV(b.Name, "ZSIZE")}) {GetV(b.Name, "mass")}");
}
}
Document.EndChanges();
}
[/CODE]