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

Изучаем Toolkit


Sergey___1978

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

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

Это да. 

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


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

 

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

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

 

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

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

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

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

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

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

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

 

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

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

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

 

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

Не нужно это.

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

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

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

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

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

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

Добрый день!

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

Пока своял определение имени  сервера, воркспейса и статус файла в винчиле (&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);

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

Добрый день!

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

Пример:

Имеется строка: 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);

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

Здравствуйте, разбираюсь с 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;
		}
		
	}

 

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

Вопрос по функции: 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];

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

Доброго дня всем!

У меня такой вопрос.

Какую версию VisualStudio использовать для написания приложения Toolkit для Creo Parameric 4.0 под windows 10 64 бита?

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

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

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

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

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

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

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

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

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

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

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




×
×
  • Создать...