AutoLISP
400 UAHКонтрольная работа
Содержание задания:
Разработать программное приложение построения прокладки по заданным параметрам
и обеспечить при этом соответствующий интерфейс (кнопка пиктограммы, диалоговое окно).
<!--[if !vml]--><!--[if !vml]-->
Для выполнения завдания необходимо выполнить следующие шаги:
Разработать пакет команд (скрипт) формирования чертежа прокладки по индивидуальному заданию.
Модифицировать пакет команд в программу на языке AutoLISP.
Расширить возможности программы таким образом, чтобы независимые параметры прокладки (размеры) были переменными.
Разработать пользовательскую панель инструментов с пиктограммой, которая вызывает программу построения прокладки
Обеспечить, чтобы параметры прокладки вводились с помощью диалогового окна.
Основной материал для выполнения контрольной работи изложен в модулях дисциплини (в темах 6-10).
Выполненная робота в виде файлов программы (lsp – файл и dcl – файл). Также с готовой работой следует приложить 5-10 скриншотов поетапного выполнения работы с небольшим описанием, это необходиом для формирования отчета.
Приложения 2
Отзыв заказчика о сотрудничестве с Юрой Абрикосовым
AutoLISPРабота выполнена быстро, качественно, сдана вовремя. Доволен сотрудничеством.
Отзыв фрилансера о сотрудничестве с Мирославом Хомом
AutoLISPВсё прошло успешно. Рекомендую.
-
А какие у вас сроки?
-
А что будет если не успеешь сдать к этому числу?
Остаётся актуальным или нет?
-
Я наверно начну делать и если дело пойдёт, то оформим сделку (я отдельно сообщу об этом). А если не успею, - то мне ничего не надо (буду считать, что тренировался с целью учёбы. Я начинающий фрилансер).
p.s.: если же в это время кто-то более опытный подаст заявку, то выбирай его (обо мне просто не думай).
--------------------------------------------------------------------------------------
Вопрос о версии Autocad. У меня 2014. Попытался я создать пакетный файл (как в теме 5) и у меня круг не нарисовало. Методом проб и ошибок выяснил, что работает по второму варианту:

Т.е., что будет если у преподавателя не заработает из-за версии?
-
Кажется 1-й пункт сделал.
a) Прежде чем проверять убедись, что загружена пунктирная линия:


Если нет, тогда загрузи.
б) создай блокнотом файл ".txt" и вставь код:
_OSNAP
_OFF
_LINETYPE
_S _bylayer
_LWEIGHT 0.30
_CIRCLE 0,0 _D 100
_CIRCLE 0,0 _D 50
_XLINE
0,37
0,100
_ROTATE
0,37
0,37 45
_XLINE
0,37
0,100
_ROTATE
0,37
0,37 -45
_TRIM
100,105
-100,110
0,50
_TRIM
0,-50
100,105
-100,110
_XLINE
0,37
100,37
_TRIM
100,37
1000,-105
0,-110
_TRIM
100,37
0,-105
-1000,-110
_ERASE
100,37
_LINETYPE
_S JIS_02_4.0
_LWEIGHT 0.05
_LINE
0,-55
0,55
_LINE
-55,0
55,0
_LINETYPE
_S _bylayer
_OSNAP
_END
(пробелы и переводы на новую строку не убирай, - опытным путём определил, что каждый символ важен)
в) измени расширение на:

Если такой возможности не будет, тогда сними галочку параметрах папок:

г) В командной строке автокада вводишь ПАКЕТ и надо выбрать файл:

и результат:

-
Появилась маленькая проблема: при копировании текста программы из поста искусcтвенно добавляются пробелы в текст программы (между строк). В данном случае это критично. Значит надо привести программу к такому виду:

-
Сделал 2-й пункт работы.
a) В командной строке пишешь:

б) вставляешь код и нажимаешь загрузить:

Сам код (в данном случае не важны пробелы между командами):
(setvar "osmode" 0)
(setvar "3dosmode" 0)
(command "_linetype" "_s" "bylayer" "")
(command "_lweight" 0.30 "")
(command "_circle" '(0 0) "_d" 100 "")
(command "_circle" '(0 0) "_d" 50 "")
(command "_xline" '(0 37) '(0 100) "")
(command "_rotate" '(0 37) "" '(0 37) 45 "")
(command "_xline" '(0 37) '(0 100) "")
(command "_rotate" '(0 37) "" '(0 37) -45 "")
(command "_trim" '(100 105) '(-100 110) "" '(0 50) "")
(command "_trim" '(0 -50) "" '(100 51) '(-100 52) "")
(command "_xline" '(0 37) '(100 37) "")
(command "_trim" '(100 37) "" '(1000 -51) '(-1000 -52) "")
(command "_erase" '(100 37) "")
(command "_linetype" "_s" "JIS_02_4.0" "")
(command "_lweight" 0.05 "")
(command "_line" '(0 -55) '(0 55) "")
(command "_line" '(-55 0) '(55 0) "")
(command "_linetype" "_s" "bylayer" "")
(setvar "osmode" 1)
-
Во 2-й пункте поправил программу:
(setvar "osmode" 0)
(command "_linetype" "_s" "bylayer" "")
(command "_lweight" 0.30 "")
(command "_circle" '(0 0) "_d" 100 "")
(command "_circle" '(0 0) "_d" 50 "")
(command "_xline" '(0 37) '(0 100) "")
(command "_rotate" '(0 37) "" '(0 37) 45 "")
(command "_xline" '(0 37) '(0 100) "")
(command "_rotate" '(0 37) "" '(0 37) -45 "")
(command "_trim" '(100 105) '(-100 110) "" '(0 50) "")
(command "_trim" '(0 -50) "" '(100 105) '(-100 110) "")
(command "_xline" '(0 37) '(100 37) "")
(command "_trim" '(100 37) "" '(1000 -105) '(0 -110) "")
(command "_trim" '(100 37) "" '(0 -105) '(-1000 -110) "")
(command "_erase" '(100 37) "")
(command "_linetype" "_s" "JIS_02_4.0" "")
(command "_lweight" 0.05 "")
(command "_line" '(0 -55) '(0 55) "")
(command "_line" '(-55 0) '(55 0) "")
(command "_linetype" "_s" "bylayer" "")
(setvar "osmode" 1)
а ту считать не действительной.
-
Сделал 3-й пункт.
Определяемые пользователем параметры:

Этот код нужно использовать как в пункте 2-м. Только после "загрузки" станет доступной выбор функции в командной строке автокада:

После чего можно будет ввести основные параметры.
(defun c:KONTRABOTA(/)
(setq D1 (getreal "D1 (50)= "))
(setq D2 (getreal "D2 (100)= "))
(setq R1 (getreal "R1 (37)= "))
(if (= D1 nil) (setq D1 50.0) D1)
(if (= D2 nil) (setq D2 100.0) D2)
(if (= R1 nil) (setq R1 37.0) R1)
(if(and (< D1 (* R1 2)) (< (* R1 2) D2))
(progn
(setvar "osmode" 0)
(command "_linetype" "_s" "bylayer" "")
(command "_lweight" 0.30 "")
(command "_circle" '(0 0) "_d" D1 "")
(command "_circle" '(0 0) "_d" D2 "")
(setq pt0 '(0.0 0.0))
(setq pt1 (mapcar '+ pt0(list 0.0 R1)))
(setq pt2 (mapcar '+ pt0(list 0.0 D2)))
(command "_xline" pt1 pt2 "")
(command "_rotate" pt1 "" pt1 45 "")
(command "_xline" pt1 pt2 "")
(command "_rotate" pt1 "" pt1 -45 "")
(setq pt3 (mapcar '+ pt0(list D2 (+ D2 5))))
(setq pt4 (mapcar '+ pt0(list (- 0.0 D2) (+ D2 10))))
(setq pt5 (mapcar '+ pt0(list 0.0 (/ D2 2))))
(command "_trim" pt3 pt4 "" pt5 "")
(setq pt6 (mapcar '+ pt0(list 0.0 (- 0.0 (/ D2 2)))))
(setq pt7 (mapcar '+ pt0(list (- 0.0 D2) (+ D2 10))))
(command "_trim" pt6 "" pt3 pt7 "")
(setq pt8 (mapcar '+ pt0(list D2 R1)))
(command "_xline" pt1 pt8 "")
(setq del_1 (entlast))
(setq pt9 (mapcar '+ pt0(list (* 10 D2) (- 0.0 (+ D2 5)))))
(setq pt10 (mapcar '+ pt0(list 0.0 (- 0.0 (+ D2 10)))))
(command "_trim" del_1 "" pt9 pt10 "")
(setq pt11 (mapcar '+ pt0(list 0.0 (- 0.0 (+ D2 5)))))
(setq pt12 (mapcar '+ pt0(list (- 0.0 (* 10 D2)) (- 0.0 (+ D2 10)))))
(command "_trim" del_1 "" '(0 -105) '(-1000 -110) "")
(command "_erase" del_1 "")
(command "_linetype" "_s" "JIS_02_4.0" "")
(command "_lweight" 0.05 "")
(setq pt13 (mapcar '+ pt0(list 0.0 (- 0.0 (+ (/ D2 2) 5)))))
(setq pt14 (mapcar '+ pt0(list 0.0 (+ 0.0 (+ (/ D2 2) 5)))))
(command "_line" pt13 pt14 "")
(setq pt13 (mapcar '+ pt0(list (- 0.0 (+ (/ D2 2) 5)) 0.0 )))
(setq pt14 (mapcar '+ pt0(list (+ 0.0 (+ (/ D2 2) 5)) 0.0 )))
(command "_line" pt13 pt14 "")
(command "_linetype" "_s" "bylayer" "")
(setvar "osmode" 1)
)
(alert "Error! D1 < 2*R1, 2*R1 < D2")
)
)
Твоя задача протестировать эту программу. При этом нужно вводить не только корректные данные, но и откровенно ошибочные (чтобы посмотреть как программа на них реагирует).
Что касается пунктов 4 и 5-ть, то мне они не знакомы, поэтому возможно будет задержки выполнения. Посмотрим.
-
4-й сделал.
Вид -> Панели
создаём новую панель

Копируем любую пиктограмму из соседних панелей. Меняем эмблему и макрос:

Файл ".fas" делается путём компиляции файла ".lsp" с параметром " 'st"

Перезапускаем автокад и в результате получается:
-
Актуальные фриланс-проекты в категории Десктопные приложения
Разработка кастомного ПО (Android-приложения + CMS) для киосков самообслуживания SUNMI K2 (Фастфуд)
1000 UAH
Ищем опытную команду или Middle/Senior Android-разработчика (возможно, с Full-stack навыками) для создания собственного программного обеспечения для киосков самообслуживания сети заведений быстрого питания. Сейчас наши терминалы работают на базе готового облачного интегратора,… CMS, Десктопные приложения ∙ 16 часов 15 минут назад ∙ 13 ставок |
Нужно сделать миграцию текущей рабочей программы с foxpro на C#Всем привет! у нас есть программа на foxpro (в ней есть несколько модулей, программа для учета), есть исходники программы, при острой необходимости можно проконсультироваться с людьми по поддержке текущей программы что нужно сделать: 1. аналитику, что и как работает, составить… C#, Десктопные приложения ∙ 6 дней назад ∙ 18 ставок |
ПО Мастер-программа «KONSTRUCTOR»
185 977 UAH
Мы ищем очень опытного C++ разработчика для модернизации существующего ПО (мастер-программы). Программа отвечает за создание производного ПО представляющего аудио-визуальные сеансы психологической коррекции. Текущая версия написана на чистом WinAPI (Visual Studio 2019/2022).… C и C++, Десктопные приложения ∙ 8 дней 12 часов назад ∙ 19 ставок |
Настройка ODOO Enterprise для строительстваНеобхідно побудувати картки та налаштувати зручний імпорт, інтеграцію з ЕДО і загалом Workflow ODOO Компанія займається системною інтеграцією: маємо поставки обладнання В2В або з прямою маржинальністю, або з рібейтами в подальшому. Крім того, ведемо будівельні роботи на об'єктах… Автоматизация управления предприятием, Десктопные приложения ∙ 8 дней 22 часа назад ∙ 7 ставок |
Добавить возможность работы с Новой почтой и Делиери в BAS Малый бизнес 1.6.21.1
5000 UAH
Реализовать по возможности через расширение. Потребна загрузка справочников и создание ТТН. Заполнение данных на отгрузку в Заказе покупателя. Далее на основе заказа создается ТТН. Будет несколько кабинетов. Возможность привязать кабинет к менеджеру или пользователю. Сумма… Десктопные приложения, Управление клиентами и CRM ∙ 12 дней 18 часов назад ∙ 19 ставок |