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

Knowledge Fusion


Sxurik

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

Добрый день,

у меня есть программа (написана не мной!), в которой идет построение стрингера на поверхности по кривой, в ней тело стрингера создается "заеметанием" сечений стрингера, построенных с помощью ug_line и ug_arc. Ориентирование сечений не имеет значение сейчас, но вот не могу никак сделать чтобы построение сечения было ассоциативным пробовал с помощью %nx_associative_arc/line - не получилось, приложение выдает ошибку, встроенный дебагер ничего толком не показывает (или я не вижу).

Подскажите пожалуйста, есть ли способы построить ассоциированные линии и дуги?

часть кода построения сечения:

(Child) ug_line: { Class; ug_line;

start_point;Point(0,0,0);

end_point;pt_to_pt(Point(B:,0,0),x_p:,an_x:);

Suppress?;FALSE;

Color;2;

Layer;1;

};

(Child) ug_line_0: { Class; ug_line;

start_point;pt_to_pt(Point(B:,0,0),x_p:,an_x:);

end_point;pt_to_pt(Point(B:,S:-RR1:,0),x_p:,an_x:);

Suppress?;FALSE;

Color;2;

Layer;1;

};

(Child) ug_arc_0:{ Class; ug_arc;

radius;RR1:;

Start_Angle;NormalizeAngle(0+an_x:);

End_Angle;if (ug_arc_0:Start_Angle:>NormalizeAngle(90+an_x:)) then NormalizeAngle(90+an_x:)+360

else NormalizeAngle(90+an_x:);

Center;pt_to_pt(Point(B:-RR1:,S:-RR1:,0),x_p:,an_x:);

X_Axis;Vector(1,0,0);

Y_Axis;Vector(0,1,0);

Color;2;

Layer;1;

Suppress?;FALSE;

};

(Child) ug_line_1: { Class; ug_line;

start_point;pt_to_pt(Point(B:-RR1:,S:,0),x_p:,an_x:);

end_point;pt_to_pt(Point(S:+RR:,S:,0),x_p:,an_x:);

Suppress?;FALSE;

Color;2;

Layer;1;

};

# найдем приближенный центр дуги как точку пересечения перпендикуляров к концам

# соседних линий

(point) cent: interLineLine(Point(S:,S:+RR:,0),vector(1,0,0),ug_line_1:end_point:,

perpendicular(ug_line_1:start_point:-ug_line_1:end_point:));

(Child) ug_arc_1:{ Class; ug_arc;

# определим радиус как дистанцию от центра до конца одной из линий

radius;max(dist(ug_line_1:end_point:,cent:),dist(ug_line_02:start_point:,cent:));

# вычислим углы между векторами Х и от центра дуги к концам линий

Start_Angle;angle2vectors(vector(1,0,0),Point(S:,S:+RR:,0)-ug_arc_1:center:,vector(0,0,1));#180;

End_Angle;angle2vectors(vector(1,0,0),ug_line_1:end_point:-ug_arc_1:center:,vector(0,0,1));#270+an_x:;

# найдем новый центр по 2-м точкам и радиусу

Center;ArcCenter2Point(Point(S:,S:+RR:,0),ug_line_1:end_point:,

ug_arc_1:radius:,vector(0,0,1),False);

X_Axis;Vector(1,0,0);

Y_Axis;Vector(0,1,0);

Color;2;

Layer;1;

Suppress?;FALSE;

};

# добавочная линия - потом заменить на дугу

(Child) ug_line_02: { Class; ug_line;

start_point;Point(S:,S:+RR:,0);

end_point;ug_line_2:start_point:;

Suppress?;FALSE;

Color;2;

Layer;1;

};

#верт. полка

(Child) ug_line_2: { Class; ug_line;

start_point;pt_to_pt(Point(S:,S:+RR:,0),y_p:,an_y:);

end_point;pt_to_pt(Point(S:,HH:-R:-XX:,0),y_p:,an_y:);

Suppress?;FALSE;

Color;2;

Layer;1;

};

(Child) ug_arc_2:{ Class; ug_arc;

radius;RR2:;

#Start_Angle;180-AA:;

#End_Angle;180;

Start_Angle;NormalizeAngle(180-AA:+an_y:);

End_Angle;if (ug_arc_2:Start_Angle:>NormalizeAngle(180+an_y:)) then NormalizeAngle(180+an_y:)+360

else NormalizeAngle(180+an_y:);

Center;pt_to_pt(Point(S:+RR2:,HH:-R:-XX:,0),y_p:,an_y:);

X_Axis;Vector(1,0,0);

Y_Axis;Vector(0,1,0);

Color;2;

Layer;1;

Suppress?;FALSE;

};

(Child) ug_arc_3:{ Class; ug_arc;

radius;R:;

# Start_Angle;360-AA:;

# End_Angle;540;

Start_Angle;NormalizeAngle(360-AA:+an_y:);

End_Angle;if (ug_arc_3:Start_Angle:>NormalizeAngle(540+an_y:)) then NormalizeAngle(540+an_y:)+360

else NormalizeAngle(540+an_y:);

Center;pt_to_pt(Point(R:,HH:-R:,0),y_p:,an_y:);

X_Axis;Vector(1,0,0);

Y_Axis;Vector(0,1,0);

Color;2;

Layer;1;

Suppress?;FALSE;

};

(Child) ug_line_03: { Class; ug_line;

start_point;pt_to_pt(Point(0,HH:-R:,0),y_p:,an_y:);

end_point;pt_to_pt(Point(0,S:+RR:,0),y_p:,an_y:);

Suppress?;FALSE;

Color;2;

Layer;1;

};

# добавочная линия - потом заменить на дугу

(Child) ug_line_003: { Class; ug_line;

start_point;ug_line_03:end_point:;

end_point;ug_line_3:start_point:;

Suppress?;FALSE;

Color;2;

Layer;1;

};

# пятка

(Child) ug_line_3: { Class; ug_line;

start_point;Point(0,S:+RR:,0);

end_point;Point(0,0,0);

Suppress?;FALSE;

Color;2;

Layer;1;

};

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


О, знакомая программа - тож когда то с неё начинал освоение KF.

Можно сказать, на ней же и закончил...

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

Очень содержательный комментарий :)

насколько мне известно, написано приложение сотрудником сименс, кое что допиливалось потом на ИАЗе под конкретные нужды.

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

Можете прислать начало кода и подробно расписать процесс создания.

Что-то мне подсказывает проблема в задающих параметрах

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

Простите, долго не заходил на форум, так как уже не ожидал каких либо ответов.

Вообще эта программа состоит из нескольких dfa-файлов, могу скинуть в архиве всю программку на файло-обменник или на почту.

вдруг она Вам пригодится. Жду мыло в личку или другие предложения.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • vad0000
      Если Вы курсор поставите на OUTPUT 0, и колесом начнёте увеличивать напряжение на аналоговом выходе, то ось Х поедет, или нет?
    • lexa345
      Если фрезерный, то спросите у @andrev  возможно поделиться   
    • Bot
      Семинары «BIM-Практикум 2024» пройдут весной и летом этого года в четырнадцати городах в России и Беларуси. На мероприятии представители строительной отрасли расскажут об опыте применения технологии информационного моделирования в регионе. Российские разработчики представят новые возможности цифровых решений для проектирования и управления строительством. У участников будет возможность обменяться мнением и опытом, проконсультироваться с экспертами отрасли и установить полезные контакты. Зачем Сегодня на развитие строительной отрасли влияют как внутренние факторы, включая небольшой опыт ведения проектов с использованием технологии информационного моделирования, недостаток квалифицированных специалистов, высокую стоимость ошибок, так и внешние обстоятельства: новые государственные требования, риски, связанные с информационной безопасностью, и уход западных вендоров. Участники семинара узнают, как справиться с этими вызовами, в том числе на примере компаний, которые [...] View the full article
    • MOPKOBKA555
      А есть ли возможность в cnckad разделить программу на части? Например сразу обрабатываем 9-ю инструментами, а с новой программы еще недостающими?
    • coolparty
      Привет. Задача - расположить массив отверстий по кривой. Сделал модель из нескольких кривых, не понимаю, как их объединить в одну, пробовал сделать через "объединенная кривая", но при выборе ее в качестве пути, все равно выбирается по сегментно. Всю голову уже сломал.  
    • Bot
      3 и 4 апреля в Екатеринбурге и Челябинске состоялась конференция «Российский программный комплекс T-FLEX PLM: современные методы и подходы к проектированию изделий», организатором которой выступила компания «Топ Системы». Во время мероприятия представители компании «Топ Системы» — генеральный директор Сергей Кураксин и заместитель генерального директора по развитию PLM-технологий Игорь Кочан — представили текущие итоги реализации проектов у заказчиков из различных отраслей машиностроения, поделились перспективами развития программного комплекса T-FLEX PLM, продемонстрировали функциональные возможности перспективных разработок САПР T-FLEX CAD и платформы T-FLEX DOCs по управлению данными и жизненным циклом изделия. В Челябинске вызвал живой интерес доклад Романа Ткачука, начальника отдела САПР, АЗ УРАЛ, во время которого представитель заказчика рассказал о проектном опыте перехода с иностранных систем на комплекс T-FLEX PLM. Цель проекта заключалась в переводе [...] View the full article
    • roiman
      Не одно и тоже, нет?     Не одно и тоже, нет?   Я про это и писал, что вместо того, чтобы решать реальную производственную задачу, мы занимаемся словесной казуистикой. Задача не поставлена, но решение её требуется. А может и не требуется. Начальник сказал попробовать спросить. А может что-то другое. Ценится только своё время, а не чужое...   Ещё раз. Если сложить пазл из данных статьи и вашу картинку, то профиль не может никак участвовать в уравнениях. У вас идёт контакт зуба с роликом цепи. И их положение относительно друг друга не меняется в зависимости от угла поворота "кулачка". И всё натяжение цепи передаётся на пантограф через этот контакт зуба с роликом. Задача профиля - обеспечить натяжение цепи.   Но это, опять же догадки. Потому что непонятно, что это за 2-а других отверстия. Может там не просто поворот этого "кулачка", а его плоское движение.     P.S. Вы зря удалили статью. Я никакого отношение не имею ни к УКВЗ, ни ПК ТС. Опасаться нечего.
    • Александр1979
      На первый взгляд параметры конфигурации осей B, C корректные. У вас станочный ноль осей X, Y находится по центру поворотной оси C?
    • lem_on
    • gudstartup
      какая величина отклонения при развороте плоскости оси b ? кинематику станка проверяли прямолинейность перпендикулярность осей xyz точность поворота осей b и с? 
×
×
  • Создать...