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

Изучаем Toolkit


Sergey___1978

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

Я так понимаю, что данным кодом Вы меняете текст в заметки на &xsec_name (&view_scale)?

Мне кажется, что этого не достаточно.

Насколько я помню, у заметок с именем вида нужно отключить опцию  Перенос текста и изменить ее размер, чтобы текст влазил в одну строку. Думаю, что это и надо пытаться делать в программе/макросе.

Про эту опцию наверно у Onizuka лучше спросить.

Я понял пока только одно, что такая заметка это не одна строка, даже если ее расположить в одну линию, а набор текстов.

Типа этого:

{1:&xsec_name}{2: (}{3:&view_scale}{4:)}

Даже если у них один и тот же стиль текста.

Меня интерисует что это за опция, может это то что мне нужно:

 

extern ProError ProDtlnotedataElbowlengthSet(

ProDtlnotedata data,

ProBoolean is_default,

double elbow_length);

/*

Purpose: Sets the elbow length for the specified note.

Input Arguments:

data - The note data.

is_default - The default flag.

elbow_length - The note elbow length if is_default == PRO_B_FALSE.

Output Arguments:

None

Return Values:

PRO_TK_NO_ERROR - The function successfully set the note

elbow.

PRO_TK_BAD_INPUTS - Bad one or more arguments.

*/

 

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


Не, Elbow - это, кажется, полка выноски.

Вобщем, я попробывал - тоже не получается. Функция ProDtlnoteModify возвращает -1, что в описании функции означает "Невозможно изменить ноту". Видимо, ноты с именами видов нельзя изменять.

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

Попробуйте выделить имя вида и попереключать эту опцию.

 

  post-25382-0-22120700-1409648291.jpg

 

 

Но что-то мне подсказывает, что это тоже тупиковый вариант. Так и придется похоже делать стандартными макросами через ProMacroLoad, но таким макаром не удасться заменить все заметки по всему черетжу одновременно и без предварительного выделения их. Команда ProMacroLoad почему то срабатывает в самом конце тулкитовской функции, в цикле не получилось ее использовать.

Я имел виду не через макрос - mapkey и не через ProMacroLoad. А именно средствами Toolkit. Но, к сожалению, не знаю есть ли такая функция в API, чтобы изменять эту опцию у заметки.

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

Попробуйте выделить имя вида и попереключать эту опцию.

 

 

 

Но что-то мне подсказывает, что это тоже тупиковый вариант. Так и придется похоже делать стандартными макросами через ProMacroLoad, но таким макаром не удасться заменить все заметки по всему черетжу одновременно и без предварительного выделения их. Команда ProMacroLoad почему то срабатывает в самом конце тулкитовской функции, в цикле не получилось ее использовать.

Я имел виду не через макрос - mapkey и не через ProMacroLoad. А именно средствами Toolkit. Но, к сожалению, не знаю есть ли такая функция в API, чтобы изменять эту опцию у заметки.

Так дело все в том, что в WF5 нет похоже такой кнопки и свойства вообще. По крайней мере в выпадающем меню я его не вижу. Хотя я может чего-то не знаю.

А все увидел во вкладке Формат в меню, правда никогда не пользовался.

Чо-то не врублюсь как этот перенос работает и вообще для чего он нужен?

 

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

Чо-то не врублюсь как этот перенос работает и вообще для чего он нужен?

 

Возможно, я не точно понял, что вы хотите сделать. Я описываю ситуацию, когда имя вида создается в две строки, например:

А

(2:1)

В этом случае, даже если в ручную растянуть заметку и текст станет в одну строку А (2:1), то после повторного открытия чертежа, текст в заметках (имя вида) снова переносится в две строки. Это может происходить из-за включенной опции Перенос текста у этих заметок. Поэтому, нужно эту опцию отключать.

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

 

Чо-то не врублюсь как этот перенос работает и вообще для чего он нужен?

 

Возможно, я не точно понял, что вы хотите сделать. Я описываю ситуацию, когда имя вида создается в две строки, например:

А

(2:1)

В этом случае, даже если в ручную растянуть заметку и текст станет в одну строку А (2:1), то после повторного открытия чертежа, текст в заметках (имя вида) снова переносится в две строки. Это может происходить из-за включенной опции Перенос текста у этих заметок. Поэтому, нужно эту опцию отключать.

 

 

 

 

Чо-то не врублюсь как этот перенос работает и вообще для чего он нужен?

 

Возможно, я не точно понял, что вы хотите сделать. Я описываю ситуацию, когда имя вида создается в две строки, например:

А

(2:1)

В этом случае, даже если в ручную растянуть заметку и текст станет в одну строку А (2:1), то после повторного открытия чертежа, текст в заметках (имя вида) снова переносится в две строки. Это может происходить из-за включенной опции Перенос текста у этих заметок. Поэтому, нужно эту опцию отключать.

 

У меня при повторном открытии чертежа так же открывает, как отредактировал в свойствах заметки. Ничего обратно уже не переносится.

Как сказал VICTOR, похоже для этих заметок заблокировано изменение через тулкит, либо надо копать куда-то глубже.

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

Ссылка на сообщение
Поделиться на других сайтах
  • 3 месяца спустя...

Здравствуйте!

Я прошу прощения за некомпетентность, я только вчера установил себе CREO 2.0

Нигде не найду ни Тулкит ни VBapi. У конструкторов их тоже нет.

Не подскажете, где его взять можно?

Задача вобщем простая - взять из Creo состав изделия и залить его в 1С.

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

PTN-3119-L

Creo Application Programming Toolkit

956 000

191 000

CPT-3365-L

PTC Creo Java Object Toolkit Development Extension

190 000

38 100

CPT-3366-L

PTC Creo Java Object Toolkit Runtime

21 900

No Charge

PTN-3366-F

PTC Creo Java Object Toolkit Runtime Concurrent

54 700

No Charge

PKG-4325-L

PTC Creo Java Object Toolkit Development Standalone

317 000

63 500

PKG-4326-L

PTC Creo Java Object Toolkit Starter Pack

449 000

89 700

 

Уважаемый  SergJP .

Сумеете разгадать этот кроссворд?

Если нет- вопросы в личку.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 месяца спустя...

Доброго всем дня, появился такой вопрос.

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

Что-то в tkuse не могу раскопать.

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

Господа, Есть вопрос по Creo View Jawatoolkit, В гайде по тулкиту есть имена  .jawa с примерами выполнения действий.Может быть кто нибудь мог бы дать парочку из этих файлов на посмотреть ?

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

Вот тут должны быть примеры.

D:\PTC\proew5\jlink\jlink_appls

В крео наверно аналогично, точно не могу сказать.

Ссылка на сообщение
Поделиться на других сайтах
  • 5 месяцев спустя...

Добрый день.

Пытаюсь вставить в меню разделительную линию (separaror) между пунктами, что-то ничего не могу найти в примерах.

 

//Создание меню для смены форматов в чертеже
 //Добавляем основной пунк меню - Форматы чертежа
 ProMenubarMenuAdd ("MainMenu2","Menu2","Windows",PRO_B_TRUE,MenuFileName1);

 //Подменю "Формат А4"
 ProCmdActionAdd("-Format A4",(uiCmdCmdActFn)Format_A4,uiProe2ndImmediate,TestAccessDefault,PRO_B_TRUE,PRO_B_TRUE,&cmd_id);
 ProCmdIconSet(cmd_id, "format_16x16x8.gif");
 ProMenubarmenuPushbuttonAdd("MainMenu2","Format_A4","-Format A4","-Format A4 Help",NULL,PRO_B_TRUE,cmd_id,MessageFileName1);
 ProCmdDesignate(cmd_id,"-Format A4 Button","-Format A4 Help","-Format A4 Description",MessageFileName1);

 

Допустим хочу поставить линию после этого пункта, как это сделать? Может подскажет кто.

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

Добрый день.

Пытаюсь вставить в меню разделительную линию (separaror) между пунктами, что-то ничего не могу найти в примерах.

 

Допустим хочу поставить линию после этого пункта, как это сделать? Может подскажет кто.

В Pro-e нет такой возможности.

Как вариант создать неактивную кнопку с именем "---------"

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

Тоже думал об этом. Но это не совсем то, и выглядеть будет по другому.

Странно, что не предусмотрели такой примитивной возможности.

В их родном меню эти линии же присутствуют.

 

Только что заметил что в настройках экрана, по ПКМ, выходит всплывающее меню ,где есть пункт "Начать группу", при нажатии которой как раз и появляется эта разделительная линия, попробую в этом направлении покопать.

 

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


Может и в тулките есть что-то наподобие "Начать группу".


Как говорится, ларчик просто открывался.

Вставил через настройку экрана в созданное тулкитом меню Начало группы и вуаля:

post-26163-0-42887200-1439817583.jpg

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

Может сталкивался кто-то, функция создания набора ProSelectionAlloc(), где первым параметром идет ProAsmcomppath:

  ProError ProSelectionAlloc (   ProAsmcomppath* p_cmp_path     /* (In)   The component path (can be NULL)   */   ProModelitem* p_mdl_itm     /* (In)   The model item (can be NULL)   */   ProSelection* p_selection     /* (Out)   The allocated selection object   */

работает только для одного уровня сборки. Если на вход даем ProAsmcomppath не единичной вложенности, то выдает ошибку. А как создать набор, например, для фитчера компонента третьего уровня сборки?

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

Нашел! Если будет интересно...

Помогла ф-ция ProFeatureGeomitemVisit() и ProModelitemInit(). В моем случае необходимо было выбрать ModelItem базовой плоскости, созданной в результате программного создания фитчера.

 

Модель содержит ModelItem’ы. К ModelItem относятся не только фитчеры, а и геометрические объекты, которые содержатся в фитчерах.

ProFeatureGeomitemVisit пробежался по геометрии только что созданного фитчера - на выходе получил массив GeomItem'ов. Затем по нужному GeomItem'у ф-цией ProModelitemInit сделал ModelItem. Его и дал на вход ProSelectionAlloc. Asmcomppath оказался ни при чем.

 

 

Ссылка на сообщение
Поделиться на других сайтах
  • 6 месяцев спустя...

Добрый день!

Написал функцию, которая формирует массив всех компонентов сборки, все остальное отфильтровывается.

 

status=ProSolidFeatVisit((ProSolid)mdl3,UsrFeatAction,NULL,&features);

 

Все нормально работает, массив создается.

Теперь необходимо вытащить имена этих компонентов  (деталей и подсборок).

Пробовал разными способами, всегда выходит пустая строка вместо имени.

 

Может подскажет кто, как нужно?

Прогу пишу для автоматического формирования спецификации.

 

Заранее спасибо.

 

Вот кусок кода:

//Действие функции, вызываемое при посещении фичеров
ProError UsrFeatAction(ProFeature *feature,ProError filter_status,ProAppData data)
{
    int n_feats, max;
    ProBoolean visible;
    ProFeatStatus status;
    //Если функция внутренняя, пропускаем ее
    ProFeatureVisibilityGet(feature, &visible);
    if(!visible) return(PRO_TK_NO_ERROR);
    //Если фичер не активен в данный момент, пропускаем его (допустим если он подавлен)
    ProFeatureStatusGet(feature, &status);
    if(status != PRO_FEAT_ACTIVE) return(PRO_TK_NO_ERROR);
    //Проверяем является фичер деталью, сборкой или инфообъектом (ftype=1000)
    ProFeattype ftype;
    ProFeatureTypeGet(feature, &ftype);
    if (ftype!=1000) return(PRO_TK_NO_ERROR);
    //Проверяем, есть ли еще место для массива
    ProArraySizeGet(*(ProArray*)data, &n_feats);
    ProArrayMaxCountGet(sizeof(ProFeature), &max);
    if(n_feats == max) return(PRO_TK_OUT_OF_MEMORY);
    //Добавляем фичер в массив фичеров
    ProArrayObjectAdd((ProArray*)data, -1, 1, feature);
    return(PRO_TK_NO_ERROR);
}

 

//пробегаем по всем локальным компонентам и фичерам
    ProFeature *features;
    int f, n_features, num;
    ProFeattype ftype;
    ProModelitem component_item1;

    ProArrayAlloc(0,sizeof(ProFeature),1,(ProArray*)&features);
    status=ProSolidFeatVisit((ProSolid)mdl3,UsrFeatAction,NULL,&features);
    ProArraySizeGet(features,&n_features);
    //MessageInt(n_features);
    ProName component_name;
    wcscpy(component_name,L"name");
    for(f=0;f<n_features;f++)
    {

 

//Здесь нужно получать имена фичеров (компонентов)

 

}

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

ProModelitemNameGet(feature, name);

 

Эта функция, как я понял из описания, работает только для фичеров построения.

Имена компонентов с помощью нее вытащить не получится.

Ссылка на сообщение
Поделиться на других сайтах
все остальное отфильтровывается.   status=ProSolidFeatVisit((ProSolid)mdl3,UsrFeatAction,NULL,&features);   Все нормально работает, массив создается. Теперь необходимо вытащить имена этих компонентов  (деталей и подсборок). Пробовал разными способами, всегда выходит пустая строка вместо имени.

Не совсем понятно зачем програмно, если то чно написано решается стандартной спецификацией. Или вы генерируете собственную?

Часть задач можно решить созданием упрощенного представления в том числе по правилу.

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

Не совсем понятно зачем програмно, если то чно написано решается стандартной спецификацией. Или вы генерируете собственную?

Часть задач можно решить созданием упрощенного представления в том числе по правилу.

Стандартными средствами номера позиций в параметры компонентов только вручную можно закинуть или я не прав?

Есть еще другие ньюансы, которые не решаются стандартными средствами. поэтому хочу написать свое, что-то наподобие как у ЛЕОНА.

Сейчас это решено с помощью ВЕБ интерфейса, хочу на ТУЛКИТЕ реализовать.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • gudstartup
      @david1920 имеется ввиду платы на системах с сертификацией опций фалом oprminf старые в расчет не принимаются вы свой 18i восстановили?
    • gudstartup
      очень даже спрашивают как обязательную информацию для проверки вашей компании налоговый идентификатор должен быть указан. на myfanuc не спрашивают а вот на портале к сожалению просто так не зарегаться. 
    • david1920
      На 0I-TC mate менял плату управления приводами На 18i-TB менял для диагностики платы процессоров (один был от Spinner другой простой) процы были одинаковые Всё работает
    • brigval
      Браком 1.04В версии 1.04Добавлено: Автоуменьшение высоты шрифта многострочного наименования в ОН чертежа.Добавлено: Переименование поверхностей, баз, размеров в порядке их следования на чертеже.Добавлено: Переименование изображений по ГОСТ: сначала виды, затем разрезы, сечения, выносные элементы.Добавлено: Выравнивание неассоциативных видов.Добавлено: Ручной ввод шага и угла наклона штриховки.Добавлено: Перемещаются в макроэлемент компоненты, исключаемые из спецификации.Добавлено: Выбор количества значащих цифр в значении площади поверхности детали для вставки в ТТ.Добавлено: Возможность не авторазмещать ТТ перед конвертацией чертежа в PDF.Добавлено: Добавлены кнопки «Выделить все включенные в расчет» и Выделить все исключенные из расчета».Добавлено: Версия КОМПАС-3D Home показывается в программе со словом Home.Добавлено: Улучшен алгоритм считывания и вставки ТТ чертежа.Добавлено: При конвертации чертежа в PDF удаляется старый файл с таким же обозначением в начале имени, как обозначение в начале имени нового файла.Добавлено: Улучшено считывание номеров позиций из 3D-модели сборки.Исправлено: Иногда скрытые и потом показанные объекты чертежа отображались не серым цветом.Исправлено: Иногда после ручного заполнения графы «Масса» ОН чертежа в окне программы масса могла отображаться не правильно.Исправлено: В некоторых случаях из ОН чертежа могла не считываться литера.Исправлено: В некоторых окнах программы неправильно показывался заголовок окна программы.Исправлено: Другие замеченные мелкие ошибки и неточности кода.Скачать
    • boomeeeer
      Не помню чтобы у меня такое спрашивали при регистрации.
    • Snake 60
      @eljer0n  Откройте макрос SaveDRW.swp редактором VBA Найдите вот эти строки: Поменяйте выделенную цифру на нужную вам 3 или 4 - это количество символов которое останется от имени конфигурации. PS При сохранении в PDF тоже ругается на неправильное название чертежа, т.к. тоже обрезает название конфигурации до двух знаков, там тоже надо править при желании...
    • eljer0n
      @malvi.dp в общем порядок следующий (на каждое исполнение свой чертеж и позиция в спецификации):   Для исполнения с 2мя знаками. 1. Есть деталь с именем формата ХХ-01.01-01 (последнее -01 это исполнение) 2. В Мпроп детали назначается исполнение из конфигурации (как у вас на картинке). Отображается корректно 3. Создается чертеж по модели, исполнение в основной надписи чертежа детали отображается корректно. 4. Сохраняется через SaveDRW с корректным именем. 5. В спецификации сборки все отображается корректно.     Для исполнения с 3мя знаками. 1. Есть деталь с именем формата ХХ-01.01-011 (последнее -011 это исполнение) 2. В Мпроп детали назначается исполнение из конфигурации. Отображается корректно 3. Создается чертеж по модели, исполнение в основной надписи чертежа детали отображается корректно. 4. Сохраняется через SaveDRW с некорректным именем, а именно - с обрезанным до двух знаков исполнением (-01). 5. В спецификации сборки шифр отображается (внезапно! может какой глюк был: у солида или у меня ) корректно, как и у вас на рисунке.     Выходит, загвоздка все-таки только в сохранялке чертежа.
    • gudstartup
      да информация о решенной проблеме очень важна так что будем ждать хороших новостей!
    • mrVladimir
      @gudstartup Спасибо Вам за помощь. Теперь дело в приобретении платы. Как что-то получится (сперва приобрести, потом поставить) обязательно отпишусь.
    • gudstartup
      а как вы taxid фирмы нашли?
×
×
  • Создать...