Команда «3AT» — Создать резьбу
Данная операция позволяет создавать косметические резьбы на цилиндрических и конических гранях 3D модели. Косметической такая резьба называется потому, что при выполнении команды на выбранную грань накладывается текстура, изображающая резьбу с учетом заданных границ и значений шага и направления. В отличии от резьбы, созданной при помощи операции «3SR — Спираль «, данная операция не создаёт сложной геометрической поверхности и не требует больших затрат времени при создании и пересчете модели. При создании 2D проекций система автоматически создаёт линии изображения соответствующие нанесённой резьбе. При оформлении чертежа размеры, привязанные к таким линия изображения, будут отображать условное обозначение резьбы.
Параметры стандартных резьб содержаться в специальной базе данных « Treads.mdb », которая лежит в папке Program . База состоит из нескольких таблиц, каждая из которых задаёт один стандарт на резьбу. Параметры резьбы (шаг, высота профиля, обозначение) могут рассчитываться автоматически по таблице базы данных или задаваться пользователем вручную для создания нестандартной резьбы. При необходимости база данных может быть дополнена пользователем.
Вызов команды доступен из контекстного меню при выбранной цилиндрической или конической грани (пункт » Создать|Резьба «). В этом случае при вызове команды несущая грань считается уже выбранной.
После вызова команды в автоменю доступны опции:

Закончить ввод.

Задать параметры элемента

Выбрать другой ближайший элемент.

Выйти из команды.

Предварительный просмотр результата операции.

Выбрать цилиндрическую грань.

Тип задания начала резьбы.

Тип задания конца резьбы.

Отменить выбор всех граней.
Для создания операции необходимо выполнить следующую последовательность действий:
1. Указать несущую грань.
2. Задать параметры резьбы.
3. Задать границы начала и конца резьбы (необязательное действие).
4. Подтвердить создание операции.
Выбор несущей грани

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

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

Параметры операции отображаются в окне » Свойства «. Также окно параметров можно вызвать при помощи опции автоменю ( ). Параметры резьбы по умолчанию выбираются из базы данных на основе значения диаметра несущей грани. При одном и том же диаметре несущей грани параметры, подобранные системой для наружной и внутренней резьбы, будут разными. Для наружной резьбы диаметр несущей грани считается наружным диаметром, для внутренней резьбы – внутренним.
Задание отступов (границ) резьбы
По умолчанию резьба создаётся по всей длине выбранной грани. Для задания отступов можно использовать опции автоменю и окно » Свойства » или манипуляторы , которые на рисунке отображены жёлтым цветом. При наведении курсора на манипулятор его форма меняется на для начальной границы резьбы или на — для конечной . Перемещая мышь с нажатой левой кнопкой можно изменить положение границ резьбы. Численные значения отступов будут отображаться в окне » Свойства «.
По умолчанию отступы задаются относительно начала и конца грани. При помощи опций автоменю можно изменить тип задания отступов.


Для начальной границы резьбы используется опция , выпадающий список которой содержит пиктограммы:

От начала грани. Отступ начала резьбы отсчитывается от начальной границы несущей грани. Начальной границей считается то ребро, ближе к которому был расположен курсор при выборе грани.

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

Для конечной границы резьбы используется опция , выпадающий список которой содержит пиктограммы:

От конца грани. Отступ откладывается от конечного ребра несущей грани.

От начала резьбы. Отступ откладывается от начальной границы резьбы, т.е. значение отступа определяет длину резьбы.

От начала грани. Отступ откладывается от начального ребра несущей грани.

От объекта. Отступ начала резьбы будет отсчитываться от выбранного дополнительно 3D объекта. Опции, предназначенные для выбора объектов разных типов, описаны ниже.
Если тип начала или конца резьбы задан » От объекта «, то в автоменю становятся доступны дополнительные пиктограммы:

Выбирать точки.

Выбирать прямые.

Выбирать плоскости.
Каждая из этих опций использует фильтры для определения набора типов допустимых для выбора объектов (см. раздел «Использование фильтров при создании 3D операций»). Т.е. для выбора доступны те объекты, на основе которых система может определить геометрию 3D точки, прямой или плоскости.

Например, на болте резьба создаётся после создания фаски, поэтому начальная граница задаётся » От объекта «. В качестве объекта может быть выбрана торцевая грань или принадлежащая этой грани 3D точка. Для конечной границы резьбы можно установить тип » От резьбы » и задать отступ точным значением длины резьбы.

Опция автоменю ( ) производит отмену выбора несущей грани и объектов, задающих отступы.
Завершение создания операции

Подтвердить создание операции необходимо при помощи опции ( ).
Для редактирования созданной операции используется команда «3EAT — Изменить резьбу «.
Отображение резьб и резьбовых соединений на 2D проекциях
На 2D проекциях резьбовых тел по умолчанию автоматически проставляются линии обозначения резьбы. Наличие линий управляется свойствами проекции, закладка » Линии «.


При простановке размеров по линиям резьбы автоматически проставляется обозначение резьбы. Для отмены этого режима (простановки обычного размера) необходимо в параметрах размера изменить значение параметра “ Номинал ” на “ Авто ” (по умолчанию у размеров по линиям резьбы стоит “ С операции ”).

Скрытые резьбы могут отображаться на 2D проекции пунктирными линиями при включении режима показа невидимых линий, а при создании сечения или разреза резьба изображается обычным способом. В этих случаях также возможно автоматическое нанесение обозначения резьбы при создании размеров по линиям резьбы.

Если для проекции заданы маленькая толщина линий или крупный масштаб, то для отображения реального размера между линией проекции грани и линией, обозначающей резьбу, можно использовать параметр проекции » Высота профиля резьбы не менее » (закладка » Линии «). По умолчанию этот размер ограничен значением 0.8.
При построении разрезов резьбовых соединений в свойствах 2D проекции должен быть установлен флажок » Закрашивать очерк элемента » (описание приведено в команде «2D проекции»). Если флажок установлен, то изображение резьбового соединения строится корректно. В противном случае линии проекции болта и отверстия будут накладываться друг на друга (так как тела в резьбовом соединении имеют взаимное проникновение).


В диалоге параметров операции, вызываемом опцией , можно задать общие параметры операции.
Для редактирования операции используется команда «3EAT».
Создать резьбу
Подскажите пожалуйста, как создать резьбу в отверстии. Резьба самая стандартная, метрическая.
Через поисковик все выбивает на нарезание резьбы на болте спиралью и треугольником с кучей операций. Неужто в стандартных средствах автокада нет резьбы без этого гемороя?
На сайте c 07.06.2012
Сообщений: 467
ХОХЛАНД
Цитата teristor:
Неужто в стандартных средствах автокада нет резьбы без этого гемороя?
К сожалению могу вам сказать, что даже в более специальных программах, функция резьбы используется приемущественно в чертежах, в моделировании же накладывается текстура.
Теоретически можно «нарезать» на модели резьбу. Вопрос на сколько это нужно
На сайте c 04.06.2014
Сообщений: 56
Спасибо за ответ!
Нужно для создания реальной модели. Т.е. мне нужно что бы при экспорте в Artcam была резьба. Отображение в самом Автокаде пофигу
На сайте c 07.06.2012
Сообщений: 467
ХОХЛАНД
Если что-то не хитрое могу помочь.
Времени совсем нет.
Автокад не обещаю но STL подгоню
На сайте c 01.02.2014
Сообщений: 3090
Milky Way
Не знаю как в автокаде, но в солиде и инвенторе и компасе создаешь 3д эскиз спираль. Делаешь эксиз в начале спирали и вырезаешь по траектории. Если нужен выход. То в конце спирали лепишь еще один виток другого эскиза спирали. Только с переменным диаметром в начале и в конце. И повторяешь процедуру. Думаю в акаде так же можно сделать.
На сайте c 07.06.2012
Сообщений: 467
ХОХЛАНД
Я примерно тоже сделал, только в Т-флексе, здеся по проще. вытянул цилиндр , сделал спираль, и булингом его БУЛИНГОМ.
Зачем переменный диаметр? У резьбы и шаг и диаметр одинаковый.
Сорри не заметил что в отверстии нужна резьба, но принцып тот же вот скрин
На сайте c 01.02.2014
Сообщений: 3090
Milky Way
Переменный это один виток, крайний со стороны головки болта. там где «сбег» резьбы. что бы вообще все по уму и по науке сделать. Тоесть мы создаем два спиральных эскиза. Один — резьба на много витков. Второй там где заканчивается(начинается) первый. На 1 виток с переменным диаметром для того что бы сделать «сбег» резьбы.
На сайте c 07.06.2012
Сообщений: 467
ХОХЛАНД
Да но вы видимо как и я не учли что резьба внутри отверстия :))
Вот вам даже с фаской
Скажу больше, для моих задач достаточно стандартных обозначений.
Живу надеждой, что люди наконец поймут AUOTCAD это не ПАНАЦЕЯ .
Есть большое количество софта превосходящего его по возможностям.
На сайте c 13.02.2014
Сообщений: 330
Цитата ЖеньОк:
Живу надеждой, что люди наконец поймут AUOTCAD это не ПАНАЦЕЯ .
Есть большое количество софта превосходящего его по возможностям.
Начну с окончания (пардоньте).
И требуещее куда больших «железяковых» ресурсов.
А вот Вы лично, в сыромяжной жизни, встречались с реальной панацеей?!
Прелесть «АвтоКульмана» в том, что он дает Вам, практически, безграничный ресурс, который можно «заточить» под любые потребности (ну кроме самогоноварения, пожалуй). Да, это требует определенных знаний и навыков, но в то же самое время позволяет «лечить» именно требуемый участок, а не прибегать к тотальной «бомбардировке антибиотиками», сократив при этом «прожорливость» новоявленного инструмента в разы.
Подскажите пожалуйста, как создать резьбу в отверстии. Резьба самая стандартная, метрическая.Через поисковик все выбивает на нарезание резьбы на болте спиралью и треугольником с кучей операций. Неужто в стандартных средствах автокада нет резьбы без этого гемороя?
Увы! Посыпая голову пеплом, констатирую еще и прицеп к «геморою» в виде булевых операций! К слову, в Каде они ближе к волшебнику в голубом вертолете, а не к «максовской» Моргане
Как создать 3D болт с резьбой в Автокад
Этот видеоурок «Как создать 3D болт с резьбой» будет полезен тем, кто занимается 3D проектированием металлоконструкций, в которых присутствуют крепежные элементы. Для соединения деталей применяются стандартные крепежные резьбовые детали: болты, винты, шпильки, гайки. Все крепежные резьбовые изделия выполняются с метрической резьбой и изготавливаются по соответствующим стандартам, устанавливающим требования к материалу, покрытию и прочим условиям изготовления этих деталей. В данном видеоуроке мы рассмотрим создания болта М16 с метрической резьбой. Выполняйте пошаговые действия за мной и вы с легкостью сможете сделать любой крепежный элемент. Давайте посмотрим какие размеры нам потребуются, для того чтобы создать любой болт.

А вот и сами размеры:

В данном видео примере я брал размеры для болта М16.
Условное обозначение болта:
Болт 2 М16х1,5. 2ах75.68.09 ГОСТ 7798-70
Расшифровывается следующим образом:
Болт — название детали; 2 — исполнение 2; М16 — тип и размер резьбы; 2а — класс (степень) точности резьбы; 75 — длина болта; 68 — условная запись класса прочности 68, указывающего, что болт выполнен из стали с определенными механическими свойствами; 09 — цинковое покрытие; ГОСТ 7798-70 — размерный стандарт, указывающий, что болт имеет шестигранную головку и выполнен с нормальной точностью.
Упрощенное обозначение болта можно изобразить так: Болт 2М16х1,5х75 ГОСТ 7798-70
Зачем много говорить, давайте приступим к выполнения примера.
Смотреть видео Как создать 3D болт с резьбой
Поделиться ссылкой:
- Нажмите, чтобы поделиться на Twitter (Открывается в новом окне)
- Нажмите здесь, чтобы поделиться контентом на Facebook. (Открывается в новом окне)
- Нажмите, чтобы поделиться на LinkedIn (Открывается в новом окне)
- Нажмите, чтобы поделиться записями на Pinterest (Открывается в новом окне)
- Нажмите, чтобы поделиться в Telegram (Открывается в новом окне)
- Нажмите, чтобы поделиться в WhatsApp (Открывается в новом окне)
- Больше
- Нажмите, чтобы поделиться в Google+ (Открывается в новом окне)
- Нажмите, чтобы поделиться записями на Pocket (Открывается в новом окне)
- Нажмите, чтобы поделиться записями на Tumblr (Открывается в новом окне)
- Поделиться в Skype (Открывается в новом окне)
- Нажмите для печати (Открывается в новом окне)
3D моделирование. Болт с резьбой.
Продолжаем тему 3D моделирование в AutoCAD.
В этом уроке мы программным методом построим Болт с резьбой.
При создании болта в программе будем использовать стандартные команды Автокад.
Для примера мы построим болт М16.
Откройте редактор Visual LISP: Введите в командной строке « VLIDE» (или « VLISP ») и нажмите < Enter >.
Создайте новый файл.
В начале, для лучшей наглядности и более простому указанию элементов болта переведем чертеж ЮЗ изометрию при помощи стандартной команды Автокад « _-view «:
(command "_-view" "_swiso")
Затем добавим исходные данные, для построения головки болта:
Добавим переменную raz_g , в которой будет хранить размер под ключ:
(setq raz_g 24)
Переменную h_g , в которой будет хранить высоту головки болта:
(setq h_g 10)
И переменную fas_g , в которой будет хранить размер фаски головки болта:
(setq fas_g 3.055)
Затем добавляем запрос базовой точки, от которой мы начнем наши построения:
(getpoint "\nУкажите базовую точку : ")
Координаты базовой точки сохраняем в переменной bp :
(setq bp (getpoint "\nУкажите базовую точку : "))

Рис. 1. Задаем исходные данные.
Для того чтобы текущие привязки не влияли на построения их надо на время отключить. Добавим следующие строки:
(setq osm (getvar "osmode")) - запоминает текущие 2d привязки; (setq osm3 (getvar "3dosmode")) - запоминает текущие 3d привязки;
(setvar "osmode" 0) - отключает 2d привязки. (setvar "3dosmode" 0) - отключает 3d привязки.
И в конце программы вернем привязки установленные пользователем:
(setvar "osmode" osm) - возвращает 2d привязки. (setvar "3dosmode" osm3) - возвращает 3d привязки.

Рис. 2. Управление привязками.
Теперь приступим непосредственно к построению:
В начале постоим шестигранник при помощи стандартной команды «_polygon» :
(command "_polygon" 6 bp "_c" (/ raz_g 2))
Command – функция, которая запускает стандартные команды Автокад; "_ polygon " – стандартная команда Автокад (многоугольник); 6 – количество сторон многоугольника; bp – Координаты базовой точки; "_c" – построение по внутреннему радиусу (по окружности вписанной в многоугольник); (/ raz_g 2) – размер внутреннего радиуса (размер под ключ делим на 2).
Выделите текст, как показано на рисунке и нажмите на кнопку « Загрузить выделенный фрагмент ». См. Рис. 3.

Рис. 3. Загрузка выделенного фрагмента.
Программа переедет в Автокад. На запрос: « Укажите базовую точку: » Укажите любую точку в рабочем окне Автокад. Программа построит шестигранник. См . Рис. 4.

Рис. 4. Шестигранник
Далее при помощи команды «Выдавить» (« _extrude «) построим головку болта:
(command "_extrude" (entlast) "" h_sh)
"_extrude" – стандартная команда Автокад (выдавить); (entlast) – объект, который мы выдавливаем (функция entlast возвращает имя последнего построенного примитива. А это наш шестигранник); "" – означает окончание выбора объектов (имитирует нажатие клавиши Enter>); h_sh – высота выдавливания (высота головки болта).
Добавьте эту строку в программу выделите ее и нажмите на кнопку « Загрузить выделенный фрагмент ». См. Рис. 5.

Рис. 5. Головка болта.
Перейдите в Автокад. Программа построила головку болта. См. Рис. 6.

Рис. 6. Головка болта.
Запомним наш последний построенный примитив в переменной 3dgon :
(setq 3dgon (entlast))
Теперь нам нужно сделать фаску на головке болта. Для этого нужно сначала построит режущий треугольник. Первая точка треугольника будет расположена на окружности описывающей наш шестигранник. Определим радиус этой окружности и сохраним его в переменной r1
(setq r1 (/ (/ raz_g 2) (sin (/ pi 3)))), где
(/ raz_g 2) – радиус вписанной окружности (половина от размера под ключ); (sin (/ pi 3)) – синус 60 градусов.
Чтобы определить координаты первой точки, используем функцию mapcar :
(mapcar ' ))
Функцию mapcar поочередно применяет сначала к первым элементам списков, затем ко втором и так далее. В результате образуется новый список, который и является возвращаемым значением. В нашем случаи я к списку координат базовой точки р1 прибавляю список, который изненит координату X на значение r1
(mapcar '+ (list r1 0 0) bp)
Координаты первой точки сохраняем в переменной р1 :
(setq p1 (mapcar '+ (list r1 0 0) bp))
Координаты второй точки определяем относительно первой, путем изменения координаты Х на размер фаски fas_g :
(setq p2 (mapcar '+ (list (-fas_g) 0 0) p1))
Известно, что углы фаски составляют 60 и 30 градусов. Чтобы найти расстояние между первой и третьей точками, умножим размер фаски на котангенс 60 градусов
(* fas_g (/ (cos (/ pi 3)) (sin (/ pi 3)))), где
fas_g – размер фаски; (/ (cos (/ pi 3)) (sin (/ pi 3))) – котангенс 60 градусов (cos 60 делим на sin 60).
Значение расстояния сохраняем в переменной а1 :
(setq a1 (* fas_g (/ (cos (/ pi 3)) (sin (/ pi 3)))))
Координаты третьей точки определяем относительно первой, путем изменения координаты Z на расстояние а1 :
(setq p3 (mapcar '+ (list 0 0 a1) p1))
Все точки определены, строим треугольник при помощи 3D полилинии:
(command "_3dpoly" p1 p2 p3 p1 "")
"_3dpoly" - стандартная команда Автокад (3д полилиния); p1 p2 p3 p1 – координаты точек; "" – окончание построения полилинии (имитирует нажатие клавиши Enter>).
Добавьте эти строки в программу, выделите их нажмите на кнопку « Загрузить выделенный фрагмент ». См. Рис. 7.

Рис. 7. Режущий треугольник
Перейдите в Автокад. Программа построила нужный треугольник. См. Рис. 8.

Рис. 8. Режущий треугольник
Запомним наш последний построенный примитив в переменной 3dp :
(setq 3dp (entlast))
Теперь, давайте построим фигуру вращения, вращая наш треугольник вокруг оси параллельной оси Z и проходящей через базовую точку bp:
Найдем вторую точку оси относительно bp , изменив координаты Z на 10 :
(setq bpo (mapcar '+ (list 0 0 10) bp))
Строим фигуру вращения:
(command "_REVOLVE" 3dp "" bp bpo 360)
"_REVOLVE" - стандартная команда Автокад (Вращать); 3dp – полилиния режущий треугольник; "" – означает окончание выбора объектов (имитирует нажатие клавиши ); bp bpo – точки оси вращения; 360 – угол вращения 360 градусов.
Добавьте строки в программу, выделите их нажмите на кнопку « Загрузить выделенный фрагмент ». См. Рис. 9.

Рис. 9. Фигура вращения
Перейдите в Автокад . Программа построила фигуру вращения. См. Рис. 10.

Рис. 10. Фигура вращения
Давайте вычтем нашу фигуру вращения и головки болта:
(command "_subtract" 3dgon "" (entlast) "")
"_subtract" - стандартная команда Автокад (Вычитание); 3dgon – головка болта; "" – означает окончание выбора объектов (имитирует нажатие клавиши Enter>); (entlast) – вычитаемый объект (последний примитив фигура вращения); "" – означает окончание выбора объектов для вычитания.
Добавьте эту строку в программу, выделите ее нажмите на кнопку « Загрузить выделенный фрагмент ». См. Рис. 11.

Рис. 11. Фаска на головке болта.
Перейдите в Автокад. Программа сделала на головке фаску. См. Рис. 12.

Рис. 12. Фаска на головке болта.
Запомним наш последний построенный примитив (головку с фаской) в переменной 3dsh :
(setq 3dsh (entlast))
Теперь, давайте приступим к построению стержня болта и резьбы на нем.
Зададим исходные данные:
(setq d_s 8) – диаметр стержня; (setq h_s 60) – высота стержня; (setq dl_r 48) – длина резьбы; (setq sh_r 2) – шаг резьбы.
Определим радиус стержня:
(setq r_s (/ d_s 2))
На верхней поверхности головке рисуем круг:
(command "_circle" bpo r_s), где
"_ circle " - стандартная команда Автокад (Круг); bpo – центр круга; r_s - радиус стержня.
Далее при помощи команды «Выдавить» («_extrude») построим стержень болта:
(command "_extrude" (entlast) "" h_s)
"_extrude" – стандартная команда Автокад (выдавить); (entlast) – объект, который мы выдавливаем (последний примитив - круг); "" – означает окончание выбора объектов (имитирует нажатие клавиши ); h_s – высота выдавливания (высота стержня болта).
Добавьте строки в программу, выделите их нажмите на кнопку « Загрузить выделенный фрагмент ». См. Рис. 13.

Рис. 13. Стержень болта.
Перейдите в Автокад. Программа построила стержень болта. См. Рис. 14.

Рис. 14. Стержень болта.
Давайте объединим стержень и головку болта в единый 3D объект:
(command "_union" 3dsh (entlast) "")
"_ union" – стандартная команда Автокад (объединить); 3dsh – головка болта; (entlast) – последний построенный примитив (стержень болта); "" – означает окончание выбора объектов (имитирует нажатие клавиши ).
Запомним наш последний построенный примитив (3D болт) в переменной 3db :
(setq 3db (entlast))
Определим точку на кромке (кромка — линия соединения головки и стержня):
(setq pk (polar bpo (* 5 (/ pi 4)) r_s)) – определяет координаты точки pk отстоящей от точки bpo на расстояние r_s в направлении угла образующем с осью Х угол (* 5 (/ pi 4)) - 225 градусов.
Создадим сопряжение стержня и головки:
(command "_filletedge" "_r" 1 pk "" "")
"_ filletedge" – стандартная команда Автокад (Сопряжение по кромке); "_r" – вызываем запрос радиуса сопряжения; 1 – значение радиуса сопряжения; pk – точка принадлежащая кромке; "" – означает окончание выбора (имитирует нажатие клавиши Enter>).
Добавьте строки в программу, выделите их нажмите на кнопку « Загрузить выделенный фрагмент ». См. Рис. 15.

Рис. 15. Сопряжение стержня и головки.
Перейдите в Автокад. Программа построила сопряжение стержня и головки. См. Рис. 16.

Рис. 16. Сопряжение стержня и головки.
Теперь создадим фаску на конце стержня:
Определим точку на кромке конца стержня относительно точки нижней кромки, изменив координаты Z на высоту стержня h_s :
(setq pkn (mapcar '+ (list 0 0 h_s) pk))
(command "_CHAMFEREDGE" "_d" sh_r sh_r pkn "" "")
"_ CHAMFEREDGE" – стандартная команда Автокад (Фаска по кромке); "_d" – вызываем запрос расстояний фаски; sh_r - расстояние фаски по ширине (= шаг резбы) sh_r - расстояние фаски по высоте (= шаг резбы) pkn – точка принадлежащая кромке; "" – означает окончание выбора (имитирует нажатие клавиши Enter>).
Добавьте строки в программу, выделите их нажмите на кнопку « Загрузить выделенный фрагмент ». См. Рис. 17.

Рис. 17. Фаска на конце стержня.
Перейдите в Автокад. Программа построила фаску на конце стержня. См. Рис. 18.

Рис. 18. Фаска на конце стержня.
Приступим к построению резьбы.
Определим количество витков резьбы и сохраним его в переменной kol_v :
(setq kol_v (/ dl_r sh_r))
dl_r - длина резьбы; sh_r – шаг резбы.
Всю резьбу разделим на две части:
Основная резьба – kol_v минус 2 витка
Нисходящая резьба – 2 витка.
Определим точки начала резьбы:
Координаты нижней точки Нисходящая резьбы определяем относительно bpo , путем изменения координаты Z на размер равный разности высоты стержня h_s и длины резьбы dl_r :
(setq ps1 (mapcar '+ (list 0 0 (- h_s dl_r)) bpo))
Координаты нижней точки основной резьбы расположены на два витка выше относительно ps1:
(setq ps2 (mapcar '+ (list 0 0 (* 2 sh_r)) ps1))
Строим пружину для основной резьбы:
(command "_HELIX" ps2 r_s r_s "_t" kol_v "_h" sh_r "")
"_ HELIX" – стандартная команда Автокад (Пружина); ps2 – точка начала пружины; r_s – нижний радиус пружины; r_s – верхний радиус пружины; "_t" – вызываем запрос количества витков; kol_v – количество витков; "_h" – вызываем запрос шага витков; sh_r – шаг витков (шаг резбы); "" – имитирует нажатие клавиши Enter>.
Добавьте строки в программу, выделите их нажмите на кнопку « Загрузить выделенный фрагмент ». См. Рис. 19.

Рис. 19. Пружина Основной резьбы.
Перейдите в Автокад. Программа построила пружину Основной резьбы. См. Рис. 20.

Рис. 20. Пружина Основной резьбы.
Вид спереди выглядит так. См. Рис. 21.

Рис. 21. Пружина Основной резьбы. Вид спереди.
Запомним наш последний построенный примитив (пружина) в переменной spir1 :
(setq spir1 (entlast))
Строим пружину для Нисходящей резьбы:
((command "_HELIX" ps1 (+ r_s (* 1.5 sh_r)) r_s "_t" 2 "_h" sh_r "")
"_ HELIX" – стандартная команда Автокад (Пружина); рs1 – точка начала пружины; (+ r_s (* 1.5 sh_r)) – нижний радиус пружины увеличиваем на 1,5 шага резьбы; r_s – верхний радиус пружины; "_t" – вызываем запрос количества витков; 2 – количество витков; "_h" – вызываем запрос шага витков; sh_r – шаг витков (шаг резбы); "" – имитирует нажатие клавиши Enter>.
Добавьте строки в программу, выделите их нажмите на кнопку « Загрузить выделенный фрагмент ». См. Рис. 22.

Рис. 22. Пружина Нисходящей резьбы.
Перейдите в Автокад. Программа построила пружину Нисходящей резьбы. См. Рис. 23.

Рис. 23. Пружина Нисходящей резьбы.
Вид спереди выглядит так. См. Рис. 24.

Рис. 24. Пружина Нисходящей резьбы. Вид спереди.
Запомним наш последний построенный примитив (пружина) в переменной spir2 :
(setq spir2 (entlast))
Давайте объедим прижины:
(command "_join" spir1 spir2 "")
"_join" – стандартная команда Автокад (соединить); spir1 – Основная пружина; spir2 – Нисходящая пружина; "" – означает окончание выбора объектов (имитирует нажатие клавиши Enter>).
Теперь нам нужно построить режущий равносторонний треугольник. Размер его стороны будет равен:
(- sh_r 0.2) – шаг резьбы минус 0.2
Расположить его нужно, как показано на рис. 25.

Рис. 25. Расположение режущего треугольника.
Давайте определим координаты точки pt1 относительно точки ps1 :
Координата Х изменится на величину нижнего радиуса, который равен ( + r_s ( * 1.5 sh_r ) плюс 0.2 . Сохраним значение в переменной is_X
(setq is_X (+ r_s (* 1.5 sh_r) 0.2))
Координата Z изменится на половину длины стороны треугольника. Сохраним значение в переменной is_Z
(setq is_Z (/ (- r_sh 0.2) 2))
Координаты точки pt1:
(setq pt1 (mapcar '+ (list is_X 0 is_Z) ps1))
Определим координаты точки pt2 относительно точки pt1:
(setq pt2 (mapcar '+ (list 0 0 (- 0.2 sh_r)) pt1))
Для определения координат точки pt3, в начале определим высоту треугольника и сохраним ее в переменной vis :
(setq vis (* (- 0.2 sh_r) (sin (/ pi 3))))
Определим координаты точки pt3 относительно точки pt2:
(setq pt3 (mapcar '+ (list vis 0 is_Z) pt2))
Все точки определены, строим треугольник при помощи 3D полилинии:
(command "_3dpoly" pt1 pt2 pt3 pt1 "")
"_3dpoly" - стандартная команда Автокад (3д полилиния); pt1 pt2 pt3 pt1 – координаты точек; "" – окончание построения полилинии (имитирует нажатие клавиши Enter>).
Добавьте эти строки в программу, выделите их нажмите на кнопку « Загрузить выделенный фрагмент ». См. Рис. 26.

Рис. 26. Режущий треугольник.
Перейдите в Автокад. Программа построила режущий треугольник. См. Рис. 27. Вид спереди.

Рис. 27. Режущий треугольник.
Запомним наш последний построенный примитив (режущий треугольник) в переменной 3dp :
(setq 3dp (entlast))
Теперь при помощи стандартной команды «Сдвиг» будет стоит 3d объект треугольником вдоль всей пружины. Но вначале определим координаты точки начала пружины относительно точки ps1 :
(setq bps (mapcar '+ (list (+ r_s (* 1.5 sh_r)) 0 0) ps1))
И координаты точки конца пружины относительно точки ps2:
(setq pts (mapcar '+ (list r_s 0 dl_r) ps2))
Строим 3d объект при помощи команды «Сдвиг»:
(command "_sweep" 3dp "" "_b" bps pts)
"_ sweep" – стандартная команда Автокад (Сдвиг); 3dp – режущий треугольник; "" – означает окончание выбора объектов (имитирует нажатие клавиши Enter>); bps – точка начала пружины; pts – точка конца пружины;
Добавьте эти строки в программу, выделите их нажмите на кнопку « Загрузить выделенный фрагмент ». См. Рис. 28.

Рис. 28. Построение 3D объекта при помощи «Сдвига».
(команда «Сдвиг» в зависимости от мощности компьютера может занять несколько секунд)
Перейдите в Автокад. Программа построила 3D объект при помощи «Сдвига». См. Рис. 29.

рис. 29. Построение 3D объекта при помощи «Сдвига».
Нам остается лишь вычисть последний построенный объект из 3d болта:
(command "_subtract" 3db "" (entlast) "")
"_subtract" - стандартная команда Автокад (Вычитание); 3db – болт; "" – означает окончание выбора объектов (имитирует нажатие клавиши Enter>); (entlast) – вычитаемый объект (последний примитив фигура построенная сдвигом); "" – означает окончание выбора объектов для вычитания.
Добавьте эту строку в программу, выделите строки как показано на рис. 30 нажмите на кнопку « Загрузить выделенный фрагмент ».

Рис. 30. Вычитание последнего построенного объекта.
Перейдите в Автокад. Программа построила резьбу. См. Рис. 31.

Давайте посмотрим болт в другом визуальном стили. Например: в Концептуальном. Нажмите на надпись 2D каркас с лева в верхнем углу рабочего окна Автокад. И выберите «Концептуальный». См. Рис. 32.

Рис. 32. Смена визуального стиля.
Вид 3D болта в Концептуальном стиле. См. Рис. 33

Рис. 33. Вид 3D болта в Концептуальном стиле.
Вид 3D болта спереди. См. Рис. 34

Рис. 34. Вид 3D болта спереди в Концептуальном стиле.
Давайте при помощи функции defun преобразуем нашу программу в команду Автокад:
В начале программы добавим строку, в которой придумаем имя новой команды ( 3d_bolt ) и перечислим все временные переменные:
(defun c:3d_bolt (/ raz_g h_g fas_g bp osm osm3 3dgon r1 p1 p2 a1 p3 3dp bpo 3dsh d_s h_s dl_r sh_r r_s 3db pk pkn kol_v ps1 ps2 spir1 spir2 is_X is_Z pt1 pt2 vis pt3 bps pts) ) ; end_defun
В конце программы добавим закрывающую скобку.
Не забудьте сохранить программу.
Окончательный вариант программы см. Рис. 35.

Рис. 35. Программа 3D болт.
Теперь чтобы загрузить нашу программу нажимаем на кнопку «Загрузить активное окно редактора».
Чтобы запустить нашу новую команду ( 3d_bolt ) :
Перейдите в AutoCAD. В командной строке наберите 3d_bolt и нажмите клавишу < Enter >.
На запрос: « Укажите базовую точку : ». Укажите любую точку в рабочем окне AutoCAD. Программа построит 3D болт.
Если к этой программе, дополнительно, создать диалоговое окно, в котором будут задаваться основные параметры болта см. Рис. 36.

Рис. 36. Диалоговое окно.
то программа будет, за считанные секунды, создавать 3D болты с другими параметрами.
Затем для быстрого выбора стандартных болтов можно создать таблицу Excel, в которой указать типы болтов и их основные параметры. См. Рис. 37.

рис. 37. Таблица Excel.
Подключить эту таблицу к форме, и для ввода параметров стандартного болта достаточно будет выбрать тип болта в пункте « Выберите болт ».
Пример такой программы приведен в конце видео.
Смотрите видео к этому уроку:
На этом наш урок окончен. Надеюсь, что эта статья оказалось кому-то полезной, и 3D моделирование в AutoCAD, стало для Вас более быстрым и комфортным.
Вы можете бесплатно скачать LISP программу создания 3D болта с резбой:

Скачать программу 3d_bolt.lsp (Размер файла: 1.02 kB)
Если у Вас появились вопросы, задавайте их в комментариях.
Я с удовольствием отвечу.
Также пишите в комментариях или мне на почту:
Была ли для Вас полезной информация, данная в этом уроке?
На какие вопросы программирования, Вы хотели бы, увидит ответы в следующих уроках?
Ваши мнения очень важны для меня.
Если вы хотите получать новости с моего сайта. Оформляйте подписку.
До новых встреч.
«Автор: Михаил Орлов»
Также на эту тему Вы можете почитать:
Урок 9. Примеры LISP программ: Сумма длин отрезков.
Пример LISP программы управления диалоговым окном в Автокад
Как нарисовать круг в Автокаде.
10 комментарии на “ 3D моделирование. Болт с резьбой. ”
Сергей 21.07.2015 11:36
Здравствуйте. При создании болта по данному алгоритму столкнулся со следующей проблемой: при сопряжении стержня и головки болта (грань сопряжения указывается посредством точки «pk»), если текущим стоит стиль «Реалистичный» или «Концептуальный», (не 2d-каркас), то автокад не может определить грань сопряжения и сопрягает не те что нужно грани. Та же проблема возникает, если на чертеже, куда вставляется болт, уже начерчено много объектов, и вставляемый болт получается на экране «маленьким» (т.е. не на весь экран). Автокад так же промахивается при выборе грани и сопрягает не то, что нужно. Я вышел из положения, нарисовав окружность в точке bpo
(command «_circle» bpo (/ raz_g 2))
потом зумировал чертеж по данной окружности
(command «_zoom» «_o» (entlast) «»)
сделал текущим визуальный стиль 2d-каркас
(command «_vscurrent» «_2»)
удалил вспомогательную окружность
(command «_erase» (entlast) «»)
и только потом сопрягал грани по точке pk
Михаил Орлов 21.07.2015 13:11
Я знал об этих проблемах и решил их приблизительно так же как Вы. Текст окончательного варианта программы я не публиковал. В конце видео присутствует лишь ее демонстрация.
Мне хотелось чтобы, это заметил кто нибудь без моей помощи. Поздравляю Вас, этим человеком оказались Вы. Вы не только заметили, но и дали свой вариант решения.
Дмитрий 18.12.2015 04:48
«Затем для быстрого выбора стандартных болтов можно создать таблицу Excel. Подключить эту таблицу к форме» (с) А каким образом подключить? И как извлечь данные из Excel в список? Спасибо.
