|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
отрисоввка прарметрической 3D модели
инженер ОПС
Березники
Регистрация: 10.05.2008
Сообщений: 13
|
||
Просмотров: 8413
|
|
||||
инженер ОПС Регистрация: 10.05.2008
Березники
Сообщений: 13
![]() |
Я это сочинил, по тем примерам что нам давали, немного их изменив, все изменение состояло в том, что в качестве координат использовал переменную, в переменную соответственно до этого передаю вычисленное значение. Что я не так делаю?
P.S. тут тока начальный кусок кода, если уже этот не рабобтает смысл дальше писать. Последний раз редактировалось bv7, 11.05.2008 в 18:08. |
|||
![]() |
|
||||
инженер ОПС Регистрация: 10.05.2008
Березники
Сообщений: 13
![]() |
а как реализовать отрисовку по координатам, чтобы использовались только d, z, a.
Все равно не получается, строки с get... поправил, и всеравно ругается "ошибка: no function definition:PT0" это я так понимаю неверно заданы координаты точки, а как их туда передавать то? Сперва выражение посчиталось, это значение передалось переменной и эта переменная уже участвует в построении объекта. Во вложении нарисовано, что должно в итоге получиться, только ещё объём доюавить надо. Я же пока пытаюсь нарисовать хотя бы пару линий от этого обекта. |
|||
![]() |
|
||||
инженер ОПС Регистрация: 10.05.2008
Березники
Сообщений: 13
![]() |
переменной pt1 присваиваются значения pt0 и p1.
ну да ... нелогично, сам вижу, а как тогда реализовать задуманное, как передать координаты точки по х и по у?
__________________
Жизнь хороша, если правильно подобрать антидепрессанты. Последний раз редактировалось bv7, 11.05.2008 в 22:18. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Сделать, что ли?
![]() --- Добавлено: размеры указаны далеко не все. Это так, для справки.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Да если ты сделаешь, то тот преподователь навряд-ли пока не запустит поймет что это за лямбды в перепешку с vla и dfx'ом, да и когда запустит вряд-ли поймет, какое они отношение к лиспу имеют. И господину BV7 точно "провал" светит.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
инженер ОПС Регистрация: 10.05.2008
Березники
Сообщений: 13
![]() |
Товарищи, на мой взгляд мы все дальше удаляемся от темы, помогите пожалуйста. По словам преподавателя эта задачка лёгкая, по отношению к другим заданиям, тока с её методами преподавания, она становится архи сложной. Чесслово я уже всесь запутался, помогите пожалста.
![]()
__________________
Жизнь хороша, если правильно подобрать антидепрессанты. |
|||
![]() |
|
||||
инженер ОПС Регистрация: 10.05.2008
Березники
Сообщений: 13
![]() |
Задача стоит так: отрисовать трёхмерную параметрическую модель детали (См. вложение). Отрисовка происходит по задаваемым пользователем значениям.
Я над этим рисунком детали уже недели 3 бьюсь, силы на исходе, нифига не получается. Справку АвтоКАДа обчитался уже, примеры в Самоучителе по АвтоКАДу теже самые, рисуют парковую дорожку, при чём такими средствами, про которые нам и не говорили совсем.
__________________
Жизнь хороша, если правильно подобрать антидепрессанты. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Блин, а габариты кто задавать будет? Пушкин? Вот тебе вариант, если разберешься. Говорю сразу - контроля правильности ввода никакого; кое-что сделано на командах (хотя это и не совсем правильно, но в данном случае покатит), код можно упрощать и ускорять до невозможности.
Код:
Добавлено: В аттаче красным выделены те габариты, которые я не понял где задаются.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
инженер ОПС Регистрация: 10.05.2008
Березники
Сообщений: 13
![]() |
Спасибо огромное за вариант, sub можно принять равным диаметру, ... только где это в коде поправить? Теперь буду с кодом разбираться, комментарии писать, ток наверно "без бутылки не разобраться".
__________________
Жизнь хороша, если правильно подобрать антидепрессанты. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Ну, во-первых, проглядев код повнимательнее, сразу увидишь, где назначается sub и чему оно равно. Во-вторых, не "без бутылки", а "без DXF Reference"
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
См.изображение
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Студентка Регистрация: 15.05.2008
Сообщений: 9
|
Приветик всем. Очень нужна ваша помошь мальчики, уже не знаю что делать...
![]() Код:
![]() ![]() |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
А если (без анализа кода) заменить строку
Код:
Код:
И потом, в указанном коде никак не участвуют ни b, ни h. Так и задумано или как? И еще один момент, что называется, "от греха": все переменные сделать локальными я бы порекомендовал.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Студентка Регистрация: 15.05.2008
Сообщений: 9
|
Как я поняла, с помошью "_none" создаются отдельные отрезки, а не один как раньше было у меня. Но "_.fillet" так и не работает
Код:
|
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Поняла ты не правильно, с помощью none отключаються привязки, а _fillet'ом надо не точки (как у тебя), а отрезки указывать. Вместо (setq pt '(0 100)) писать (setq pt (list x y)) где х и y предварительно подсчитанные значения координат по соответствующим осям.
P.S. (setq a b) (setq c d) ... можно заменить (setq a b c d), а вообще либо найди книжку по лисп, либо участника форума с твоего города, и всей группой ему на ящик пива сбрасывайтесь.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 310
|
>> Ju1iya
Если попробовать вот так: Код:
Хоть и не в AutoCADе проверял, но работает. Fillet действует на последний отрезок, приблизьте участок в координатах (90 , 15). Теперь нужно вычислить точки на двух сопрягаемых линиях примерно в 1 ед. от точки угла. Да и радиус скругления мелковат (может так и должно быть). Кстати, если делать эту фигуру полилинией, можно скруглить сразу все углы. >> Дима_ А не все ли равно: (setq pt '(0 100)) или (setq pt (list x y)), это одно и тоже. Вот только если XY задаются где-то отдельно, тогда да. Последний раз редактировалось Олег К., 16.05.2008 в 11:21. |
|||
![]() |
|
||||
Студентка Регистрация: 15.05.2008
Сообщений: 9
|
Цитата:
Кто хоть немного бы разберался в AutoLisp, я никого не знаю в нашем городе - даже знакомых у знакомых нет. Вся надежда только на вашу помошь... Переделала код, как ты посоветовал: Код:
![]() |
|||
![]() |
|
||||
Студентка Регистрация: 15.05.2008
Сообщений: 9
|
Цитата:
(setq p_snapmode (getvar "SNAPMODE") p_blipmode (getvar "BLIPMODE") p_osmode (getvar "OSMODE") и что они задают? |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
На приложеном чертеже не нашел 2-х параметров, придумал их сам (см. рисунок), ну и сам код - если не првильный подправлять не буду - сами разирайтесь, не разберетесь пиши поясню.
Код:
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 16.05.2008 в 14:10. |
|||
![]() |
|
||||
Студентка Регистрация: 15.05.2008
Сообщений: 9
|
>Дима_
Объясни пожалуйста, почему у меня при выполнении твоего кода, не срабатает сопряжение? А пишет: _fillet *Неверный выбор* Требуется точка или Рамка/Последний/Секрамка/БОКС/Линия/РМн-угол/СМн-угол ; ошибка: Функция отменена И просит выбрать 1-й объект. Мне вроде говорили, что полилинии не сопрягаются - так ли это? А при выполнении 3dorbit фигура всё равно отображается двумерной? |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
попробуй при запуске поменять масштаб (колесом мыши впиши квадрат где-то 100 на 100, с учетом параметра b около 10), наверное виной командный режим с которым "_fillet" плохо работает, по хорошему надо сопрягать на dxf уровне, но мне сейчас влом, 3д не показывает поскольку выполнение команды прерываеться, и у тебя остаеться только плоский рисунок. Чтобы убедиться поставь перед строкой
;(repeat (length spr) (fil (nth n spr) (/ b 5.0)) (setq n (1+ n))); создает сопряжения. создаст, но без сопряжения - но кстати у меня в 2008 все работает.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 310
|
Ага, вот тут-то мы и узнаем, что автокад русифицированный
![]() Возможно после команды _fillet требуется указать рамкой или секрамкой будут выделяться объекты (по коду указывается 2 точки на объект). У меня аналогичная ситуация в ZWCADе - программно 4 точки не понимает, а выбор секрамкой с мышки возможен. >> Ju1iya Системные переменные SNAPMODE, BLIPMODE, OSMODE отвечают за ручки выбора и привязки объектов. Подробнее можно посмотреть в хелпе. При работе командными методами желательно устанавливать им значение "0". На этом форуме было несколько тем с подробным объяснением - зачем. Также команды не всегда могут работать вне видимой части экрана. Добавлю еще: если точно известны места скругления и радиус, может проще создать полилинию уже со скруглениями, а не мучиться с filletom? |
|||
![]() |
|
||||
Студентка Регистрация: 15.05.2008
Сообщений: 9
|
Цитата:
|
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Вобще проще всего наверное сделать автоматическую подгонку масштаба вписать перед сопряжением:
(command "_.zoom" "_o" obj "") (repeat (length spr) (fil (nth n spr) (/ b 5.0)) (setq n (1+ n))); создает сопряжения. Ну а правильней всего кочно полилинию с закруглениями сразу создавать.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 310
|
>> Ju1iya
Допустим, есть вот такая полилиния: Код:
Код:
|
|||
![]() |
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 310
|
Далее.
В программе заданы точки и радиус: (setq pt1 '(0 0) pt2 '(100 0) pt3 '(100 100) r1 20.0) Создаем полилинию по этим условиям: Код:
![]() Это когда координаты и радиус задаются в процессе выполнения программы. Если известны заранее - нефиг копаться: рисуем руками линии, скругляем где надо, узнаем координаты точек и забиваем их в программу. По-хорошему, такое надо создавать объектными методами (например через entmake), но это уже следующий уровень обучения. Последний раз редактировалось Олег К., 16.05.2008 в 16:32. |
|||
![]() |
|
||||
инженер ОПС Регистрация: 10.05.2008
Березники
Сообщений: 13
![]() |
Когда я сегодня спросил про пример в автокаде про построение садовой дорожки, преподавательница мне ответила, типа пример ужасный и вообще не понимаю зачем столько кода писать когда можно обойтись командами автокада. Ну, а про то что, команды автокада работают медленно и есть другие способы отрисовки моделей мне так и не дали ответа. Теперь от всех скрываю, что задание выполнено, код разбираю.
Вопрос где найти параметры команд типа "_L" "_g" "_all" ну и тому подобные. >> Ju1iya на пиво скидываться всей группой не надо, я ещё со своим примером не разобрался.
__________________
Жизнь хороша, если правильно подобрать антидепрессанты. |
|||
![]() |
|
||||
инженер ОПС Регистрация: 10.05.2008
Березники
Сообщений: 13
![]() |
А мне с разборкой кода поможете? А то в некоторых местах я просто не могу понять как оно строится, таких функций нам не давали, в справке по entmakeх и им подобным, мало что написано.
__________________
Жизнь хороша, если правильно подобрать антидепрессанты. |
|||
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Восстановление первоначального вида модели после 3d Orbit в | sasha_lif | AutoCAD | 6 | 18.06.2008 22:44 |
AA2008: Как создать план 3d модели на определенной отметке | Vildar | Вертикальные решения на базе AutoCAD | 6 | 12.02.2008 12:52 |
Подготовка рабочих чертежей по 3D модели | constructorl | AutoCAD | 21 | 07.02.2007 19:50 |
2D чертежи из 3D модели. Как? | Karales | AutoCAD | 1 | 16.10.2006 18:29 |
3d модели на плоскости | Teplinski | AutoCAD | 3 | 26.05.2006 09:29 |