Постановка задачи
Создание чертежа-прототипа
Анализ задания
Пример выполнения
Постановка задачи
Создать программу на языке VLISP формирования в AutoCAD пространственной модели и чертежа
Создание чертежа-прототипа
Выберите в качестве чертежа-прототипа acadiso.dwt и начертите 3-и отрезка (команда LINE) – ось X (красным цветом), ось Y (зеленым) и ось Z (синим). Начало отрезков из точки (0,0,0), длина 50. Выберите направление взгляда под углом 45 градусов к осям – команда VPOINT (1,1,1).
Анализ задания
Вначале нужно определиться, как будет размещена модель относительно системы координат. Обычно для симметричных деталей центр симметрии совмещают с началом СК. Для несимметричных деталей с началом СК совмещают какую-либо угловую точку детали. Это дает возможность легче определять координаты точек примитивов по параметрам (размерам) детали.
Потом деталь анализируется на предмет выбора оптимального способа моделирования. Процесс моделирования должен быть логически понятен и выполнен с наименьшим количеством команд. Суть твердотельного моделирования заключается в создании модели из примитивов с применением к ним теоретико-множественных операций (пересечение, объединение и отрицание), которые наглядно представляются при помощи кругов Эйлера:
Сначала формируется заготовка детали (без вырезов) через объединение примитивов (UNION), а потом уже вырезаются отверстия и пазы (SUBTRACT). Операция пересечение (INTERSECT) обычно используется редко.
Пример выполнения (вариант №7)
Загрузили VLISP (Управление>Приложения>Редактор Visual LISP), вставили код программы и загрузили приложение (Управление>Приложения>Загрузить приложение). Набрали команду mod3d, получили параллелепипед с размерами 64*34*54
(defun c:mod3d () (command "_OSNAP" "_None") (command "_rectangle" '(32 17) '(-32 -17)) (setq ent1 (entlast)) (command "_extrude" ent1 "" 20 "") )
Первая команда отключает объектную привязку. Затем создается прямоугольник по угловым вершинам, имя примитива запоминается в переменной ent1. Параллелепипед получен выдавливанием прямоугольника на высоту 54. Знак «_» прибавляется к имени команд и опций при запуске программы в русскоязычных версиях AutoCAD. Знак «’» перед списком возвращает его без интерпретации. Двойные кавычки (пустая строковая константа) заменяют нажатие Enter.
Команда изучается запуском в интерактивном режиме, затем записывается в программу в соответствии с синтаксисом VLISP и проверяется запуском программы.
Вторая часть детали может быть получена объединением (UNION) параллелепипеда (с высотой 38) и цилиндра (с радиусом 22). Как альтернатива, эту часть детали можно получить выдавливанием профиля, ограниченного тремя отрезками и дугой (PLINE).
Обе части детали объединяются (UNION). Затем создаются примитивы, с помощью которых в детали выполняются вырезы и отверстия (SUBTRACT).
Профили могут выполняться только в плоскости ХУ или параллельно ей – на расстоянии, определенном командой ELEVATION. Если профиль нужно определить в плоскости, не совпадающей с текущей XY, то перед этим необходимо создать новую СК (команда UCS). Обычно используется опция «3 Point», для которой указываются новые центр, точки на оси X и Y.
Фрагмент программы для варианта 7 приводится ниже.
(defun C:mod3d () (command "_UCS" "") (command "_ELEVATION" "0") (command "_OSNAP" "_None") (command "_RECTANGLE" '(32 17) '(-32 -17)) (setq ent1 (entlast)) (command "_EXTRUDE" ent1 "" 54 "") (setq ent1 (entlast)) (command "_UCS" "3" "" "" '(0 0 1)) (command "_ELEVATION" "-24") (command "_PLINE" '(22 0) '(22 38) "_A" '(-22 38) "_L" '(-22 0) "_C") (setq ent2 (entlast)) (command "_EXTRUDE" ent2 "" 48 "") (setq ent2 (entlast)) (command "_UNION" ent1 ent2 "") (setq ent3 (entlast)) (command "_ELEVATION" "-24") (command "_CIRCLE" '(0 38) "_D" 28) (setq ent4 (entlast)) (command "_EXTRUDE" ent4 "" 48 "") (setq ent4 (entlast)) (command "_UCS" "") (command "_ELEVATION" "0") (command "_RECTANGLE" '(16 24) '(-16 -24)) (setq ent5 (entlast)) (command "_EXTRUDE" ent5 "" 14 "") (setq ent5 (entlast)) (command "_SUBTRACT" ent3 "" ent4 ent5 "") (command "_DISPSILH" "1") (command "_HIDE") )
Результат запуска программы
Дополнительное задание. Разработать программу с параметризацией модели по аналогии с выполнением задания для чертежа на плоскости (см. VLisp параметрический чертеж )
Автор: Николай Свирневский