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

Создание элемента типа Schedule


Malder

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

Здравствуйте, при попытке создания элемента типа Schedule

createItem("123333","0","Schedule","test_name");
public static void createItem(String id, String rev, String type, String name)
{
    try
    {
      TCComponentItemType typeItem = (TCComponentItemType)session.getTypeComponent("Item");
      typeItem.create(id, rev, type, name, "", new TCComponent());
    }
    catch (TCException localTCException1)
    {
    	localTCException1.printStackTrace();
    }
}

получаю эксепшен "Отсутствуют права на данное приложение". Вручную от пользователя Schedule создается. Возможно Schedule не создается как простой item? Может manager или builder какой есть?

Teamcenter 10.

Заранее спасибо!

 

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


#include <tc/tc_startup.h>
#include <schmgt/schmgt_bridge_itk.h>

int create_schedule(char *schedule_type, char *schedule_id, tag_t *schedule_tag)
{
    int ifail = ITK_ok;
    
    date_t start_date;
    IFERR_ABORT(ITK_string_to_date( "27-Jun-2016 13:48", &start_date));

    date_t finish_date;
    IFERR_ABORT(ITK_string_to_date( "27-Jun-2016 13:48", &finish_date));
    
    SCHMGT_new_schedule_container_t create_inputs;
    
    create_inputs.id = schedule_id;
    create_inputs.name = schedule_id;
    create_inputs.description = schedule_id;
    create_inputs.customer_name = NULL;
    create_inputs.customer_number = NULL;
    create_inputs.bill_code = NULL;
    create_inputs.bill_sub_code = NULL;
    create_inputs.bill_type = NULL;
    create_inputs.bill_rate = NULLTAG;
    create_inputs.start_date = start_date;
    create_inputs.finish_date = finish_date;
    create_inputs.priority = 0;
    create_inputs.dates_linked = false;
    create_inputs.published = true;
    create_inputs.notifications_enabled = true;
    create_inputs.percent_linked = false;
    create_inputs.is_template = false;
    create_inputs.is_public = true;
    create_inputs.type = schedule_type;
    create_inputs.other_attributes_size = 0;
    create_inputs.typed_attribute_container_size = 0;
    
    int number_schedules_create = 1;
    tag_t *created_schedules = NULL;
    IFERR_ABORT(SCHMGT_create_new_schedule(&create_inputs, 1, &created_schedules));
    *schedule_tag = created_schedules[0];
    if(created_schedules) MEM_free(created_schedules);

    return ifail;

}

 

 

ходить тут: https://solutions.industrysoftware.automation.siemens.com/result.php?sort=desc&p=1&q=schedule+itk

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

Сам разобрался

TCComponent resultTCComponent;
Calendar startDate= new GregorianCalendar(2018, Calendar.DECEMBER, 20);
Calendar finishDate= new GregorianCalendar(2019, Calendar.DECEMBER, 20);
//Массив с параметрами
ArrayList localArrayList1 = new ArrayList();
//item_id можно не указывать тогда будет автоматически взят следующий
localArrayList1.add(new StringValuePair("item_id", "000012"));
localArrayList1.add(new StringValuePair("item_sub_type", "Schedule"));
//Тут массив с какими то доп параметрами. Еще не разбирался. Поэтому он пустой
ArrayList localArrayList2 = new ArrayList();
//Создаем контейнер. "test_name" имя элемента.
ScheduleCreateContainer SchCont = new ScheduleCreateContainer("test_name",startDate,finishDate,0,false, false, false, false, false, false, 0,localArrayList1, localArrayList2, null, 0);
ModelFactory localModelFactory = ModelFactory.singleton(session);
ScheduleModel localObject1 = localModelFactory.getScheduleModel();
ReferenceIDContainer localObject3 = null;
try {
	localObject3 = localObject1.newSchedule(SchCont);
} catch (SchedulingException e) {
	e.printStackTrace();
}
if (localObject3!=null){
	Collection localObject4 = localObject3.getObjectIDs();
	Iterator localIterator = localObject4.iterator();
	if (localIterator.hasNext())
	{
		//resultTCComponent наш созданный TCComponent
		resultTCComponent = session.stringToComponent((String)localIterator.next());
	}
}
		

 

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

Так человек на JAVA же пишет..

О точно, ну лана, пригодится)

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

Продолжаем развивать тему. Пытаюсь создать ScheduleTask

InterfaceAIFComponent c_target = AIFUtility.getTargetComponent();
TCComponentSchedule item = (TCComponentSchedule)c_target;
TCComponentScheduleTask SmTask=null;
try {
	SmTask = (TCComponentScheduleTask)item.getReferenceProperty("sch_summary_task");
} catch (TCException e1) {
	e1.printStackTrace();
}
TaskModel localTaskModel = ModelFactory.singleton(session).getTaskModel();
TaskCreateContainer localTaskCreateContainer = new TaskCreateContainer();
localTaskCreateContainer.setParentTaskId(SmTask.getUid());
localTaskCreateContainer.setPrevTaskIDSameLevel(null);
localTaskCreateContainer.setTaskName("test_name");
ArrayList<StringValuePair> prop = new ArrayList<StringValuePair>();
prop.add(new StringValuePair("item_sub_type", "ScheduleTask"));
localTaskCreateContainer.setStringValuePair(prop);
ArrayList<TaskCreateContainer> lArray = new ArrayList<TaskCreateContainer>();
lArray.add(localTaskCreateContainer);
try {
	localTaskModel.createTasks(lArray, item.getUid());
} catch (SchedulingException e) {
	e.printStackTrace();
}

На строке 

localTaskModel.createTasks(lArray, item.getUid());

получаю ошибку 

DATA_LOOKUP_ERR_FIND_TASK

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

Неужели никто с графиками программно не работал?

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • ДОБРЯК
      Ты до сих пор не понял, что тебе уже три-четыре раза сказали. Все кроме тебя поняли и успокоились.:=) Копирую для тебя еще раз, что нужно сделать. Или ты опять не понял. :=) Напиши как ты будешь решать эту задачу методом Ланцоша или методом итераций подпространства.  Матрицу масс найдешь выше по тексту. Только не пиши много лишних букв и слов. А в прочем пиши. Интересно наблюдать как ты подгораешь...;=) Сам себя заводишь, пяткой себя в грудь бьешь доказывая, что все знаешь и умеешь  и при этом еще глубже себя закапываешь и подгораешь.
    • Maxim.Oi TF
      Биение есть это точно. Фреза режет не равномерно, слышно по звуку
    • AlexKaz
      Нагуглил старый список отличий профкарт от GTX, кому интересно   А тут - полный список важных для производительности карты настроек на потыцкать https://www.goengineer.com/blog/optimizing-solidworks-for-faster-performance Если солид жёстко привязан к OpenGL - логично поискать любую доступную карту с наилучшим быстродействием в OpenGL.
    • AlexKaz
      @eljer0n, в настройках драйвера и графики игровой карты попробуйте вручную выставить на максимум все видеоэффекты и привязать карту к приложению принудительно (а то у Вас симптомы как софтверного рендера на CPU). Пример: https://www.mlc-cad.com/solidworks-help-center/how-to-force-solidworks-to-use-your-graphics-card/ По дефолту там что-то среднее, скорее всего. Не поможет - установить дрова к профкартам и там покрутить настройки, сменить версию Windows с 11 на 10. И только потом можно смотреть на профкарты. Также потестить опции в самом солиде. Вот тут ниже рекомендуют включить Enable petformance pipeline и не юзать SW 2018 https://www.engineering.com/story/20-to-30-times-faster-graphics-response-with-solidworks-2019s-new-graphics-engine
    • Killerchik
      Лихой Вы, однако....   Да, это уже сильно сложнее.
    • neon0404
      Да, действительно, огромное спасибо! Ошибка новичка) Не тот режим визуализации был
    • Максим604
      @Killerchik ну да, пишу реальную и стойка переправит, а если пишу руками, то считать для центра.  Просто резьбу писал или через переменные или через turn. И подачу считал как на обычную фрезеровку.   Ещё раз спасибо) 
    • gudstartup
      100% taxid - это не совершенно секретная инфа.  а вот корпоративный ящичек у этой же фирмы посложнее  
    • Killerchik
      Скорость я бы поставил метров 15-20. Подача - лучше измерить биение зубьев прям индикатором на станке. В идеале, если биение между соседними зубьями менее трети подачи на зуб, то эту самую подачу я бы поставил порядка 2-3 соток на зуб. Фрезеруйте так же, за 2 прохода, если это не прям супер критично для времени выполнения УП.
    • Alexejswt
      Все работает.  Job-1.inp
×
×
  • Создать...