Перейти к публикации

Рекомендованные сообщения

Здравствуйте, уважаемые адепты CREO. Вопрос не простой, но как по мне, очень интересный.

Есть деталь part1.prt с размером d1=10 h7.

Возникла потребность средствами web.link получить этот размер полностью. Т.е. и значение и допуск.

Благодаря встроенным примерам получить значение размера удалось достаточно быстро, а вот с допуском оказалось сложнее. Мучаюсь уже не первый день.

Уверен, что здесь есть люди, смыслящие в данном вопросе.

 

<html>

<head>
<title>Web.Link Models Test</title>

<script src="../jscript/pfcUtils.js">
</script>
<script src="../jscript/wl_header.js">
document.writeln ("Error loading Pro/Web.Link header!");
</script>

<script  src="../jscript/pfcSelectionExamples.js">
 document.writeln ("Error loading script!");
</script>

<script language="JavaScript">

var name = document.pwl.pwlMdlCurrentGet().MdlNameExt; // Имя модели
var dim = document.pwl.pwlDimensionInfoGetByName(name,"d1",201); //Значение размера d1

window.onload = function() 
{
n.innerHTML=name;
d.innerHTML=dim.DimValue;
};


</script>
</head>

<body>

<p id='n'></p>
<p id='d'></p>

</body>
</html>

 

 

Ссылка на сообщение
Поделиться на других сайтах


Смотрите документацию и пример dimensions.html

var ret = document.pwl.pwlDimensionInfoGetByName(
                  document.get_value_name.ModelNameExt.value,
                  document.get_value_name.DimName.value,
                  DimType);
    if (!ret.Status)
    {
        alert("pwlDimensionInfoGetByName failed (" + ret.ErrorCode + ")");
        return ;
    }
    document.get_value_name.DimValue.value = ret.DimName + " (#" +
        ret.DimID + "):  " + ret.DimValue +
        ((ret.DimStyle == parseInt(document.pwlc.PWL_ANGULAR_DIM)) ?
         " degrees" : "") + " (-" + ret.TolMinus + "/+" + ret.TolPlus + ")";

Функция возвращает объект, который содержит и значение размера и допуски.

Ссылка на сообщение
Поделиться на других сайтах
В 17.09.2018 в 11:58, Onizuka сказал:

Смотрите документацию и пример dimensions.html

Функция возвращает объект, который содержит и значение размера и допуски.

Спасибо, действительно нашел! 

var tolTable=document.pwl.pwlDimensionInfoGetByName(name,"d1",201).DimensionToleranceObject;

Однако возник новый, очередной вопрос: как узнать цвет аннотации, в частности данного размера. Такого свойства в объекте-размере я не нашел.

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

Изменено пользователем Andrwich1310
Ссылка на сообщение
Поделиться на других сайтах
11 час назад, Andrwich1310 сказал:

Однако возник новый, очередной вопрос: как узнать цвет аннотации, в частности данного размера.

Нужно отталкиваться от того зачем вам это надо? Так как цвет размера в Creo задается общими настройками и зависит от типа размера (слабы, сильный, управляемый, управляющий и тд). Те произвольный цвет на размер не назначит, а поэтому не понятно зачем вам получать этот цвет.

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Onizuka сказал:

Нужно отталкиваться от того зачем вам это надо? 

В общем, существует пресс-форма. На детали которой в чертеже проставляются размеры. Именно проставляются, а не проявляются с модели. Часть этих размеров являются формообразующими (особо ответвенными). Эти размеры имеют другой цвет(заведомо известный и определенный, к примеру #000000 ). Т.е. отличный от цвета по умолчанию.

Задача: получить список этих "перекрашенных" размеров. 

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Andrwich1310 сказал:

Часть этих размеров являются формообразующими (особо ответвенными). Эти размеры имеют другой цвет(заведомо известный и определенный, к примеру #000000 )

 

А каким образом в Creo данные проставленные размеры отмечаются особо ответственными?

Ссылка на сообщение
Поделиться на других сайтах
20 минут назад, Onizuka сказал:

А каким образом в Creo данные проставленные размеры отмечаются особо ответственными?

По умолчанию цвет проставленных размеров к примеру синий. Пользователь на вкладке "Формат" применяет к некоторым, по его мнению ответственным размерам стиль, который меняет цвет размеров на, к примеру, красный. Далее вызывается Web.link, он перебирает все размеры на чертеже и если размер красный, web.link записывает значение этого размера в <div>

Ссылка на сообщение
Поделиться на других сайтах
56 минут назад, Andrwich1310 сказал:

Пользователь на вкладке "Формат" применяет цвет размеров

Хм.. Тогда нужно извлекать цвет текста размера.

Ищите как использовать

pfcAnnotationTextStyle GetNoteTextStyle() 

 

Ссылка на сообщение
Поделиться на других сайтах
В 19.09.2018 в 15:35, Onizuka сказал:

Ищите как использовать

Честно потратив два дня на поиски, добился лишь получения цвета заметки, как раз-таки с использованием GetNoteTextStyle().

А вот такой-же маневр провернуть с размером на чертеже - ни в какую. Хоть логика подсказывает что такая возможность быть должна.

Не могли бы Вы, если не затруднит, "ткнуть меня носом", написав пример? А то уже начинаю сомневаться в этой затее...

Ссылка на сообщение
Поделиться на других сайтах

Я пишу на "чистом" TOOLKIT. Со всеми хитростями Web.Link не знаком.

Напишите сюда кусок кода, в котором пробуете получить цвет из размера. Попробую что-нибудь подсказать.

Ссылка на сообщение
Поделиться на других сайтах
6 часов назад, Onizuka сказал:

Напишите сюда кусок кода

Вот код на получение цвета из заметки:

var ret = drawing.ListDetailItems(pfcCreate("pfcDetailType").DETAIL_NOTE,0).Item(i).GetNoteTextStyle().GetColor();

Все достаточно просто и понятно.

 

А вот кода на получение объекта-размера:

var session = pfcGetProESession ();
var drawing = session.CurrentModel;
var drwmodels = drawing.ListModels();
var modelitemtype = pfcCreate("pfcModelItemType");
var drwmodel = drwmodels.Item(0);
var showndims = drawing.ListShownDimensions(drwmodel, modelitemtype.ITEM_DIMENSION);

var ret=showndims.Item(0);

 

В отличие от объекта - заметки, никакого к примеру GetDimTextStyle().GetColor() , увы нет. (По крайней мере я не нашел. А я искал)

Закрадывается впечатление, что Web.Link просто-напросто не умеет получать цвет текста размера. 

С другой стороны Web.Link способен извлекать и более специфичные свойства объектов...

 

 

 

Ссылка на сообщение
Поделиться на других сайтах

@Andrwich1310

У API для Creo довольна неплохая архитектура, основанная на объектно-ориентированном подходе. Многие объекты имеют единого родителя и наследуют методы и функции друг друга. Например, объект заметки используется для отображения текста в аннотации, таблице, размерах и тд.

Дак вот....

Заметка и размер имеют единого родителя ModelItem. Те методы заметки должны сработать для извлечения свойств текста размера.

Пробуйте

var myDim = document.pwl.pwlDimensionInfoGetByName(name,"d1",201).DimensionObject;
var color = myDim.GetNoteTextStyle().GetColor() 

Еще как вариант инициализировать объект размера через ModelItem

var myID = document.pwl.pwlDimensionInfoGetByName(name,"d1",201).DimID;
//Затем инициализировать по ID
pfcModelItem	GetItemById	(pfcModelItemType Type, number Id)

И у полученного ModelItem вызвать GetNoteTextStyle().

Изменено пользователем Onizuka
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • Bot
      Команда CSD пообщалась с представителями компании «КС-ПРО» и выяснила, как происходило внедрение G-Station, сколько времени занял процесс перехода на новую платформу, узнала об организации совместной работы и о функционале платформы. Основное направление компании «КС-ПРО» — оказание комплекса услуг технического заказчика, в том числе и для крупных офисных девелоперов. Внедрение G-Station в «КС-ПРО» проходило в ноябре 2022 года. G-Station — это всего лишь один из модулей комплексной платформы G-Tech Suite. Специалисты компании отмечают, что G-Station действительно стала хорошей альтернативой BIM 360. Специалисты «КС-ПРО» получили доступ к полноценной единой информационной среде с облачным хранилищем файлов и моделей, а также такими возможностями, как: Управление проектами, пользователями и подрядчиками; Создание чек-листов; Создание шаблонов чек-листов с процессами согласования; Передача документации на строительную площадку; Просмотр 3D- и 2D моделей [...] View the full article
    • Bot
      АСКОН, российский разработчик инженерного программного обеспечения и ИТ-интегратор, подвел итоги 2023 года. Выручка компании выросла на 47% и достигла 5,6 млрд рублей, штат сотрудников увеличился до 1250 человек. Клиентская база пополнилась тысячью предприятий, и сегодня с решениями АСКОН работают почти 16 000 заказчиков из всех отраслей промышленности и строительства. На динамику бизнеса положительно повлияли рост промышленного производства, сопровождающийся инвестициями в цифровизацию, крупные инфраструктурные проекты и курс страны на технологический суверенитет. Лидерские позиции компании в разработке и интеграции подтверждены профессиональными рейтингами. АСКОН, единственный из разработчиков инженерного ПО, вошел в ТОП-100 российских ИТ-компаний в рейтинге CNews; второй год подряд — в десятку крупнейших ИТ-поставщиков в сфере промышленности и строительства по данным TAdviser; впервые назван в тройке ведущих proptech-компаний как [...] View the full article
    • esergey
      это всего лишь видео - я не шарю в этом ...  
    • lem_on
      ну с дуру известно что сломать можно.
    • Viktor2004
      руку привязки так сломать легко
    • lem_on
      По моему вполне логично если станок вывалится в ошибку если рука не доехала до места. У меня так же если кулачки или деталь на пути, просто пихаеш ее до места и станок опять активен. Но нынешние пановья даже не могут написать модель станка.
    • Viktor2004
      Я согласен что скорее всего проблема механическая Но если логика прописана криво и возможно не предусмотрела остановку в промежуточном состоянии, разве не логично будет попробовать принудительно подав напряжение дернуть эту руку вверх-вниз? Возможно то что туда попало выпадет  
    • Guhl
      Если оставить за скобками вопрото том, что до м19 работает нормально, а после нет, то вы не считали сколько у него реально импульсов на оборот? с помощью стороннего плк, например  А если ориентацию м5 снимать, а не м20?
    • lem_on
      Что это за станок такой в котором сразу ладер ковырять надо, даже не смотря на возможность механической проблемы? Или профдеформация?
    • Viktor2004
      не сразу я понял в чем вопрос. Долго соображал что такое режим управления скоростью. При завершении ориентации PMC снимает сигнал G70.6 ? И если он после снятия сигнала продолжает удерживать шпиндель, при каких условиях эта ориентация все же снимается? После нажатия аварийного грибка или еще как?
×
×
  • Создать...