Sergey___1978

Изучаем Toolkit

199 сообщений в этой теме

Я так понимаю, что данным кодом Вы меняете текст в заметки на &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 сделал, потом время покажет, может чо-нибудь придумаю.

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


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

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

Я прошу прощения за некомпетентность, я только вчера установил себе 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 .

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

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

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


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

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

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

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

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


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

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

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


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

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

D:\PTC\proew5\jlink\jlink_appls

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

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


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

Добрый день.

Пытаюсь вставить в меню разделительную линию (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 оказался ни при чем.

 

 

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


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

Добрый день!

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

 

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);   Все нормально работает, массив создается. Теперь необходимо вытащить имена этих компонентов  (деталей и подсборок). Пробовал разными способами, всегда выходит пустая строка вместо имени.

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

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

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


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

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

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

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

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

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

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


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

Это да. 

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


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

Наверно поможет ProAsmcompMdlNameGet.

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


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

Похоже это то что нужно.

Спасибо.

После праздников проверю.

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


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

Сделал немного по другому.

 

ProAsmcompMdlGet(&features[f],&mdl1);

ProMdlDataGet(mdl1,&mdldata1);
wcscpy(param_component1.NAME,mdldata1.name);
wcscpy(param_component1.TYPE,mdldata1.type);

 

Спасибо, все получилось.

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


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

подскажите пожалуйста, где смотреть сообщения которые выдает комманда ProTKPrintf ?

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


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

подскажите пожалуйста, где смотреть сообщения которые выдает комманда ProTKPrintf ?

Если не секрет, а для чего вы хотите ее использовать?

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


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

Если не секрет, а для чего вы хотите ее использовать?

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

 

Многие стандартные приложения используют ProTKPrintf , например pt_autoaxis

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


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

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

 

Многие стандартные приложения используют ProTKPrintf , например pt_autoaxis

Не нужно это.

Проще выводить окно сообщения на экран со значением необходимо

го параметра.

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

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


Ссылка на сообщение
Поделиться на других сайтах
Проще выводить окно сообщения на экран со значением необходимо го параметра. Я так делаю, ибо сам не умею пользоваться встроенным в си отладчиком.

спасибо, буду пробовать 

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


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

Добрый день!

Нужна помощь. Не могу найти функцию, которая берет модель или чертеж на изменение в винчиле.

Пока своял определение имени  сервера, воркспейса и статус файла в винчиле (&checkedout,&modified).

В mdldata2 хранится имя файла и его тип

 

        ProFileName objectname;
        ProBoolean checkedout, modified;
        wcscpy(objectname,mdldata2.name);
        wcscat(objectname,L".");
        wcscat(objectname,mdldata2.type);
        typedef struct
        {
            wchar_t* server;
            wchar_t* ws_name;
            ProPath ws_path;
        } PTWCAsmVisitData;
        PTWCAsmVisitData visit_data;
        status=ProServerActiveGet(&visit_data.server);
        status=ProServerWorkspaceGet(visit_data.server,&visit_data.ws_name);
        status=ProServerObjectStatusGet(visit_data.server,visit_data.ws_name,objectname,&checkedout,&modified);

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


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

Добрый день!

Хочу записать данные из заметки с ТТ в текстовый файл, пропадают все управляющие символы ,остается только текст.

Пример:

Имеется строка: 2. Внутренний радиус R5@--0.5@# мм.

Записывается :  2. Внутренний радиус R5-0.5 мм.

В итоге пропадает нижний индекс, тоже самое с переменными. Допустим, если в тексте присутствует ссылка на величину размера, то подставляется его значение без допусков, а запись вида например &d10 теряется.

Никто не сталкивался как побороть это?

 

Кусок кода прилагаю.

notes[nomer_note] - заметка с ТТ.

 

            ProNoteDtlnoteGet(&notes[nomer_note],drawing1,&dtl_note_tt);
            ProDtlnoteDataGet(&dtl_note_tt,NULL,PRODISPMODE_NUMERIC,&dtlnote_data);
            ProDtlnotedataLinesCollect(dtlnote_data,&dtllines);            
            SaveDtlLinesToFile(L"d:\\temp\\tt.txt",dtllines);

 

//запись заметки в текстовый файл
int SaveDtlLinesToFile(wchar_t *filename,ProDtlnoteline *dtllines)
{
    int n_lines;
    int n_texts;
    ProArraySizeGet(dtllines,&n_lines);
    char str1[255];
    ProLine wstr1;
    wchar_t line_text_tt[255];
    FILE *text_file;
    text_file=fopen(ProWstringToString(str1,filename),"w");
    ProDtlnotetext *dtltexts;
    for (int i=0; i<n_lines; i++)
    {
        ProDtlnotelineTextsCollect(dtllines,&dtltexts);
        ProArraySizeGet(dtltexts,&n_texts);
        wcscpy(line_text_tt,L"");
        for (int j=0; j<n_texts; j++)
        {
            ProDtlnotetextStringGet(dtltexts[j],wstr1);
            wcscat(line_text_tt,wstr1);
            MessageWstr(wstr1);
        }
        fputws(line_text_tt,text_file);
        if (i!=n_lines-1) fputws(L"\n",text_file);
        //MessageWstr(line_text_tt);
    }
    fclose(text_file);
    return(0);
}

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


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

Вопрос решился

ProNoteTextGet(&notes[nomer_note],PRODISPMODE_SYMBOLIC,&note_text);
SaveTextToFile(L"d:\\temp\\tt.txt",note_text);

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


Ссылка на сообщение
Поделиться на других сайтах
В 05.10.2016 в 18:10, Sergey___1978 сказал:

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

  1. Необходимо настроить MAKEFILE файл.
    • Изменить опции в строке CCFLAGS или CPPFLAGS , добавив /Od /Z7.
    • Изменить /debug:none на /debug.
  2. В VS выбрать конфигурацию проекта Debug и создать точку останова (breakpoint) в коде.
  3. Запустить Creo.
  4. В VS присоедениться к процессу xtop.exe через меню Debug.
  5. При срабатывании точки останова откроется окно VS.

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


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

Спасибо, попробую как-нибудь на досуге.

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


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

Здравствуйте, разбираюсь с toolkit. Можно ли отобразить сгенерированный меш в виде facet feature в модели creo parametric? Для генерирования меша я использую следующий код:

ProMdl curModel;
	ProError ret;

	ProMdlActiveGet(&curModel);

	ProMdldata p_data;
	ProMdlDataGet(curModel,&p_data);

	ProPart part = ProMdlToSolid(curModel)  ;
	ProSurfaceTessellationData *tesData;




/*-------------------------------------------------------------------------------*\
	Collect all the features into an array from the current model 
\*-------------------------------------------------------------------------------*/  
       ProMdl model, mdl_handle;
	    ProError status;
		ProFeature *feature;
		/*status = ProMdlCurrentGet(&model);     
        status = ProUtilCollectSolidFeatures((ProSolid)model, &feature); 
        TEST_CALL_REPORT ("ProUtilCollectSolidFeatures()" ,"ProSampCustomFileOpen()", status, status != PRO_TK_NO_ERROR);
       
        ProTKFprintf(fp,"--------------- User defined file type info --------------\n"); 
        status = ProTestFeatureInfoAct (&feature[i], PRO_TK_NO_ERROR, (ProAppData)&appdata);  
        TEST_CALL_REPORT ("ProTestFeatureInfoAct()" ,"ProSampCustomFileOpen()", status, status != PRO_TK_NO_ERROR);

        status = ProArrayFree((ProArray*)&feature);            
        fclose(fp);             
        ProStringToWstring (name, filename);  */
/*------------------------------------------------------------------------------*\
	Display the information window
\*------------------------------------------------------------------------------*/    



	ProMdl mdl;
	 ret = ProMdlCurrentGet(&mdl);
	 cout<<"ProModelError: "<<ret<<endl;
		ret =ProPartTessellate((ProPart)mdl,0.1,0.1,ProBoolean::PRO_B_FALSE,&tesData);
		cout<<"TessellateError: "<<ret<<endl;
	if (ret==ProError::PRO_TK_NO_ERROR)
	{
		int tesCount;
		ProArraySizeGet(tesData,&tesCount);
		for (int i = 0;i<tesCount;i++)
		{
			cout<<"Vertex count: "<<tesData->n_vertices<<endl;
		}
		
	}

 

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


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

Вопрос по функции: ProDtlnotetextHeightSet(dtltexts,font);

 

Хочу задать размер шрифта для ячейки в таблице (допустим 2.5).

Понял, что просто задать это число не канает. Нужно задавать в каких то мировых координатах.

Вычислил опытным путем что для формата А4 коэф-т равен 0,352.

Типа нужно задать: ProDtlnotetextHeightSet(dtltexts, 2.5/0.352);

Для других форматов нужно искать  свой.

Может есть какая-то функция преобразования для размера шрифта или вообще какая-то универсальная?

 

Пока на ум приходит мысль, что это как-то связано с размерами формата, но как?

Нахожусь в ступоре, может знает кто решение?

 

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


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

От РТС

 

  1. Use ProDtlnotetextHeightSet() and ProDtlnotetextWidthSet() to change the size of the text in a table cell.
  2. Call ProDtlnoteErase()ProDtlnoteModify() and ProDtlnoteShow() to redraw the text.

Еще в чертеже трансформацию применить надо - там от масштаба листа, вида ... зависит

ProDrawingSheetTrfGet(drawing, sheet, sheet_size, transform); // TOOLKIT code.

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


Ссылка на сообщение
Поделиться на других сайтах
  1. Get the transformation matrix of specific drawing sheet.
  2. The conversion rate between program value[*1] and Height in Note Properties is the (0, 0) item of the transformation matrix.
    For example:
    ProDrawingSheetTrfGet(drawing, sheet, sheet_size, transform); // TOOLKIT code.
    Height in Note Propertiesprogram value[*1] * transform[0][0];

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


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

Спасибо большое, все просто оказалось.

Вот код, может кому то пригодится.

 

double font_size=2.5;
ProMatrix matrix;
ProName sheet_size;
ProDrawingSheetTrfGet(drawing1,1,sheet_size,matrix);
font_size=font_size/matrix[0][0];

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


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

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

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

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

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


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

Войти

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


Войти сейчас

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

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