Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Построение выкроек на компьютере


 

 

Добрый день!

 


На сайте выложено обновление программы для самостоятельного конструирования ЛЕКО 8.9. Расширены функции операторов "разделить****" (разделть, разделить_н, разделить_кс, разделить_ксу). Часто эти операторы используются для модификации линии участка лекала (например, выравнивание длин или моделирование). При использовании этих операторов, особенно разделить_н, нужно следить, чтобы соблюдались условия и точка разделения была на линии, иначе возникает ошибка построения. Если рассматривать градацию на широкий диапазон размеро-ростов или построение на индивидуальные размеры, то предсказать заранее все варианты взаиморасположения точек достаточно сложно. Для решения этой задачи вводятся расширения операторов разделения. Первое - это проверка условия, что разделение выполняется (без самого разделения)

если разделить_н(С_Т221_Т91Н,Н1,[ Т20НН:Т91НН ].ф) то
разделить_н(С_Т221_Т91Н,Н1,[ Т20НН:Т91НН ].ф,н4,Т221_н4,н4_Т91Н);
иначе
пересечение_н(Н1,[ Т20НН:Т91НН ].ф,Т91Н,С_Т221_Т91Н.ф2,н4);
конец_если;

Подразумевается, что мы знаем о том, что проблема может возникнуть в окрестности второго конца сплайна. Если условие выполняется и линию можно разделить, то мы ее делим, если не выполняется, то мы ищем точку пересечения направлений вдоль касательной во второй точке сплайна. В данном примере считалось, что нам нужна была только точка н4 и разделенные участки Т221_н4 и н4_Т91Н были не нужны для дальнейших построений. Если, допустим, нужен первый участок, то в случае отсутствия пересечения сплайна и направления мы можем оформить участок ломаной, как в следующем примере:

если разделить_н(С_Т222_Т92Н,Н4,0) то
разделить_н(С_Т222_Т92Н,Н4,0,н3,Т222_н3,н3_Т92Н);
иначе
пересечение_н(Н4,0,Т92Н,С_Т222_Т92Н.ф2,н3);
Т222_н3:=ломаная(С_Т222_Т92Н,н3);
конец_если;

Можно проблему отсутствия пересечения решить по другому: заранее продлить линию, так чтобы пересечение гарантировано было (продлили сплайн во второй точке вдоль касательной на 50 см)

Лн_1:=ломаная(С_Т222_Т92Н, отложить(Т92Н, С_Т222_Т92Н.ф2,50));
разделить_н(Лн_1,Н4,0,н3,Т222_н3,н3_Т92Н);

это можно записать как

разделить_н(ломаная(С_Т222_Т92Н, отложить(Т92Н,С_Т222_Т92Н.ф2,50)),Н4,0,н3,Т222_н3,н3_Т92Н);

или опустить слово "ломаная"

разделить_н( (С_Т222_Т92Н, отложить(Т92Н, С_Т222_Т92Н.ф2,50)),Н4,0,н3,Т222_н3,н3_Т92Н);

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

разделить_н( С_Т222_Т92Н, Н4,0,н3,Т222_н3,н3_Т92Н);

то точка н3 будет принадлежать участкам Т222_н3,н3_Т92Н и линии С_Т222_Т92Н.

при записи

разделить_н( (С_Т222_Т92Н, отложить(Т92Н, С_Т222_Т92Н.ф2,50)),Н4,0,н3,Т222_н3,н3_Т92Н);

точка н3 будет принадлежать участкам Т222_н3,н3_Т92Н но не будет принадлежать линии С_Т222_Т92Н, так как делится временно созданная ломаная. Это может быть важно при установке точек надсечек.

Версия 8.9 выложена на сайте http://lekala.info/leko/dn.html

 

Если у вас есть пожелания, то вы можете высказать их у нас на форуме.

 


 

 Если Вас интересует дополнительная информация   - пишите leko@lekala.info нам.

Посетите наш сайт www.lekala.info


В избранное