- Информация раздела AutoLISP


Союз образовательных сайтов

AutoCAD

Проектирование
AutoLISP и VisualLISP
VBA
Delphi

Autodesk Inventor

Проектирование
Программирование

Разное

Программирование в Delphi
Статьи

Студенту

Лекции
Лабораторные работы

Скачать

Документация
Программы
Разное

Контакты

Rambler's Top100  

 

<< Назад

Пример построения параметрической детали

Напишем программу параметрического проектирования детали, изображенной на рис. 1

Рис.1. Задание

Для начала нарисуем параметрический эскиз детали. Указываются размеры детали, которые являются входными параметрами к программе, а также точки, которые будут рассчитываться при программировании. Эскиз должен использоваться на этапе программирования как пособие для верного понимания детали и как руководство к расчету точек, необходимых для отображения детали (рис.2).

Рис. 2. Параметрический эскиз детали.

Пришем программу (необходимо отметить, что программа без проверки данных на допустимость/совместимость, которая обеспечила бы стабильность работы программы):

;******************************************
; Блок ввода данных
;******************************************
;основная функция:
(defun Try_param ( / p1 d1 d2 d3 s h )
; инициализация всех данных для рисования
   (initget 1)
   (setq p1 (Getpoint "Укажите базовую точку детали :"))
   (initget 6)
   (setq d1 (Getreal "\nВведите d1 <10.0>:"))
   (if (not d1) (setq d1 10.0))
   (initget 6)
   (setq d2 (Getreal "Введите d2 <5.0>:"))
   (if (not d2) (setq d2 5.0))
   (initget 6)
   (setq d3 (Getreal "Введите d3 <15.0>:"))
   (if (not d3) (setq d3 15.0))
   (initget 6)
   (setq s (Getreal "Введите s <6.0>:"))
   (if (not s) (setq s 10.0))
   (initget 6)
   (setq h (Getreal "Введите h <12.0>:"))
   (if (not h) (setq h 12.0))
   
; рисование детали - запуск параметрического чертежа
   (DrawDetail p1 d1 d2 d3 s h)
)
(prompt "Try_param, ")

;******************************************
; Блок построения чертежа детали
;******************************************
;основная функция:
(defun DrawDetail (p1 d1 d2 d3 s h / p2 p3 p4 p5 p6 p7 x y det)
; обходим деталь по часовой стрелке
   (setq
      x (nth 0 p1)
      y (nth 1 p1)
      p2 (list x (+ y (/ d2 2.0)))
      p3 (list x (+ y (/ d1 2.0)))
      p4 (list (+ x s) (+ y (/ d1 2.0)))
      p5 (list (+ x s) (+ y (/ d3 2.0)))
      p6 (list (+ x h) (+ y (/ d3 2.0)))
      p7 (list (+ x h) (+ y (/ d2 2.0)))
   )
; отключение привязок
   (command "_.osnap" "_none")
; рисование
   (command "-layer" "s" "BaseLine" "")
   (command "_.pline" p2 "w" "0" "" p3       p4 p5 p6 p7 "c")
; сохранение нарисованного примитива
   (setq det (entlast))
; отражение нарисованной детали
   (command "_.mirror" det "" p1 "@1,0" "N")
; рисование
   (command "_.pline" p2 (list x (- y (/ d2 2.0))) "")
   (command "_.pline" p7 (list (+ x h) (- y (/ d2 2.0))) "")
; установка белого цвета
   (command "-layer" "s" "Lines" "")

; ось
   (command "_.line" (list (- x 5) y) (list (+ x h 5) y)"")

; штриховка
   (command "-layer" "s" "Hath" "")
   (command "_.bhatch" "p" "ansi31"
      (/ (+ d3 h) 70.0) ; расчет относительного масштаба штриховки
      "0" ; угол наклона
      (list (+ x (/ h 10.0)) (+ y (/ d2 2.0) (/ (- d1 d2) 4.0))) ; точки внутри шртихуемой области
      (list (+ x (/ h 10.0)) (- y (/ d2 2.0) (/ (- d1 d2) 4.0))) ; точки внутри шртихуемой области
      ""
   )
)
(prompt "DrawDetail ")

;******************************************
; Блок создания слоев
;******************************************
(defun create_layers()
(command "-linetype" "L" "DASHDOT" "" "")
; Слой с толщиной линий 0.5 мм - BaseLine, 0.2 мм - Lines, для штриховки Hath
   (command "-layer" "M" "BaseLine" "LW" "0.5" "" "C" "white" "" "M" "Lines" "LW" "0.2" "" "C" "blue" "" "L" "DASHDOT" ""
    "M" "Hath" "LW" "0.2" "" "C" "blue" "" "")

)

Сохраняем программу в файл с именем, например, param.lsp в папку Support, где установлен AutoCAD.

Запускаем AutoCAD, и в коммандной строке набираем (load "param").
В первый раз и только один! раз выполняем обязательную комманду в коммандной строке (create_layers).
Запускаем нужное количество раз функцию параметрического проектирования детали (try_param) в коммандной строке AutoCAD и отвечая на запросы строим деталь. Пример выполнения программы показан на рис. 3.

Рис. 3. Результат выполнения программы.


Чтобы быть в курсе всех событий, получения необходимой и интересной информации, подпишись на рассылку "Создание САПР на базе продуктов Autodesk"

 

 
BESTHOSTING - хостинг от 6 уе за 1000 Мб места на диске, домен - бесплатно!
Домой | AutoCAD | Autodesk Inventor | Разное | Студенту | Скачать | Контакты |                                              Каталог

(с) 2004 Калугин Сергей Сергеевич
Сайт управляется системой uCoz