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

Вопрос тем, кто имеет опыт программирования С++ для ТС


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

Есть модуль  Teamcenter 8,написанный С++, 32-битная платформа, который среди прочего выдавал список правил модификаций используя стандартные функции(CFM_list,AOM_ask_value_string) из библиотек /bin.

 

	bool result = true;
	int rCount = 0;     //количество правил правил модификаций
	tag_t *rules = NULL;            //ссылки на правила модификаций

	 //получение количества и ссылок на правила модификаций
	retcode = CFM_list(&rCount, &rules);
	if (retcode != ITK_ok)
	{
		AddToLog("GetRulesList", "CFM_list");
		result = false;
	}

	for (int i = 0; i < rCount; i++)
	{
		char *rName = NULL;
		const char * object_name="object_name";
		//получение имени правила модификаций
		retcode = AOM_ask_value_string(rules[i], object_name, &rName);
		if (retcode != ITK_ok)
		{
			AddToLog("GetRulesList", "CFM_list");
			continue;
		}
		 // запись правила модификаций в  _cbRulesNames
		_cbRulesNames->AddItem(rName, (TObject *)rules[i]);
	}

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

какие должны быть результаты:

Цитата

 

count=4

A

B

C

D

 

как получается:

Цитата

count=4

A

C

Invalid Tag  - the requested object does not exist

Invalid Tag  - the requested object does not exist

Скорее всего это связанно с выделением памяти в 64бит, но нет понимания как сделать, что бы нормально загружались правила. У кого какие мысли есть?

P.S. 

typedef int* tag_t; //тэги

 

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


4 минуты назад, klongard сказал:

 Если на примере:

какие должны быть результаты:

как получается:

count=4

A

C

Invalid Tag  - the requested object does not exist

Invalid Tag  - the requested object does not exist

 

Скорее всего это связанно с выделением памяти в 64бит, но нет понимания как сделать, что бы нормально загружались правила. У кого какие мысли есть?

P.S. 

typedef int* tag_t; //тэги

 

А при чем тут разрядность? Судя по результатам у вас два объекта как invalid tag, а которые живые - только A и C,которые и отображены в алфавитном порядке.

Разберитесь с invalid tag и возможно все будет как должно

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

@lexx174Если я Вас правильно понял, то скажу какие мысли у меня, в 64бит выделено в 2 раза больше памяти на указатели, чем на 32бит

Возможно происходит двойная запись:

A|B      Записаны сразу А и В, но функция обрабатывает только первую половину-А

C|D      и так далее остальными

0|0      А тут уже пустые значения, ссылки на не существующие объекты, Invalid Tag  - the requested object does not exist

0|0

 

P.S. Все объекты живые и могут отображаться. Если удалить А в Teamcenter, и запустить модуль, то результаты ты будут:

count=3

B

D

Invalid Tag  - the requested object does not exist

 

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

из-за разрядности ил нет, все равно получается ошибка в API которую нам с вами не исправить.
инвалид тэг - потому что в rules[3] ничего нет, точнее есть но какое то рандомное значение.

кстати  rName надо освобождать

можно еще посоветовать повнимательней проверить настройки проекта из рекомендованых в мануале.

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

исходим из того, что по факту у вас эти объекты сущеуствуют, ведь так?

смотрите как все будет себя вести на 11.3, дело не в разрядности.

ну и чего там у вас в сислоге написано?

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, klongard сказал:

@lexx174Если я Вас правильно понял, то скажу какие мысли у меня, в 64бит выделено в 2 раза больше памяти на указатели, чем на 32бит

Возможно происходит двойная запись:

A|B      Записаны сразу А и В, но функция обрабатывает только первую половину-А

C|D      и так далее остальными

0|0      А тут уже пустые значения, ссылки на не существующие объекты, Invalid Tag  - the requested object does not exist

0|0

 

P.S. Все объекты живые и могут отображаться. Если удалить А в Teamcenter, и запустить модуль, то результаты ты будут:

count=3

B

D

Invalid Tag  - the requested object does not exist

 

проверил в своей базе - все вроде по алфавиту по порядку.

 

Вначале идет перечень правил в английской локализации в верхнем регистре, потом в нижнем, потом русская локализация в алфавитном порядке. TC 10.1.5 64bit

 

Пример вывода:

 

Цитата

Any Status; No Working
Any Status; Working
Approved
B Latest by Alpha Rev Order
Latest Working
Latest by Alpha Rev Order
Latest by Creation Date
Precise Only
Precise; Any Status
Precise; Any Status; Latest Rev Order
Precise; Working
Quick
Simple
Working(Current Group); Any Status
Working(Current User); Any Status
Working; Any Status
a*******
b*******
Окончание******
Утвержденная или *****

 

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

@lexx174 в чем  запускали? Я пытаюсь в RAD Studio XE6, возможно, как сказали выше, дело в настройках проекта.

 

Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, klongard сказал:

@lexx174 в чем  запускали? Я пытаюсь в RAD Studio XE6, возможно, как сказали выше, дело в настройках проекта.

 

visual studio. никакой экзотики

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

как учил товарищь niki при переходе на новую версию обязательно смотри что изменилось в настройках проекта, использовать правильную версию VS.

Особое внимание надо обращать на ключ /MT
И компилировать в конфигурации release.

Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, lexx174 сказал:

а тут можно подробней?

т.к. тимцентр скомпилирован в конфигурации release, то и юзеровская длл лучше чтоб тоже была в релизе, иначе есть вероятность каких-нибудь багов которые хер отловишь.
Это конечно не догма и вероятность не велика (ИМХО).
Так учили в сименсе, правда по NX, ну тут думаю тоже самое.


речь конечно о native dll. 

Ссылка на сообщение
Поделиться на других сайтах
15 минут назад, koner сказал:

т.к. тимцентр скомпилирован в конфигурации release, то и юзеровская длл лучше чтоб тоже была в релизе, иначе есть вероятность каких-нибудь багов которые хер отловишь.
Это конечно не догма и вероятность не велика (ИМХО).
Так учили в сименсе, правда по NX, ну тут думаю тоже самое.


речь конечно о native dll. 

есть же еще и exe

Ссылка на сообщение
Поделиться на других сайтах
6 часов назад, klongard сказал:

@lexx174 в чем  запускали? Я пытаюсь в RAD Studio XE6, возможно, как сказали выше, дело в настройках проекта.

 

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

и простите я вам там про 11.3 говорил, а вы на 10

Ссылка на сообщение
Поделиться на других сайтах
15 минут назад, Krusty сказал:

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

Не сертифицирована Siemens? И как расшифровывается VC?

 

2 часа назад, lexx174 сказал:

visual studio. никакой экзотики

Тогда для меня это печально. В visual studio не работал раньше, но слышал есть большие разницы между VS и RAD STUDIO+ насколько я знаю нет прямой возможности проекты из одного в другой переносить

Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, klongard сказал:

нет прямой возможности проекты из одного в другой переносить

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

А прежде чем переносить просто проверьте свой кусок кода с использованием Visual Studio.
Если будет работать то сомнений не останется

Изменено пользователем koner
Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, klongard сказал:

Не сертифицирована Siemens? И как расшифровывается VC?

 

Тогда для меня это печально. В visual studio не работал раньше, но слышал есть большие разницы между VS и RAD STUDIO+ насколько я знаю нет прямой возможности проекты из одного в другой переносить

Уберите эту RAD студию подальше и не усложняйте себе жизнь

 

Все програмирование exe/dll для TC по умолчанию сертифицировано и рекомендовано именно под Visual studio - (VC - это тоже имелось  виду visual studio)

 

RAD studio - это мутант от некогда популярной BORLAND(если не путаю) - разработчика Delphi,C++ Builder, который видимо решили потом сделать свой аналог MS Visual Studio

 

 В поставке TC есть скрипты для ручной (без IDE) компиляции и линковки, которые если заметите - ориентированы на компилятор от MS VS

 

 

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

@lexx174Тогда такой вопрос, в какой версии VS запускали? Есть VS 2010, я так понимаю принципиальной важности нет какая версия.

И можно Вас попросить попросить скинуть исходники где вы тестили загрузку правил модификаций?

Для примера какого вида проект, вообще работает в  VS (немного пугает меня) и проверить, что правила у меня загрузятся, перед тем как буду весь проект переносить.

 

Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, klongard сказал:

@lexx174Тогда такой вопрос, в какой версии VS запускали? Есть VS 2010, я так понимаю принципиальной важности нет какая версия.

И можно Вас попросить попросить скинуть исходники где вы тестили загрузку правил модификаций?

Для примера какого вида проект, вообще работает в  VS (немного пугает меня) и проверить, что правила у меня загрузятся, перед тем как буду весь проект переносить.

 

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

 

Проект - консольное приложение. Чего пугаться то vs студии? Я так понял вы не читали особо документацию все-таки.

 

И какая у вас версия тимцентра?Это тоже важно. У меня 10.1. Visual studio 2010 (возможно с SP1, не помню)

Изменено пользователем lexx174
Ссылка на сообщение
Поделиться на других сайтах
29 минут назад, lexx174 сказал:

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

 

Проект - консольное приложение. Чего пугаться то vs студии? Я так понял вы не читали особо документацию все-таки.

 

И какая у вас версия тимцентра?Это тоже важно. У меня 10.1. Visual studio 2010 (возможно с SP1, не помню)

Да, Вы правы, документацию не читал, то что программа в RAD Studio, это досталось мне в наследство от предыдущих работников по принципу "вот тут мы работаем, вот тут так и так, дальше по обстоятельствам".

Работаю в в версии 10.1.7

 

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • gudstartup
      @marchuk-86 два разных станка с разными параметрами осей и чего вы хотите?  
    • marchuk-86
      Добрый день. Есть два фрезерных станка с Fanuc 0i. На одном станке установлена поворотная ось(4я), на втором наклонно-поворотный стол (4+1). Проблема в разнице отработки управляющей программ. При отработке практически одной и той же управляющей программы на станке с наклонно-поворотным столом замечено существенная разница по времени отработки. Происходит какое-то торможение при повороте детали. Кусок УП для поворотной оси: G0G90G17G54 T2M6  S1500M3 G0X-15.7Y0.M8 G43Z50.H2 B0.M11  G83G98X-15.7Y0.Z.881R4.17B0.Q0.15F20. B45.  B90.  B135. B180. B225. B270. B315. X-14.75B22.5  B67.5 B112.5  B157.5  B202.5  B247.5  B292.5  B337.5 ...   Кусок УП для наклонно-поворотного стола: G0G90G17 G57B90C0 T2M6  S1500M3 G0X-15.7Y0.M8 G43Z50.H2 C0.M11  G83G98X-15.7Y0.Z.881R4.17C0.Q0.15F20. C45.  C90.  C135. C180. C225. C270. C315. X-14.75C22.5  C67.5 C112.5  C157.5  C202.5  C247.5  C292.5  C337.5 ...    Всего сверлится 120 отверстий. Разница по времени набегает в 35 минут.  После переделки УП с минимальным количеством поворотов по оси С, разница минимизировалась. Т.е. "тормозит" именно наклонно-поворотный стол. С этим можно что-нибудь сделать?
    • Maxim.Oi TF
      Померил Биение зубов у фрезы получилось 0.07(семь соток). Это перепад от наименьшее до наибольшего
    • Maxim.Oi TF
      Еще Заметил что обороты фрезы не соответствуют заданным. Проверял следующим образом: Задал 100 об в минуту. Сделал метку белым штрихом на фрезе. И за минуту по секундомеру я насчитал 122 оборота. Видимо 100 оборотов крутится сам серво двигатель, а через шестерни получается 122. 
    • Artas28
      Почему пост рисует Х 50.118 а сам станок на симуляции показывает -3.9257 и фреза находится по центру детали.  И Y там тоже очень сильно отличается. Почему? Станок по этой программе едет в х50.118 и фреза там не по центру детали. Где косяк?
    • maxx2000
      Это такая же команда и порядок её использования есть в инструкции на стойку. Т.е. как и вместе с чем включается и как выключается.
    • ДОБРЯК
      А для нахождения собственного вектора не нужно решать систему линейных уравнений? :=)
    • Artas28
      А ничего не надо добавлять в события, что бы траектория правильно выводилась?
    • Killerchik
      Ещё раз предположу, что заготовка прошла улучшение, а не закалку - просто с целью улучшения обрабатываемости.   Полностью поддерживаю, даже для хорошего современного покрытого быстрореза с СОЖ под высоким давлением 80м/мин по стали с 14% хрома и 17% никеля выглядят как запредельно много, не говоря уже про непокрытый Р6М5 с СОЖ поливом.
    • gudstartup
      на этом материале аналог X22CrNi17 даже не каленом калькулятор hoffmann считает необх. момент 2н*м а на каленом (закалить ее можно только до 40hrc изначально твердость 36 ) думаю можно вообще не закаливать.. мотор должен справляться только скорость резания надо уменьшить с 80м\мин до 20м\мин и тогда не спеша она весь паз прогрызёт
×
×
  • Создать...