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

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

Здравствуйте, уважаемые адепты 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 пользователей

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




  • Сообщения

    • ДОБРЯК
      Для того, чтобы получить правильные высшие) формы при виртуальном эксперименте, нужно сделать грамотную КЭ модель. От разговора на эту тему вы постоянно уклоняетесь.  То нет компьютера под рукой, сделать простейший тест, то теряете интерес. :=) Сходимости энергии деформации при расчетах статики, недостаточно для точного определения высших собственных форм и частот.  Для того, чтобы грамотно использовать метод конечных элементов, нужно сделать много-много тестов в статике, динамике и ... Одной кнопки и двух конечных элементов в 3Д программе недостаточно для определения высших собственных форм...  У вас в качестве инструмента всего два конечных элемента, шести узловая несовместная оболочка Тимошенко и десяти узловой тетраэдр. И еще контакты при решении задачи на собственные числа. Вам ли говорить про правильность определения высших собственных форм для сложных изделий... :=)    
    • vad0000
      Покажите схему с разрешением на движение
    • vad0000
      Вход, а не выход Вытащить Аналоговый вход и все, как будто туда ничего не подключено И если мы подключим сигнал к энкодеру оси Х, то он стнтет одинаковый с аналоговым входом, который не подключен?
    • Snake 60
      @waze4534  Посмотрите вверх и прочитайте текст на красной полоске...
    • kkk
      Я так понимаю, что предупреждение про "касательные" не просто так выскакивает. Если скруглить прямую стыковку отрезков эскиза (минимальным радиусом) то все работает даже без объединенной кривой, достаточно эскиза.
    • karlf
      Подскажите пожалуйста, может кто сталкивался. Станок DMU-50 на стойке TNC 530, перестал определяться ключ доступа. Сам ключ вроде работает, если переключать на нём режимы, то в шкафу на соответствующих блоках лампочки тоже переключаются. Но изначально был уровень доступа 4, а теперь уровни доступа не активны. Ключ только один, запасных нет. Есть какой-то старый бэкап, пробовал его накатить, но какой-то он непонятный - станок грузится, но почти в конце загрузки выдаёт какую-то ошибку по параметрам. Может кто знает в каком из разделов и в какой папке искать установленные драйверы ключа?
    • YuriySt54
      В данной конструкции можно сразу одним телом делать и обрезать. Но меня интересовало, можно ли сразу при построении массива ограничить лишнее.
    • Ветерок
      Сделать основание одним телом, массив другим телом. Тело массива обрезать как надо, потом объединить тела.
    • YuriySt54
      Можно ли при построении массива лишнее отсечь, как к примеру отсечено по длинной стороне. Делал начальный элемент бобышкой по траектории с выбранной функцией "выровнять с торцевыми поверхностями". Можно ли так сделать при построении массива? Или отдельно потом обрезать лишнее только?
    • waze4534
      Необходимо рассчитать предельную нагрузку на подвешенную емкость. Как провести анализ не ограничив геометрию емкости? 
×
×
  • Создать...