???
Математика на уровне МГУ

Показано с 1 по 15 из 15

Тема: Рисование параметрических поверхностей в автокаде

  1. #1
    гномский истребитель Аватар для =FPS=Altekerve
    Регистрация
    15.05.2003
    Адрес
    ULLI
    Возраст
    56
    Сообщений
    1,883

    Рисование параметрических поверхностей в автокаде

    Часто бывает нужно нарисовать поверхности, которые описываются в пространстве формулами.
    Хоть гиперболу, хоть эллипсоид.
    Очень легко рисовать параметрические меши в автокаде.

    Вот пример подпрограммки, которая рисует разомкнутый цилиндр из сегментов 10x10.
    Функция F(u v) возвращает точку (x y z)


    (defun 3dmesh_plot()
    (command "3dmesh" 10 10)
    (setq i 0 j 0)
    (while (< j 10)
    (while (< i 10)
    (setq u (* (/ pi 5) i) v j)
    (setq pt (F u v))
    (command pt)
    (setq i (1+ i))
    )
    (setq j (1+ j) i 0)
    )
    )

    (defun F(u v)
    ; это рисует цилиндр: первый в списке X, потом Y и Z коорд
    (setq r 2.0)
    (list (* r (cos u)) (* r (sin u)) v)
    )


    Сохраняем содержимое в файле, допустим, test.lsp (файл должен быть в доступном директории, например в текущем), в командной строке вводим

    (load "test.lsp")

    и затем

    (3dmesh_plot)

    Должен нарисоваться разомкнутый цилиндр. Если хотите, можете его куда-нибудь экспортировать, в 3dMax тот же.

    Я специально привел упрощенную схему, чтобы понял даже самый непонятливый.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	Untitled-1.jpg 
Просмотров:	235 
Размер:	81.2 Кб 
ID:	56662  
    Крайний раз редактировалось =FPS=Altekerve; 06.06.2006 в 06:21.
    suum quique

  2. #2
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    46
    Сообщений
    6,905
    Images
    51

    Ответ: Рисование параметрических поверхностей в автокаде

    Спасибо. А какой-нибудь практический пример можно? Чтобы сделать объект таким способом с экспортом в Мах было проще(или быстрее) чем в самом Мах-е?
    Don't happy, be worry

  3. #3
    гномский истребитель Аватар для =FPS=Altekerve
    Регистрация
    15.05.2003
    Адрес
    ULLI
    Возраст
    56
    Сообщений
    1,883

    Ответ: Рисование параметрических поверхностей в автокаде

    Цитата Сообщение от naryv
    Спасибо. А какой-нибудь практический пример можно? Чтобы сделать объект таким способом с экспортом в Мах было проще(или быстрее) чем в самом Мах-е?
    Сложный вопрос. Рассматривайте это как хинт, еще один способ работы. Что уж из него можно извлечь (гиперболические мачты амерских линкоров или моделирование террейна, параметрические гайки, швеллеры и нервюры) - дело вашей фантазии, it's up to you как говорят англичане. Хотите, нарисуйте параметрическое крыло этим же методом, или фюзеляж.

    Я в курсе, что в максе есть скрипты, но не видел ни одного толкового примера. С другой стороны, языка проще чем Лисп, придумать, мне кажется, невозможно.
    Крайний раз редактировалось =FPS=Altekerve; 06.06.2006 в 06:22.
    suum quique

  4. #4
    гномский истребитель Аватар для =FPS=Altekerve
    Регистрация
    15.05.2003
    Адрес
    ULLI
    Возраст
    56
    Сообщений
    1,883

    Ответ: Рисование параметрических поверхностей в автокаде

    Вот, например, заменим функцию F:


    (defun 3dmesh_plot()
    (command "3dmesh" 6 11)
    (setq i 0 j 0)
    (while (< j 6)
    (while (< i 11)
    (setq u (* (/ pi 5) i) v j)
    (setq pt (F u v))
    (command pt)
    (setq i (1+ i))
    )
    (setq j (1+ j) i 0)
    )
    )

    (defun F(u v)
    (list (* (- 10 (* 0.9 v)) (cos u)) (* (- 10 (* 0.2 v)) (sin u)) (* v 10))
    )


    Получим вот такую секцию фюзеляжа:
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	Untitled-1.jpg 
Просмотров:	141 
Размер:	33.4 Кб 
ID:	56689  
    Крайний раз редактировалось =FPS=Altekerve; 06.06.2006 в 07:02.
    suum quique

  5. #5
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    46
    Сообщений
    6,905
    Images
    51

    Ответ: Рисование параметрических поверхностей в автокаде

    Цитата Сообщение от =FPS=Altekerve
    Сложный вопрос. Рассматривайте это как хинт, еще один способ работы.
    Это-то понятно, просто хотелось узнать - может Вы уже что-то делали таким способом, для наглядности.

    Цитата Сообщение от =FPS=Altekerve
    Что уж из него можно извлечь (гиперболические мачты амерских линкоров или моделирование террейна, параметрические гайки, швеллеры и нервюры) - дело вашей фантазии, it's up to you как говорят англичане. Хотите, нарисуйте параметрическое крыло этим же методом, или фюзеляж.
    Я потому и написал - чтобы проще или быстрее было чем в Мах-е, что понятно, что можно и крыло и фюзеляж сделать так, но вопрос в трудо/время-затратах. Про гиперболические мачты - видимо хороший пример - похоже таким образом действительно будет просто и быстро их сделать.
    Цитата Сообщение от =FPS=Altekerve
    Я в курсе, что в максе есть скрипты, но не видел ни одного толкового примера.
    А в папке samples Мах-а смотрели? Мне понравился PaintCylinder .
    Цитата Сообщение от =FPS=Altekerve
    С другой стороны, языка проще чем Лисп, придумать, мне кажется, невозможно.
    Это да.
    Цитата Сообщение от =FPS=Altekerve
    Получим вот такую секцию фюзеляжа:
    Не очень хорошо видно на скриншоте - это получился конус, с одной стороны - окружность, с другой эллипс?
    Don't happy, be worry

  6. #6
    гномский истребитель Аватар для =FPS=Altekerve
    Регистрация
    15.05.2003
    Адрес
    ULLI
    Возраст
    56
    Сообщений
    1,883

    Ответ: Рисование параметрических поверхностей в автокаде

    Цитата Сообщение от naryv
    Это-то понятно, просто хотелось узнать - может Вы уже что-то делали таким способом, для наглядности.
    Еще нет. Но результаты мне нравятся.

    Цитата Сообщение от naryv
    Я потому и написал - чтобы проще или быстрее было чем в Мах-е, что понятно, что можно и крыло и фюзеляж сделать так, но вопрос в трудо/время-затратах.
    Макс, с моей ТЗ, вообще одно сплошное недоразумение в плане геометрии. Я вообще не понимаю, как в нем кто-то геометрию рисует.
    Привязки - не поймешь что. 2D, 3D, 2.5D. Как разметить линию или сплайн на участки равной длины или на целое число участков? Нету командной строки? Нету дубликатов команд с параметрами с клавиатуры. Если в Автокаде надо что-нибудь быстро сосчитать, пишешь в командной строке (* 2 2) и все.

    Что касается последней секции фюзеляжа - работы было ровно на 30 секунд (изменить F). Сделайте за то же время такую же секцию в максе.

    Цитата Сообщение от naryv
    А в папке samples Мах-а смотрели? Мне понравился PaintCylinder .

    Цитата Сообщение от naryv
    Не очень хорошо видно на скриншоте - это получился конус, с одной стороны - окружность, с другой эллипс?
    Каждое сечение - эллипс, но с разными осями. В плане и сбоку - трапеция. Формулу для F смотрим.
    suum quique

  7. #7
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    46
    Сообщений
    6,905
    Images
    51

    Ответ: Рисование параметрических поверхностей в автокаде

    Цитата Сообщение от =FPS=Altekerve
    Еще нет. Но результаты мне нравятся.
    Ок, как будет какой-нибудь пример, покажите здесь?

    Цитата Сообщение от =FPS=Altekerve
    Макс, с моей ТЗ, вообще одно сплошное недоразумение в плане геометрии. Я вообще не понимаю, как в нем кто-то геометрию рисует.
    Привязки - не поймешь что. 2D, 3D, 2.5D. Как разметить линию или сплайн на участки равной длины или на целое число участков?
    ну не всё так плохо, кое что, конечно через одно место делать приходится, а вобщем нормально
    Цитата Сообщение от =FPS=Altekerve
    Нету командной строки?
    Как нет ? В левом нижнем оглу, она же ScriptListener Window.
    Цитата Сообщение от =FPS=Altekerve
    Нету дубликатов команд с параметрами с клавиатуры.
    Есть, всё там-же , например :
    Cylinder smooth:on heightsegs:5 capsegs:1 sides:18 height:10.4695 radius:10.7213 mapCoords:off transformmatrix3 [1,0,0] [0,0,1] [0,-1,0] [60.0885,4.36545e-007,-9.987]) isSelected:on делает цилиндр.

    Цитата Сообщение от =FPS=Altekerve
    Если в Автокаде надо что-нибудь быстро сосчитать, пишешь в командной строке (* 2 2) и все.
    Там же, только 2*2 надо писать .

    Цитата Сообщение от =FPS=Altekerve
    Что касается последней секции фюзеляжа - работы было ровно на 30 секунд (изменить F). Сделайте за то же время такую же секцию в максе.
    Верю .

    Цитата Сообщение от =FPS=Altekerve
    Каждое сечение - эллипс, но с разными осями. В плане и сбоку - трапеция. Формулу для F смотрим.
    Угу, на картинку сразу ткнул, поленился формулу смотреть
    Don't happy, be worry

  8. #8
    гномский истребитель Аватар для =FPS=Altekerve
    Регистрация
    15.05.2003
    Адрес
    ULLI
    Возраст
    56
    Сообщений
    1,883

    Ответ: Рисование параметрических поверхностей в автокаде

    Цитата Сообщение от naryv
    Ок, как будет какой-нибудь пример, покажите здесь?
    Что-то мне тут какой-то сарказм мерещится.

    Да, все точно. Максовский скрипт аналог лиспа. И командная строка есть, только я не имел представления что это такое. И пример с рисованием параметрического меша там же есть.

    Но почему он мне кажется таким неудобным, макс?
    В автокаде есть лисп, в максе скрипт.
    В автокаде я могу написать свое приложение на object_arx, но и в максе есть свой SDK.

    Конечно, для рендеринга и текстуринга макс лучше. И в отличие от автокада есть булевы операции с сетками. Но возиться с геометрией в максе для меня почему-то мучение, в CADе я все делаю на два порядка быстрее. Дело привычки?
    suum quique

  9. #9
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    46
    Сообщений
    6,905
    Images
    51

    Ответ: Рисование параметрических поверхностей в автокаде

    Цитата Сообщение от =FPS=Altekerve
    Что-то мне тут какой-то сарказм мерещится.
    Да нет, нет никакого сарказма. Просто хочется видеть - в каких конкретных случаях такой способ будет удобнее, чтобы его применять - самому выяснять - со временем несколько напряжно, а раз уж Вы занялись этим вопросом - хочется "на халяву" получить совет - в таком то случае стоит применять связку Акад-Мах, в другом - проще в Мах-е всё сделать.
    Так что сорри, если выглядит как сарказм - и в мыслях не было.

    Цитата Сообщение от =FPS=Altekerve
    Да, все точно. Максовский скрипт аналог лиспа. И командная строка есть, только я не имел представления что это такое. И пример с рисованием параметрического меша там же есть.

    Но почему он мне кажется таким неудобным, макс?
    В автокаде есть лисп, в максе скрипт.
    В автокаде я могу написать свое приложение на object_arx, но и в максе есть свой SDK.

    Конечно, для рендеринга и текстуринга макс лучше. И в отличие от автокада есть булевы операции с сетками. Но возиться с геометрией в максе для меня почему-то мучение, в CADе я все делаю на два порядка быстрее. Дело привычки?
    Наверное привычка + если не ошибаюсь, АCAD работает в 3Д с телом, а Мах - с поверхностью, м.б. для Вас удобнее с объектами-телами работать? Или ACAD и с поверхностями тоже сейчас работает(я в нём давно серьёзного ничего не делал)? Ну и система привязок кажется в ACADе немного более удобной - в Мах-е вроде всё практически то-же самое есть, но пользоваться мне ими не очень удобно.
    Don't happy, be worry

  10. #10
    гномский истребитель Аватар для =FPS=Altekerve
    Регистрация
    15.05.2003
    Адрес
    ULLI
    Возраст
    56
    Сообщений
    1,883

    Ответ: Рисование параметрических поверхностей в автокаде

    Плюс в том, что поверхность, построенная таким методом, совершенно гладкая. Ее точки лежат на гладкой поверхности. Это очевидно из того, что сами функции задания гладкие. При ручной расстановк точек может получиться лишь приближение к реальной поверхности. Кроме того, в параметрической поверхности известны нормали, что полезно в движке для правильного шейдинга, в поверхности же вручную собираемой нориали расставляет движок абы как.
    suum quique

  11. #11
    Инструктор Аватар для Stalevar
    Регистрация
    25.10.2003
    Адрес
    Киев
    Возраст
    42
    Сообщений
    2,843

    Ответ: Рисование параметрических поверхностей в автокаде

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

  12. #12
    гномский истребитель Аватар для =FPS=Altekerve
    Регистрация
    15.05.2003
    Адрес
    ULLI
    Возраст
    56
    Сообщений
    1,883

    Ответ: Рисование параметрических поверхностей в автокаде

    Ошибаешься. Интерполировать кривые многочлеными с чертежей легко.
    suum quique

  13. #13
    от-мороз-ок!
    Регистрация
    25.11.2003
    Адрес
    Russian Federation
    Возраст
    47
    Сообщений
    202

    Ответ: Рисование параметрических поверхностей в автокаде

    скажу просто, в максе все есть тока надо знать где что лежит и как этим пользоваться, сравнивать несравнимые по своей сути проги я считаю неуместным. А в чем и как делать ту или иную весч пускай решит для себя каждый в силу знания той или иной проги.
    =Alco=Lobster
    Всех замочу, один останусь!

  14. #14
    Инструктор Аватар для Stalevar
    Регистрация
    25.10.2003
    Адрес
    Киев
    Возраст
    42
    Сообщений
    2,843

    Ответ: Рисование параметрических поверхностей в автокаде

    Цитата Сообщение от =FPS=Altekerve
    Ошибаешься. Интерполировать кривые многочлеными с чертежей легко.
    Тогда объясни как. Собственно к тому я и писал про конкретный пример, чтоб наглядней и понятней было
    Ноги, крылья... Главное - хвост!

  15. #15
    гномский истребитель Аватар для =FPS=Altekerve
    Регистрация
    15.05.2003
    Адрес
    ULLI
    Возраст
    56
    Сообщений
    1,883

    Ответ: Рисование параметрических поверхностей в автокаде

    Цитата Сообщение от Stalevar
    Тогда объясни как. Собственно к тому я и писал про конкретный пример, чтоб наглядней и понятней было
    Попозжее чуток. Вот времени полчасика появится, тогда.
    suum quique

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •