Jump to content

Создание STEP файла в текстовом редакторе


Recommended Posts

lenivaya10001

Хочу создать В ТЕКСТОВОМ РЕДАКТОРЕ несложный STEP файл, который содержит кубическую кривую безье(заданую через 4 точки... начало , рычаг , рычаг, конец), всего 12 координат, чтобы потом можно было посмотреть созданую модель в просмотрщиках step файлов.

 

Как это сделать? Где прочитать конкретную информацию(синтаксис описания кривой безье для формата STEP)?

 

НЕ НАДО давать сылку на спецификацию глобально, если не знаете конкретного места.

http://www.steptools.com/library/standard/в состоянии найти самостоятельно

 

конкретный синтаксис приветствуется. конечный файл будет содержать только пространственые кубические кривые безье

Если подскажете как задать цвет и толщину, еще лучше, но по минимуму достаточно просто показать кривую.

Edited by lenivaya10001
Link to post
Share on other sites


a_schelyaev

Нарисуйте в CAD системе, сохраните в STEP.

Откройте файл в Блокноте и читайте.

Edited by a_schelyaev
Link to post
Share on other sites
lenivaya10001

могу создать дугу окружности при помощи freecad , потом конвертировать/экспортировать в STEP. файл работает но выглядит он так

ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('FreeCAD Model'),'2;1');
FILE_NAME('D:/_DESKTOP_TRASH/vedit/arc.step','2016-09-29T17:28:03',(
    'Author'),(''),'Open CASCADE STEP processor 6.8','FreeCAD','Unknown'
  );
FILE_SCHEMA(('AUTOMOTIVE_DESIGN_CC2 { 1 2 10303 214 -1 1 5 4 }'));
ENDSEC;
DATA;
#1 = APPLICATION_PROTOCOL_DEFINITION('committee draft',
  'automotive_design',1997,#2);
#2 = APPLICATION_CONTEXT(
  'core data for automotive mechanical design processes');
#3 = SHAPE_DEFINITION_REPRESENTATION(#4,#10);
#4 = PRODUCT_DEFINITION_SHAPE('','',#5);
#5 = PRODUCT_DEFINITION('design','',#6,#9);
#6 = PRODUCT_DEFINITION_FORMATION('','',#7);
#7 = PRODUCT('ASSEMBLY','ASSEMBLY','',(#8));
#8 = MECHANICAL_CONTEXT('',#2,'mechanical');
#9 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#10 = SHAPE_REPRESENTATION('',(#11,#15),#19);
#11 = AXIS2_PLACEMENT_3D('',#12,#13,#14);
#12 = CARTESIAN_POINT('',(0.E+000,0.E+000,0.E+000));
#13 = DIRECTION('',(0.E+000,0.E+000,1.));
#14 = DIRECTION('',(1.,0.E+000,-0.E+000));
#15 = AXIS2_PLACEMENT_3D('',#16,#17,#18);
#16 = CARTESIAN_POINT('',(0.E+000,0.E+000,0.E+000));
#17 = DIRECTION('',(0.E+000,0.E+000,1.));
#18 = DIRECTION('',(1.,0.E+000,0.E+000));
#19 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#23)) GLOBAL_UNIT_ASSIGNED_CONTEXT(
(#20,#21,#22)) REPRESENTATION_CONTEXT('Context #1',
  '3D Context with UNIT and UNCERTAINTY') );
#20 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#21 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#22 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#23 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-007),#20,
  'distance_accuracy_value','confusion accuracy');
#24 = PRODUCT_TYPE('part',$,(#7));
#25 = GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION('',(#11,#26),
  #35);
#26 = GEOMETRIC_CURVE_SET('',(#27));
#27 = TRIMMED_CURVE('',#28,(#33,PARAMETER_VALUE(3.314942)),(#34,
    PARAMETER_VALUE(6.86645930718)),.T.,.PARAMETER.);
#28 = CIRCLE('',#29,67.040513);
#29 = AXIS2_PLACEMENT_3D('',#30,#31,#32);
#30 = CARTESIAN_POINT('',(6.688268,1.672045,0.E+000));
#31 = DIRECTION('',(0.E+000,0.E+000,1.));
#32 = DIRECTION('',(1.,0.E+000,-0.E+000));
#33 = CARTESIAN_POINT('',(-59.34748130992,-9.891267517623,0.E+000));
#34 = CARTESIAN_POINT('',(62.644566700236,38.595249344601,0.E+000));
#35 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#39)) GLOBAL_UNIT_ASSIGNED_CONTEXT(
(#36,#37,#38)) REPRESENTATION_CONTEXT('Context #1',
  '3D Context with UNIT and UNCERTAINTY') );
#36 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#37 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#38 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#39 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-007),#36,
  'distance_accuracy_value','confusion accuracy');
#40 = SHAPE_DEFINITION_REPRESENTATION(#41,#25);
#41 = PRODUCT_DEFINITION_SHAPE('','',#42);
#42 = PRODUCT_DEFINITION('design','',#43,#46);
#43 = PRODUCT_DEFINITION_FORMATION('','',#44);
#44 = PRODUCT('Sketch','Sketch','',(#45));
#45 = MECHANICAL_CONTEXT('',#2,'mechanical');
#46 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#47 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#48,#50);
#48 = ( REPRESENTATION_RELATIONSHIP('','',#25,#10) 
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#49) 
SHAPE_REPRESENTATION_RELATIONSHIP() );
#49 = ITEM_DEFINED_TRANSFORMATION('','',#11,#15);
#50 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#51);
#51 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('1','=>[0:1:1:2]','',#5,#42,$);
#52 = PRODUCT_TYPE('part',$,(#44));
#53 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#54),
  #35);
#54 = STYLED_ITEM('color',(#55),#26);
#55 = PRESENTATION_STYLE_ASSIGNMENT((#56,#62));
#56 = SURFACE_STYLE_USAGE(.BOTH.,#57);
#57 = SURFACE_SIDE_STYLE('',(#58));
#58 = SURFACE_STYLE_FILL_AREA(#59);
#59 = FILL_AREA_STYLE('',(#60));
#60 = FILL_AREA_STYLE_COLOUR('',#61);
#61 = COLOUR_RGB('',0.800000011921,0.800000011921,0.800000011921);
#62 = CURVE_STYLE('',#63,POSITIVE_LENGTH_MEASURE(0.1),#61);
#63 = DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
ENDSEC;
END-ISO-10303-21;

это отягощяет... :)


Нарисуйте в CAD системе, сохраните в STEP.

Откройте файл в Блокноте и читайте.

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

Link to post
Share on other sites

А как вы хотели? Вообще с точки зрения пользователя есть много не обязательных параметров, но некоторые CAD потом отказываются без них открывать.

 

 

 

НЕ НАДО давать сылку на спецификацию глобально, если не знаете конкретного места. http://www.steptools...brary/standard/всостоянии найти самостоятельно

Чем вас конкретно не устраивает? Сам по нему учился создавать STEP.

Там есть бисплайновые кривые. А можно ли задавать так как вы хотите, это надо изучать.

Там есть описания всех элементов и их параметров (http://www.steptools.com/support/stdev_docs/stpcad/html/index.html внизу переключиться на Entity).

 

 

где там кривая

 

Вы же сами написали что у вас дуга:

 

#28 = CIRCLE('',#29,67.040513);

 

Тип (Имя, Ссылка на ось, Угловой размер)

Edited by Ruslan
Link to post
Share on other sites
lenivaya10001

А как вы хотели? Вообще с точки зрения пользователя есть много не обязательных параметров, но некоторые CAD потом отказываются без них открывать.

 

 

 

Чем вас конкретно не устраивает? Сам по нему учился создавать STEP.

Там есть бисплайновые кривые. А можно ли задавать так как вы хотите, это надо изучать.

хотелось бы как нибудь вот так чтобы выглядело

box=createbox(width,length,height)

list=[x0,...,x11]=[12,...,12.5]

curve=createcurve(beziercubic,list)

box.add(curve)

box.show

а не эта героиновая стоэтажная разметка :)

видимо у меня слабый ум, и мне кажется что создавать такие, КАК ПОКАЗАНО ВЫШЕ В КОДЕ ИЗ ФАЙЛА, способы отображения одной кривой(еще и плоской, части окружности)... яркий пример нездорового ума. Ну или просто ребата хотят чтобы кроме них никто не понимал как это сделать удобно.

Link to post
Share on other sites

Почему вы не хотите просто создавать кривую в CAD и сразу видеть результат.

Зачем собирать такой файл вручную?

 

box=createbox(width,length,height) list=[x0,...,x11]=[12,...,12.5] curve=createcurve(beziercubic,list) box.add(curve) box.show

Это уже похоже на программу, а не на геометрию. Если так нужно может стоит все таки потратить время и написать ее? 

 

Есть кривая базье:

Entity bezier_curve has the following local and inherited explicit attributes:
Attribute Type Defined By
name label (STRING) representation_item
degree INTEGER b_spline_curve
control_points_list LIST OF cartesian_point (ENTITY) b_spline_curve
curve_form b_spline_curve_form (ENUM) b_spline_curve
closed_curve LOGICAL b_spline_curve
self_intersect LOGICAL

 

Link to post
Share on other sites
lenivaya10001

А как вы хотели? Вообще с точки зрения пользователя есть много не обязательных параметров, но некоторые CAD потом отказываются без них открывать.

 

 

 

Чем вас конкретно не устраивает? Сам по нему учился создавать STEP.

Там есть бисплайновые кривые. А можно ли задавать так как вы хотите, это надо изучать.

Там есть описания всех элементов и их параметров (http://www.steptools.com/support/stdev_docs/stpcad/html/index.html внизу переключиться на Entity).

 

 

 

Вы же сами написали что у вас дуга:

 

Тип (Имя, Ссылка на ось, Угловой размер)

дуга нарисована во фрикаде и экспортирована для примера... а мне нужна кубическая кривая безье... даже квадратичная не подойдет... дуга тем более... и кривая безье не плоская а изогнута в пространстве(опорные точки не находятся в одной плоскости)

Почему вы не хотите просто создавать кривую в CAD и сразу видеть результат.

Зачем собирать такой файл вручную?

 

 

 

Это уже похоже на программу, а не на геометрию. Если так нужно может стоит все таки потратить время и написать ее? 

 

Есть кривая базье:

по поводу програмы, уже есть все... внутри кода python , список кривых заданых 12 параметрами каждая... надо бы их выдавить в формат STEP , без постороних модулей, поэтому нужен имено синтаксис создания кривой безье...потом я его как шаблон запихну в код и на выходе будет шаблон + цифры... но нужен костяг, имено четкая последовательность записи... а где она в этом документе?

Почему вы не хотите просто создавать кривую в CAD и сразу видеть результат.

Зачем собирать такой файл вручную?

 

 

 

Это уже похоже на программу, а не на геометрию. Если так нужно может стоит все таки потратить время и написать ее? 

 

Есть кривая базье:

Вот, например, есть запись

CIRCLE('',#29,67.040513);

Как эта строка будет выглядеть для кубической кривой безье? и где я могу это прочитать? вот в чем вопрос :)

по сылке на спецификацию вообще все переменые строчными буквами обозначены и ни одного примера.

Link to post
Share on other sites

На сайте есть подключаемые библиотеки для C++

Для других языков придется с порядком разбираться самому.

 

Я писал для скриптового языка, правда не кривые а тела. Но по примерам из файла и описаниям ключей с этого сайта разобрался.

 

Мне кажется если какой элемент и подходит, то это B_SPLINE_CURVE_WITH_KNOTS 

#41=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));  Точки на кривой
#43=CARTESIAN_POINT('',(1.E1,0.E0,0.E0)); Точки на кривой
#44=CARTESIAN_POINT('',(0.E0,1.E1,0.E0)); Точки на кривой
#45=CARTESIAN_POINT('',(0.E0,0.E0,1.E1)); Точки на кривой

#46=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));  Узловые точки
#47=CARTESIAN_POINT('',(7.702200572599E0,-2.642977396045E0,5.255016145682E-1));Узловые точки
#48=CARTESIAN_POINT('',(1.373773447853E1,-9.763107293782E-1,0.E0));Узловые точки
#49=CARTESIAN_POINT('',(-1.666666666667E0,1.333333333333E1,-1.666666666667E0));Узловые точки
#50=CARTESIAN_POINT('',(-6.380711874577E0,1.057190958418E1,3.768673124940E0));Узловые точки
#51=CARTESIAN_POINT('',(0.E0,0.E0,1.E1));Узловые точки

#52=B_SPLINE_CURVE_WITH_KNOTS('',3,(#46,#47,#48,#49,#50,#51),.UNSPECIFIED.,.F.,
.F.,(4,1,1,4),(0.E0,2.612038749637E-1,6.306019374819E-1,1.E0),.UNSPECIFIED.);
#53=COMPOSITE_CURVE_SEGMENT(.CONTINUOUS.,.T.,#52);
#54=COMPOSITE_CURVE('',(#53),.F.);
#42=GEOMETRIC_CURVE_SET('',(#41,#43,#44,#45,#54));

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

 

Естественно что это только сама кривая. Еще нужна шапка и некоторые дополнительные параметры.

Edited by Ruslan
Link to post
Share on other sites

B_SPLINE_CURVE_WITH_KNOTS('',3,(#46,#47,#48,#49,#50,#51),.UNSPECIFIED.,.F.,
.F.,(4,1,1,4),(0.E0,2.612038749637E-1,6.306019374819E-1,1.E0),.UNSPECIFIED.);

 

3  - Степень

#46,#47,#48,#49,#50,#51  - узловые точки

UNSPECIFIED - тип кривой (polyline_form,     circular_arc,     elliptic_arc,     parabolic_arc,     hyperbolic_arc,     unspecified)

F - false, не закрытая кривая

F - false, не самопересекается

(4,1,1,4)  - кратности узлов

0.E0,2.612038749637E-1,6.306019374819E-1,1.E0  - значение узлов?

UNSPECIFIED - тип узлов (uniform_knots,     unspecified,     quasi_uniform_knots,     piecewise_bezier_knots)

Link to post
Share on other sites
Ветерок

Зачем создавать СТЕП? Сам по себе этот файл нигде не используется.

Чтобы открыть его в каком-то САПР?

Но если есть уравнение линии, то можно построить кривую по уравнению прямо в этой САПР (если это нормальный трехмерный САПР). Никакой СТЕП для этого не нужен.

 

Кстати, есть и другие форматы обмена...

Link to post
Share on other sites
lenivaya10001
Зачем создавать СТЕП?

 

в целом все выглядит так:

есть вебприложение, на джанго, болтается в интернете, иногда пользуюсь им

helpmedraw.pythonanywhere.com

Написано вообще с нуля, нет библиотек никаких стороних... функции созданы из формул википедии, форумов итд.

внутри него все модели(они все трехмерные) создаются как кубические кривые безье(когда надо, решается уравнение, не обязательно в плоскости), потом обсчитывается проекция и выдается на экран, для моих целей этого достаточно.

 

Подумываю дописать код , питон3, для того чтобы желающие могли экспортировать модель из базы даных или созданую лично модель, в формат STEP , так как для него вроде есть небольшие виверы бесплатные, повертеть посмотреть.

По сути модель это набор кубических кривых безье, и ничего больше... но чтото я не нахожу способа удобного, запихнуть их куда то чтобы вертелось в 3D

уже поглядываю на Pyopengl но там тоже муть мутная, или на webgl , но везде нет инфы...все очень секретно, только для професионалов.

Может есть какой способ удобный, для демонстрации 3D, не более чем повертеть пучок кривых, нуи цвет добавить. желательно без плагинов и тп. что нибудь встроеное в браузер или хотя бы стандартизированое и понятно описаное, с открытой лицензией?


На сайте есть подключаемые библиотеки для C++

Для других языков придется с порядком разбираться самому.

 

Я писал для скриптового языка, правда не кривые а тела. Но по примерам из файла и описаниям ключей с этого сайта разобрался.

 

Мне кажется если какой элемент и подходит, то это B_SPLINE_CURVE_WITH_KNOTS 

#41=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));  Точки на кривой
#43=CARTESIAN_POINT('',(1.E1,0.E0,0.E0)); Точки на кривой
#44=CARTESIAN_POINT('',(0.E0,1.E1,0.E0)); Точки на кривой
#45=CARTESIAN_POINT('',(0.E0,0.E0,1.E1)); Точки на кривой

#46=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));  Узловые точки
#47=CARTESIAN_POINT('',(7.702200572599E0,-2.642977396045E0,5.255016145682E-1));Узловые точки
#48=CARTESIAN_POINT('',(1.373773447853E1,-9.763107293782E-1,0.E0));Узловые точки
#49=CARTESIAN_POINT('',(-1.666666666667E0,1.333333333333E1,-1.666666666667E0));Узловые точки
#50=CARTESIAN_POINT('',(-6.380711874577E0,1.057190958418E1,3.768673124940E0));Узловые точки
#51=CARTESIAN_POINT('',(0.E0,0.E0,1.E1));Узловые точки

#52=B_SPLINE_CURVE_WITH_KNOTS('',3,(#46,#47,#48,#49,#50,#51),.UNSPECIFIED.,.F.,
.F.,(4,1,1,4),(0.E0,2.612038749637E-1,6.306019374819E-1,1.E0),.UNSPECIFIED.);
#53=COMPOSITE_CURVE_SEGMENT(.CONTINUOUS.,.T.,#52);
#54=COMPOSITE_CURVE('',(#53),.F.);
#42=GEOMETRIC_CURVE_SET('',(#41,#43,#44,#45,#54));

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

 

Естественно что это только сама кривая. Еще нужна шапка и некоторые дополнительные параметры.

у меня только 4 точки 12 координат... а здесь нужно 10 точек... тут явно лишнее движения есть... непохоже что это кривые безье. А конвертировать из безье в куб сплайн , нездоровая ситуация получится. да я не потяну конвертирование... этот то алгоритм струдом получился, и то на форуме(на другом) разжевал тот кто писал статью, и он рус говорящий, это был дополнительный плюс)

Link to post
Share on other sites
Ветерок
запихнуть их куда то чтобы вертелось в 3D

3D PDF и вообще не надо никаких вьюеров кроме обычного бесплатного Адоб Ридера.

 

чтобы желающие могли экспортировать модель

а есть хоть кто-то "желающий" этого?

 

Какие-то немотивированные девичьи фантазии. Типа сферического коня в вакууме.

Edited by Ветерок
Link to post
Share on other sites
а здесь нужно 10 точек... тут явно лишнее движения есть... непохоже что это кривые безье.

 

Это только пример. Кривой имеющей 4 точки и 6 точек полигона. Отсюда и 10.  Для двух точек и двух точек полигона (4 на самом деле в вашем случае) будет короче. Степень кривой (квадратичная, кубичная кривая базье или более высоких порядков) задается тоже. Я же расписал ключи функции...

Edited by Ruslan
Link to post
Share on other sites
lenivaya10001
3D PDF и вообще не надо никаких вьюеров

 

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

https://youtu.be/Zv9a_wMJMe4?t=5m53s

этого функционала достаточно в моем случае

всем спасибо за терпение... надо теперь присмотреться к найденому

Я же расписал ключи функции
  благодарю за старание)
:worthy:

:poster_dont:

https://youtu.be/Zv9a_wMJMe4?t=5m53sдумаю это подойдет, если разобраться

Link to post
Share on other sites
  • 8 years later...
maxfox

Ребята, подскажите кому известно, как правильно построить сплайн из степ файла.

#281=B_SPLINE_CURVE_WITH_KNOTS('',3,
(#304,#305,#306,#307,#308,#309,#310,#311,#312,#313)
,.UNSPECIFIED.,.F.,.F.,
(4,3,3,4), // - КАК испольоать этот набор данных??
(0.0,1.0,2.0,3.0)
,.UNSPECIFIED.);

- геометрически сплайн строится нормально по заданным точкам, как безье кривая 3-го порядка. Но вот распределение вдоль кривой получается неравномерное. т.е. если в нормированном диапазоне [0..1], построить точку U=0.3, то координаты на моей кривой и на кривой в САПР - разные.
Я подозреваю, что надо как то включать в алгоритм, массив под названием "кратность узлов" - но я не нашел информации - как его использовать?

Link to post
Share on other sites
Ветерок
12 часов назад, maxfox сказал:

построить

Построить где? На строительной площадке выложить кирпичами?

12 часов назад, maxfox сказал:

безье кривая 3-го порядка

Почему Безье, а не NURBS? У них разная математика и разная геометрия. Большинство кадов использует NURBS.

12 часов назад, maxfox сказал:

координаты на моей кривой и на кривой в САПР - разные.

Смотри выше.

И что такое "твоя кривая", и что такое "кривая в САПР"? В каком САПР? Какая кривая?

Link to post
Share on other sites
maxfox

хм... причем здесь строительная площадка?

В данных из СТЕП-файла задана кривая "B_SPLINE_CURVE_WITH_KNOTS" третей степени. Кривая разбивается на три части, каждая из которых описывается би-сплайном из 4-х узлов, и степени 3 - что соответствует кривой безье 3-й степени. Формула для построения такого сплайна известна и дана в литературе:
C(u) = (1-u)3 Po+3u(1-u)2 Pl +3u2(1-u) P2+U3 P3.
То, есть я построил кривую в САПР и сгенерировал СТЕП-файл. Теперь по данным Степ-файла я хочу построить такой сплайн по формуле. По моему не суть важно, какой САПР и где строить, но если вдруг - то САПР-Топсолид, и сам теперь строю на С++.
Сам сплайн получился замечательно, но для построения мне хватило просто набора узловых точек из СТЕП. А вот для чего нужны два другие массива, заданные в СТЕП?
И возможно эти данные отвечают за нормализацию сплайна? Потому что когда я строю сплайн по этой параметрической формуле, то шаг сегментов получается разный, т.е, при нормированной длине сплайна [0..1], значение точки u=0.25 - это у меня не четверть сплайна, 0.5 - это не половина сплайна, и.т.д.
Вот я и хочу узнать - возможно эти массивы данных в СТЕП - как то могут помочь?

пик1.PNG

пик0.PNG

Link to post
Share on other sites
(4,3,3,4), // - КАК испольоать этот набор данных??
(0.0,1.0,2.0,3.0)

4,3,3,4 - кратность кнотов

0.0,1.0,2.0,3.0 - значения кнотов.

 

Т.е. эта кривая состоит из 10 контрольных точек в области определения [0,3].

 

ps

И это не кривая Безье, а сплайн Безье. Кривая Безье 3-ей степени опишется таким набором:

(4,4) и (a,b)

 

pps

Вот пример:

#210960=B_SPLINE_CURVE_WITH_KNOTS('',3,
(#241178,#241179,#241180,#241181),
.UNSPECIFIED.,.F.,.F.,
(4,4),
(0.,1.),
.UNSPECIFIED.);
 

ppps

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

#209554=B_SPLINE_CURVE_WITH_KNOTS('',3,
(#236089,#236090,#236091,#236092,#236093,#236094),
.UNSPECIFIED.,.F.,.F.,
(4,1,1,4),
(0.,0.333333333333333,0.666666666666667,1.),
.UNSPECIFIED.);
 

Edited by Sharachov
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Сообщения

    • SergAG
      Никак не могу запомнить логику взаимосвязи тел в многотельной детали после их сохранения в отдельные файлы. Если я меняю инструмент разделения, то сопрягаемые поверхности переносятся на новые места в любом случае. Это понятно. Но это происходит, пока я не поменяю деталь-потомок, да? То есть пририсовал к ней бобышку - связь с родителем нарушилась?  И еще. Разделил корпус на две детали, сохранил в отдельных файлах. Потом в родительской что-то дополняю, смотрю в сохраненную часть многотела - а там нет этих изменений. Есть способы, чтобы как в сборке это было: изменил деталь в сборке - она поменялась в отдельном файле
    • kkk
      Редко пользуюсь этой опцией, но, по воспоминаниям, вроде тоже нагружало комп.
    • david1920
      В самом датчике RMS pic контроллер стоит
    • SHARit
    • A_1
      Здравствуйте. Попробуйте включить корректор на длину инструмента в одном кадре вместе с перемещением по Z: G43 Z200. H16 Ваш станок, видимо, выполняет коррекцию на длину инструмента "за счёт перемещения по оси", а не "за счёт сдвига системы координат". За это отвечает параметр 5006 #6 (TOS).
    • maxx2000
      @The_22nik учитывая склероз SW и прочие его чудачества, я бы не стал этим кичиться. Из каждой вырезать долго, но лучше
    • Viktor2004
      Здесь другая ситуация. Мы с автором уже говорили. Тут не так просто как было в телеге Не исключаю что даже крипточип стоит
    • GStesik
      Здравствуйте уважаемые, я похоже чет делаю не так. У меня китайский станок Weida VMC 640 с  Renisaw . Все то же самое только имена программ Renisaw немного другие.  Когда я пишу цикл измерения заготовки по оси Z то перед вызовом программы Renisaw нужно сделать смещение инструмента согласно таблицы вылета инструмента в стойке.  В случае если инструмент в данный момент стоит в машинном 0 то ему некуда смещается физически. Машинный ноль находится в верху, вниз идут отрицательные значения Z. Инструментальный ноль относительно которого я считаю вылет инструмента находится в торце шпинделя. Я придумал временный костыль при котором станок выходит в машинный ноль по Z потом опускается на немного большее расстояние чем вылет моего датчика, чтобы тот в последующем мог обратно подняться при команде смещения инструмента. после чего запускается программа Renisaw.  Мне кажется что это не правильно так как если операторы засунут высокую деталь в станок то датчик ее ударит при этих дерганьях. Я что-то усложняю? наверное есть простое решение ? Можно ли смешать инструмент без физического уезжания шпинделя на величину смещения, чтобы он на стойке просто координаты менял...   Вот мой цикл, Комментарии писал для форума. в программе их нет.   % O0020 (имя программы) M6T16 (взяли датчик Ренишоу из 16-того слота) M91 (включили датчик) G0G53G90Z0 (поехали в машинный ноль) M19 (сделали ориентацию шпинделя) G0G91Z-225 (поехали в низ на 225 мм.) G43H16 (указали вылет датчика он 223мм с мелочью. Шпиндель поехал вверх на 223 мм) G65P9811Z0S1 (программа Ренишоу. Обмер по оси Z, полученные данные подставим в z точки G54) M91 (выключаем датчик) M30 (конец проги) %   P.C. Всем привет из Минска!
    • clavr
      И после этого солид страшно тупит. У меня сборка из 200 деталей. из-за этих "вырезов" перестроение до 10мин((((
    • zerganalizer
      В-общем - стабилен только один алгоритм, и он самый медленный, зато новые установки - настроить радиус кривизны в носике и угол касательной - сделали ещё более точную копию тестовой кривулины и вписывает более гладко. Теперь носик замечательно копируется, а хвостик СОВСЕМ не проседает. Я ещё понастраиваю и погоняю конфигуратор профиля и попробую собирать результат вне катии - весь фреймворк для этого я уже написал и протестил.  
×
×
  • Create New...