• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Габарит детали из чертежа (2D)

Автор А8208, 05.12.12, 14:54:47

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

А8208

Здравствуйте!
Как получить габаритный прямоугольник детали в 2D в API7?
Как добраться до объекта чертёж детали.
По логике доходим до интерфейса IView затем IDrawingObject и ... дальше я не знаю что и куда.

Детали в сборках, если можно выложите картинку, габариты чего нужно получить.

LibTool.GetObjGabaritRect(reference p, RectParam *par);
Входные параметры:
p - указатель на объект,
par - указатель на структуру размеров габаритного прямоугольника RectParam.

p - может быть IDrawingObject.Reference


А8208

Я не корректно поставил вопрос.
Есть чертёж детали в нем необходимо определить габаритные размеры детали по чертежу.
Смысл сей задачи следующий, есть спецификация в которой указаны параметры детали, заполняемая вручную, необходимо проверить соответствие размеров указанных в таблице спецификации с размерами на чертеже.
После обработки чертежа из вложения мне нужно получить размеры 1100х50х25.
Я думаю, что задача проста, но прошу учесть, что я не профессиональный програмист  :)

#3
Задача не проста, если учесть, что конфигурация детали может быть разной. Тут проще с размеров считать габарит, можно габаритным размерам присвоить атрибуты и по ним, считать размеры.

А8208

C 3D я уже проверяю, благодаря форуму, но вот в чём проблема. Довольно таки часто чертёж после изменения в 3D забывают перестраивать, т. е. размеры уже могут не совпадать, а делают детали по чертежам.
Разве нельзя выделить (например через дерево построения) именно саму деталь все основные линии и получить габаритный прямоугольник выделенной области на одном виде выполнить те же операции на следующем виде и т. д.?
Организовать анализ полученных данных и определить требуемые размеры.
Детали в моём случае изготавливаются в основном из листа, трубы и т.п., деталей со сложной конфигурацией нет или мало.
Даже в случае сложной конфигурации мне нужны максимальные габариты детали.

Можно из 3D операции взять эскиз два габаритных размера и длина выдавливания третий, но в любом случае Вам решать, как Вы будете делать анализ размеров.
Есть варианты проще:
ksBody::GetGabarit
ksPart::GetGabarit

А8208

анализ это моя 2 задача.
Для начала нужно научиться получать габаритный прямоугольник детали на каждом виде чертежа.
С 3D я уже работаю интересен именно вариант работы с 2D.

#7
Тогда начнём сначала, получаем IView далее от него IDrawingContainer, т.к. Вам нужны линии получаем массив линий Air:=DrawingContainer.Objects[ksDrLineSeg];, далее выделяем полученные объекты менеджером выделенных объектов ISelectionManager.Select[Air] и получаем габарит группы селектирования
LibTool.GetObjGabaritRect(0,RectParam); и так для всех интересующих Вас видов.

P.S. Возможно придётся пробежаться по массиву и сформировать из него группу объектов состоящих только из основных линий, т.к. DrawingContainer.Objects[ksDrLineSeg] вернёт массив всех отрезков вида. Вместо массивов можно использовать итератор, но тогда все интерфейсы на API5.