IgP 107 Опубликовано: 10 ноября 2010 Жалоба Рассказать Опубликовано: 10 ноября 2010 Вот файл с решением задачки .... Правда на каждую "позицию" (шаг) необходимо сделать по 3 дополнительных операции. Цитата Ссылка на сообщение Поделиться на других сайтах
nut888 3 Опубликовано: 10 ноября 2010 Жалоба Рассказать Опубликовано: 10 ноября 2010 Что-то не получилось у меня, на пункте Выдал: The specified string contains a syntax error Syntax error between here (List modifable) pts: For and here $a From 0 To n: By 1; Скопировал не полностью Вот примерно такой формат у цикла Loop { For $a From 0 To n: By 2; Append $a; } Первую строку я пропустил А вообще там создании аттрибута есть кнопка (Extended Text Entry) Она позволяет конструировать код выбирая алгоритмические конструкции из списка Тот вариант цикла что я привел соосветствует пункту Loop a specified number of times Да по поводу поворота через равные углы Я бы решил эту задачу просто интерполяцией Насчитал бы по кривой побольше точек через равные параметры и для каждой точки сосчитал угол Соответственно обратной интерполяцией по углу можно получить парамер Цитата Ссылка на сообщение Поделиться на других сайтах
nut888 3 Опубликовано: 10 ноября 2010 Жалоба Рассказать Опубликовано: 10 ноября 2010 Построения Фракталей с помощью KBE 1)Создайте текстовый файл например kox_poligon.dfa 2) Скопируйте туда следующий код #! NX/KF 4.0 DefClass: kox_polygon(ug_base_part); (Integer Modifiable Parameter) num_iter: 3; (Number Modifiable Parameter [mm]) rad: 17; (Vector) v_norm: Vector(0,0,1); (List Modifiable) start_pt_list: vertex_pts:(3); (List Modifiable) start_pp_list: Loop{ For $p From 1 To length(start_pt_list:); collect If($p<length(start_pt_list:)) Then { nth($p, start_pt_list:), nth(1+$p, start_pt_list:) } Else { nth($p, start_pt_list:), nth(1, start_pt_list:) }; }; (List Uncached Modifiable) list_pt: recursive_vertex_pts:(start_pp_list:, num_iter:); (List Uncached Modifiable) lines: loop{ for $p in list_pt:; for $l is ug_createInstance( { class, ug_line, Start_point, nth(1, $p), End_point, nth(2, $p) } ); collect $l; }; (List Uncached Modifiable Parameter) demandValue: { lines: }; ###################### (list method) vertex_pts:(Integer $npt) @{ $dfi << 360/$npt; $data << loop{ for $i from 1 to $npt; collect Point(rad:*sin($i*$dfi),rad:*cos($i*$dfi),0); }; $data; }; (vector method) cross:(vector $v1, vector $v2) @{ $vx<<LocalY($v1)*LocalZ($v2)-LocalY($v2)*LocalZ($v1); $vy<<LocalX($v2)*LocalZ($v1)-LocalX($v1)*LocalZ($v2); $vz<<LocalX($v1)*LocalY($v2)-LocalX($v2)*LocalY($v1); Vector($vx, $vy, $vz); }; (list method) recursive_vertex_pts:(List $ppt, Integer $depth) @{ $data<<If($depth<=0 || length($ppt)=0) Then $ppt Else Loop{ For $p In $ppt; For $pt1 Is nth(1,$p); For $pt2 Is nth(2,$p); For $v Is $pt2-$pt1; For $vn Is cross:(V_norm:, $v); append @{ $ptm1<<$pt1+1/3*$v; $ptm2<<$pt2-1/3*$v; $ptm<<$pt1+1/2*$v+sqrt(5)/6*$vn; $ll1<<recursive_vertex_pts:({{$pt1, $ptm1}}, $depth-1); $ll2<<recursive_vertex_pts:({{$ptm1, $ptm}}, $depth-1); $ll3<<recursive_vertex_pts:({{$ptm, $ptm2}}, $depth-1); $ll4<<recursive_vertex_pts:({{$ptm2, $pt2}}, $depth-1); $ll1+$ll2+$ll3+$ll4; }; }; $data; }; 3) В UG запустите Tools->KF->DFA Manager 4) В пункте New Dir дабавте директорий где лежит файл dfa 5) В правом списке (Choose Files For Syntax Check) появится список dfa файлов лежащих в выбранной директории 6) Выберете созданный dfa файл и добавте в нижний список (Collect of files for Syntax Check) 7) Нажмите Apply 8) Gthtqlbnt d yfdbufnjh KBE , встаньте на узел root и нажмите правую кнопку мыши , из списка выберете Add child Rule 9) Ввведите что-нибудь в поле name а в поле Name Filetr наберите k* 10) Из списка выберете kox_poligon 11) Apply Аттрибуты созданного класса rad и num_iter можно редактировать Цитата Ссылка на сообщение Поделиться на других сайтах
IBV 112 Опубликовано: 10 ноября 2010 Автор Жалоба Рассказать Опубликовано: 10 ноября 2010 Вот файл с решением задачки ....Не хватает файла det1.prt, по крайней мере я его в архиве не нашёл. Да и не решение это. И так понятно, что тело нужно повернуть и перенести вдоль оси X. Вы это делаете в сборке ручками перенося тело каждый раз в новую точку. Хлопотно, очень хлопотно. И очень долго. 4 витка, т.е. 120*4 = 480 точек На каждое новое тело 3 операции сопряжения - 1440 операций и это при дикой загруженности дисплея картинкой. Не дай бог где ошибка - или устанешь искать или всё по новой? Не, несерьёзно. Нужен автоматический вариант. Да по поводу поворота через равные углы Я бы решил эту задачу просто интерполяцией Очень нежелательно т.к. на шнеке получатся не равномерные поверхности. Да и потом, кривые заданы формулой т.е. найти точки через определённый градус не трудно. Коллеги, а может кто-нибудь написать универсальный инструмент для создания деталей подобного типа? Цитата Ссылка на сообщение Поделиться на других сайтах
nut888 3 Опубликовано: 10 ноября 2010 Жалоба Рассказать Опубликовано: 10 ноября 2010 Очень нежелательно т.к. на шнеке получатся не равномерные поверхности. Да и потом, кривые заданы формулой т.е. найти точки через определённый градус не трудно.Отчего же вопрос можно решить количеством точек в интерполяционной таблице наприме взять 100000 и будет Вам неплохая точность Также кроме линейной есть и более точные формулы для интерполирования Если кривая строится по закону то и строить ее целесообразно в KF - если она вообще там нужна Цитата Ссылка на сообщение Поделиться на других сайтах
IgP 107 Опубликовано: 10 ноября 2010 Жалоба Рассказать Опубликовано: 10 ноября 2010 Хлопотно, очень хлопотно. 4 витка, т.е. 120*4 = 480 точек Да, согласен. НО !!! если всегда будут 4 витка (или меньше) (или один раз сделать на большее кол-во витков) в моём варианте от IgP всё параметризовано и ассоциативно и в одном файле и файле Shnek_V01.ZIP - один единственный файл (не путайте с вариантом от avd !) и никакого файла det1 не требуется сам же массив создаётся одной операцией, и его можно редактировать, в том числе и заменять тело-инструмент (размножаемое тело) ХЛОПОТНО только создавать CSYS для каждого местоположения. исключение этой хлопотности, можно получить двумя путями: - написанием спец. программы для создания CSYS - воспользоваться предложением от nut888 с использованием KBE PS. Насчёт долго создавать по 3 дополнительных объекта - это можно и нужно делать с помощью "Сору Feature" Цитата Ссылка на сообщение Поделиться на других сайтах
ART 511 Опубликовано: 10 ноября 2010 Жалоба Рассказать Опубликовано: 10 ноября 2010 У меня возник вопрос, а почему не описать поверхность шнека математикой. Может у кого есть знакомые математики? Цитата Ссылка на сообщение Поделиться на других сайтах
avd 73 Опубликовано: 10 ноября 2010 Жалоба Рассказать Опубликовано: 10 ноября 2010 avd а файлик?забыл, старость не радость... Цитата Ссылка на сообщение Поделиться на других сайтах
mrvcf1 98 Опубликовано: 10 ноября 2010 Жалоба Рассказать Опубликовано: 10 ноября 2010 а вообще возможно построить это в UG не испорльзуя програмирование?....уж больно все както замудренно получается. Неужели нельзя наложить на геометрию ограничения, которые будут выполняться в других фичерах....... Цитата Ссылка на сообщение Поделиться на других сайтах
nut888 3 Опубликовано: 10 ноября 2010 Жалоба Рассказать Опубликовано: 10 ноября 2010 а вообще возможно построить это в UG не испорльзуя програмирование?....уж больно все както замудренно получается. Неужели нельзя наложить на геометрию ограничения, которые будут выполняться в других фичерах.......Скорее всего (насколько я понял задачу) нет или это будет достаточно трудоемко Цитата Ссылка на сообщение Поделиться на других сайтах
IBV 112 Опубликовано: 10 ноября 2010 Автор Жалоба Рассказать Опубликовано: 10 ноября 2010 Скорее всего (насколько я понял задачу) нет или это будет достаточно трудоемко Я думаю можно. Алгоритм я представляю, но вот инструментом не владею. У нас на форуме раньше "жил" человек под ником FFF. Я как-то попросил его сделать не менее замороченную задачку и он сделал. Я поучаствовал только на уровне постановки задачи. Он классненько программку написал, я потом его долго добрым словом поминал. Жалко только он давненько на форуме не замечен. Цитата Ссылка на сообщение Поделиться на других сайтах
IgP 107 Опубликовано: 11 ноября 2010 Жалоба Рассказать Опубликовано: 11 ноября 2010 nut888 : " Скорее всего (насколько я понял задачу) нет или это будет достаточно трудоемко " Я думаю можно. Он классненько программку написалIBV ! извините, но сейчас у меня голова взорвётся. Вы говорите что, думаете что можно без программирования, а в пример приводите Он программку написал to IBV Вашу задачку в разделе PROE в теме PROE и Сколково как я понимаю решили. Посмотрите. Цитата Ссылка на сообщение Поделиться на других сайтах
avd 73 Опубликовано: 11 ноября 2010 Жалоба Рассказать Опубликовано: 11 ноября 2010 Мой вариант Фигура первая Фигура два Цитата Ссылка на сообщение Поделиться на других сайтах
Ug_user 638 Опубликовано: 11 ноября 2010 Жалоба Рассказать Опубликовано: 11 ноября 2010 Слушал я вас долго и внимательно, и наконец понял - пора внести свой вклад в дискуссию... Картинка с видео-роликом (в Opera - крутится, в IE - нет, у меня, во всяком случае.. ) Шаг - через 3 градуса, как просили. ДА! Для уменьшения объема файла сделал 20% длины кривой. Цитата Ссылка на сообщение Поделиться на других сайтах
IBV 112 Опубликовано: 11 ноября 2010 Автор Жалоба Рассказать Опубликовано: 11 ноября 2010 ДА! То что нужно, невооружённым глазом вижу. :) А как? Это частное решение или общее? Цитата Ссылка на сообщение Поделиться на других сайтах
Ug_user 638 Опубликовано: 11 ноября 2010 Жалоба Рассказать Опубликовано: 11 ноября 2010 ДА! То что нужно, невооружённым глазом вижу. :) А как? Это частное решение или общее? Общее не бывает... Как? Тривиальная программка на UGOPEN. Могу выложить DLL. Цитата Ссылка на сообщение Поделиться на других сайтах
avd 73 Опубликовано: 11 ноября 2010 Жалоба Рассказать Опубликовано: 11 ноября 2010 Общее не бывает... Как? Тривиальная программка на UGOPEN. Могу выложить DLL. э-э-э-э с исходниками можно... 2 IBV Я в общем-то тоже с помощью программирования сделал, но у меня компонент размножается... мне так проще было Обнаружил несоответствие, подправил, при вычитании что получается Цитата Ссылка на сообщение Поделиться на других сайтах
IBV 112 Опубликовано: 11 ноября 2010 Автор Жалоба Рассказать Опубликовано: 11 ноября 2010 avd Тоже красиво, но похоже, что шаг по углу не постоянный. Видны странные скачки. Нет? Цитата Ссылка на сообщение Поделиться на других сайтах
BSV1 1 727 Опубликовано: 11 ноября 2010 Жалоба Рассказать Опубликовано: 11 ноября 2010 А причем тут постоянный шаг по углу, если требеутся просто выбрать канавку? Цитата Ссылка на сообщение Поделиться на других сайтах
IBV 112 Опубликовано: 11 ноября 2010 Автор Жалоба Рассказать Опубликовано: 11 ноября 2010 А причем тут постоянный шаг по углу, если требеутся просто выбрать канавку?Будем считать, что я капризничаю. :) А вообще, нужно чтоб было правильно и красиво, тогда ни у кого не будет вопросов. И обработка будет лучше. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.