Я пытаюсь создать пользовательскую команду в Autocad Plant 3D. Цель этой команды состоит в том, чтобы принести все доступные размеры любого выбранного компонента и использовать их для заполнения свойства размера, чтобы при выборе любого размера из раскрывающегося списка компонент перекраился сам, соответствующий новым размерам вместо меня удалением старый компонент и размещение нового на его месте. Посмотрите на следующие снимки; < /p>
- Image-1: компонент в каталоге, показывающий все доступные размеры < /li>
Изображение-2: Компонент-это лист спецификации со всеми размерами
- Image-3: компонент в моделях, показывающий только активный размер в раскрывающемся спине
< Br /> Я понимаю, что мне нужно запросить лист спецификации и получить все значения размера выбранного компонента в строковом массиве или списке, а затем итерация через него и присвоить значения значениям размера, как показано на изображении-3 выше. Но я не могу создать требуемый фрагмент кода для этого. Я могу получить все значения размера самого листа спецификации, но для меня это не помогает, потому что размеры листа спецификации означают весь доступный размер. Например, компонент A имеет 50, 100, 200, 300, а компонент B имеет 50, 150, 250, тогда размер листа спецификации вернет 50, 100, 150, 200, 250, 300, что мне не требуется. Мне нужно принести только размеры компонента A. Код, который я использовал для получения размеров спецификаций, такой; < /p>
Код: Выделить всё
[CommandMethod("GetPipeSizes")]
public void GetPipeSizes()
{
// get the AutoCAD Editor object so we can print to the command line
Editor ed = AcadApp.DocumentManager.MdiActiveDocument.Editor;
PromptResult res = ed.GetString("\nEnter Pipe Spec");
if (res.Status == PromptStatus.OK)
{
// get the UISettings object (found in Pnp3dMain.dll)
Autodesk.ProcessPower.P3dUI.UISettings settings = new Autodesk.ProcessPower.P3dUI.UISettings();
// now get all the sizes that are available for that spec
StringCollection sizes = settings.GetAllSizesFromSpecName(res.StringResult);
foreach (string size in sizes)
{
ed.WriteMessage("\nSize " + size);
}
}
}
Любая помощь будет высоко оценена.
Подробнее здесь:
https://stackoverflow.com/questions/794 ... d-plant-3d