Pinned posts

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

 

 

Поделиться сообщением


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


UnPinned posts

Смотрите документацию и пример 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 + ")";

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

2 пользователям понравилось это

Поделиться сообщением


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

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

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

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

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

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

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

Изменено пользователем Andrwich1310

Поделиться сообщением


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

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

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

1 пользователю понравилось это

Поделиться сообщением


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

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

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

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

Поделиться сообщением


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

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

 

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

Поделиться сообщением


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

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

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

Поделиться сообщением


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

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

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

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

pfcAnnotationTextStyle GetNoteTextStyle() 

 

1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 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

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

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

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



  • Реклама

  • Сообщения

    • syncomp
      Огромное спасибо! Об осевом припуске забыл! Все правильно. Траектория глубже идет.
    • valeo-ua
      В ескд как раз есть требование применять размеры из рядов.  По сути вопроса: размер у обоих деталей будет 5. А западание выполнять за счет квалитетов. Там хоть и в анурьеве посмотрите таблицу и подберите соответствующий квалитет. И верхний предел там же подберите.
    • valeo-ua
      Переведу :-) проверьте состояние слоев для этого вида. Все слои , которые являются видимыми для данного вида, должны быть отображаемыми. И желательно сделать рабочим тот слой на котором был создан данный вид (не обязательно).
    • SAPRonOff
          способов несколько, я привык так
    • Snake 60
      А вот скажите мне, уважаемый @ILL, чем размер 5,04 хуже размера 5,00? Чем он провинился? В технически обоснованных случаях можно, даже нужно, отступать от стандартного ряда. И скажите мне пожалуйста, что знает ваш НК про проектирование пресс-форм или штампов, чтобы указывать какой размер и допуск Вам ставить? Где в ЕСКД написано, что нужно использовать размеры только из стандартного ряда, тем более при проектировании оснастки (по сути единичное производство)? В моём понимании, номиналы и допуски размеров - это вотчина конструктора, а не нормоконтроля. НК пусть смотрят размеры шрифтов, линий, стрелок и точки с запятыми, и если Вы не можете убедить ваш НК, что здесь должен стоять именно размер такого номинала и допуска, который Вы поставили, то мне Вас искренне и по человечески жаль, ибо сам на предыдущем месте работы намаялся бегать менять чертежи в БНТД из-за пропущенной точки и ли съехавшего в солиде размера.   PS Сори за офф-топ - Крик души :)
    • IgorT
      Понял. А можно сослаться на значение размера для передачи его в другой размер?
    • Елена
      А на два дома из 5-ти отобранных я впервые в 2012-м посмотрела. Таких крепких бревенчатых домов я в Калужской области не видела. Из одного дома сделали 2 больших трехкомнатных квартиры, а в доме прадеда сейчас молебный дом старообрядцев. 
    • Machinist
      Ещё существует отрицательный осевой припуск в настройках траектории.
    • syncomp
      Всем доброго вечера. Помогите решить проблему. Есть деталь с 4 -мя отверстиями. Эти отверстия с расточкой под потай. Глубина потая нужно расточить несколько глубже, чем сама модель, с той целью, что когда плоскость будет отшлифована, то глубина отверстий под потай станут в размере. Нужно что-то вроде  продлить траекторию... Как это сделать? РМ2019. Говорят, что в РМ2009 это сделать очень легко. Трансформация траектории и сразу открывается окно, где ставишь нужную величину и нажимаешь на "Z".
    • Елена
      У нас отправили в Томские болота, где они сами себе бараки строили, кто-то бежал. А потом вернулись к себе в Даурию. Как относились к Сталину - не знаю. Но в их домах уже были сельсовет и библиотека. Отстраивались заново там, где солончаки. Бабушка ругала Хрущева, что на рога налог наложил. А оба деда погибли в первые годы войны.