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

Изучаем 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 пользователей

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




  • Сообщения

    • gudstartup
      вы тоже думаете что можно все компоненты чпу заменить и ничего не изменится и предупреждение о том чтобы oprminf не восстанавливали на другой машине которое фанук встроил даже в загрузчик это просто алармисткий текст и ничего не будет..... ну и ну и где написано что она mate как например здесь с чего тогда базовый чпу mate если гл.плата не mate мне непонятно из-за экрана что ли
    • статист
      Охренеть, ни за что бы не догадался. Хоть бы словом где обмолвились об этом в документации. Короче нужна команда EMODIF, E_ID, 3, N_ID где E_ID - номер элемента, который мы собираемся модифицировать. Так как используется BEAM188, то у него не два узла оказывается рассматривается, а три, где первые два принадлежат элементу, а третий узел - направляющий. И соответственно число 3 - это номер узла балки, который мы собираемся модифицировать, то есть направляющий узел. И мы этот узел соответственно заменяем на узел с номером N_ID. И тогда сечение реально вращается. Разобрался по этому видео.    
    • Александр1979
      Материнка такая в руководстве есть. На 0i-D я менял материнку, опции не слетели. 
    • gudstartup
      @Viktor2004 кстати конкретно модели автора в руководстве нет хотя оно последней редакции 18 года
    • Viktor2004
      конкретно на этой не менял. На каких менял, написал выше
    • gudstartup
      какие платы и на каких системах вот в чем ворос конкретно на этой возникут проблемы
    • Viktor2004
      ну да. А то что я менял платы это мои бредовые фантазии   Ну исправили в паспорте. И что?
    • gudstartup
      это догадки и гадание на кофейной гуще а япривожу документ где написано про то что прочитайте пункт 4.11 а там представляете вот что 4) Замена печатной платы может привести к изменению идентификационного номера ЧПУ. Проверьте это на Экран ЧПУ. Если оно отличается от описанного в техническом паспорте, исправьте его.  
    • Viktor2004
      я менял все платы. И на форуме наверное не я один их менял. И никто еще не писал что при этом у него слетел сертификат Возможно ID номера проверяются только в момент установки опции, а когда они уже установлены и мирно хранятся в OPRM INF возможно ти уже на ID наплевать
    • gudstartup
      для кого это написано CAUTION Before replacing a printed circuit board, be sure to read Section 4.11, “OPTION INFORMATION FILE” to confirm the procedure.  
×
×
  • Создать...