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

Изучаем 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
      обычно эта страница везде есть
    • Александр1979
      Попробуйте параметр 9927 бит 4 установить 1
    • gudstartup
      Здравствуйте! Может кто подсказать тип интерфейса этих датчиков ? Например для линеек хеденхайн  с цифровым интерфейсом это Fanuc 02 Fanuc 05. знаю  только что там последовательный интерфейс но совместим ли он с интерфейсом линеек или нет? вопрос возник потому что есть приборчик pwm21 от хайден для тестирования датчиков который нормально тестирует линейки и круговые датчики с вышеописанными интерфейсами а вот моторные датчики игнорирует, поэтому возникло подозрение что у них другой интерфейс. По описанию прибор может тестировать X1 15-pin D-sub input for HEIDENHAIN encoders with 11 μAPP/25 μAPP interface 1 VPP/3 VPP interface (1 VPP/Z1, 1 VPP with limit positions, 1 VPP with clock/data) EnDat/SSI interface TTL interface with limit positions HTL interface (connection only for service purposes via external adapter, e.g. ID 1093210-01) Fanuc, Mitsubishi, Yaskawa, or Panasonic interface
    • maxx2000
      @vanek77777 Человек задал вопрос как ограничить углы, я ответил что ничего ограничивать не надо, надо правильно построить стратегию обработки и озвучил как это должно выглядеть по моему мнению. Как всегда мои слова носят рекомендательный характер, не претендуют на истину в виду отсутствия возможности в функционале в самой лучшей CAM или отсутствия опыта оператора или понимания что и как и необязательны к применению безоговорочно И не надо спорить, вместо тысячи слов достаточно показать мультик как всё круто у тебя получается.  т.е. ты не знаешь как в 5 осях обработать криволинейный участок поверхности? НО при этом пытаешся критиковать. Забавно.   А судьи кто?   Что касательно того кто в какой CAD\CAM работает, то это не меняет тех фундаментальных принципов по которым происходит проектирование деталей и их обработка. Так сложилось что все программы основаны на одних общий принципах, повернул-обработал или обработал в момент поворота. Вопрос лишь в том насколько хорошо ты знаешь свою самую лучшую систему и можешь экстраполировать увиденное у других в неё. Т.е. твою склонность усваивать информацию, уметь её анализировать и применять, а не быть обезьяной кнопконажимателем. Я всегда об этом говорил и буду придерживаться своего мнения.
    • Александр 36
      Добрый.Подскажите как можно вывести отображение машинного времени?
    • vanek77777
      Балабол) Тебе уже говорили как-то выше по ветке, не давай советы по cad/cam системе в которой видимо даже не работаешь) Человек задал конкретный вопрос, как назначить конкретную обработку. Если ты не можешь показать, а ты не можешь, то пройди мимо. Конкретно по вопросу выше, я помочь не могу, т.к. не было необходимости делать такую обработку. Скилл как правило не определяется знанием всего по чуть чуть (как в твоем случае). Если ты занимаешься всем (судя по твоим постам на форуме), то ты ни чем не занимаешься по сути. На этом я больше тратить время на споры с тобой и флуд не буду. 
    • maxx2000
      пробывал поставить птичку "разрешить привязку"? да забей ты на лайки- шмайки, словами ответь. Пробовал или помогло?
    • maxx2000
      охренел что ли, где я ему про 3+2 говорил?  По твоему 5 осевая стратегия всегда подразумевает непрерывное движение всех 5 осей? Что на 4 осевом станке нельзя использовать 5 осевые стратегии?   а спину вареньем не намазать?   Я ещё раз повторюсь,  создаётся  ЛСК (или как там она у вас называется у NXстрадальцев) обрабатываемого элемента, Z этой ЛСК будет автоматически довернута вдоль оси шпинделя(повернётся стол), а поскольку обрабатываемый элемент не плоский (с подвывертом) обработка будет вестись по всем осям (непрерывная 5 осевая), а наклон инструмента будет минимизирован, в зависимости от того как настроена обработка вдоль Z ЛСК элемента,  по нормали к элементу или будет разрешено резать боком. Либо не выёживаться и использовать инструмент для обработки импеллера. Чё тут непонятного? Ах да, нет картинок волшебных. Ну мои картинки тут не приветствуются, без желания понять суть, они бесполезны.   Алаверды Сделай и выложи сюда проект. Покажи на деле. Посмотрим на твою скилуху.  
    • GHEB
      Добрый день Создал некую модель, всё было хорошо, но после перезапуска программы почему то эскиз перестал привязываться к линиям: Выбираю "Эскиз" https://skr.sh/sPckC4oM2Sf Нажимаю на нужную мне плоскость https://skr.sh/sPc7M6DGRDq Выбираю линию https://skr.sh/sPcnw9t9J9u Пытаюсь начать рисовать от центра окружности https://skr.sh/sPc1Kklf8nM Пытаюсь рисовать от некой точки https://skr.sh/sPcECS6vnwL Как видно курсор не привязывается к точкам, из-за чего попасть точно не представляется возможным Тоже самое если я пытаюсь к эскизу например дорисовать линию https://skr.sh/sPcX7Wyj0e6  В настройках эскиза настроено так, пробовал "перетыкивать" не помогло: https://skr.sh/sPc1CoTvYDS Версия https://skr.sh/sPcH4esnnCK Скрин всего окна и настроек, о которых я вычитал тут:  https://skr.sh/sPcHbYP5iB4 Скрин https://skr.sh/sPcHbYP5iB4 всего окна и настроек, о которых я вычитал тут:      Нашёл "быстрые привязки, но они работают не очень хорошо для окружностей и между ними приходиться переключаться, до этого таокго не было, неудобо https://skr.sh/sPcvE3KzS3u
    • Viktor2004
      Вот этот пример работает безотказно Нажатие на F1 включает кипп-реле К50.0, нажатие F2 его выключает O8001 G240 P3 C0 G243 X2 Y0 A1 B0 (TEST PROGRAM) G240 P6 C0 G243 X7 Y[4 + 1] (SECOND SCREEN) G240 P7 C0 G243 X5 Y26 A1 B0 (K50.1) G243 X5 Y27 A1 B0 (ON) G243 X12 Y26 A1 B0 (K50.1) G243 X12 Y27 A1 B0 (OFF) IF [#8549 EQ 249] THEN G310 K50 Q1 ENDIF IF [#8549 EQ 248] THEN G310 K50 Q0 ENDIF M99  
×
×
  • Создать...