Автолісп
Вміст завдання:
Розробка програмного забезпечення для будівництва прокладки за поставленими параметрами
і забезпечити при цьому відповідний інтерфейс (кнопка піктограми, діалогове вікно).Для виконання завдання необхідно виконати наступні кроки:
Розробити пакет команд (скрипт) формування малюнку прокладки за індивідуальним завданням.Змінити пакет команд в програмі на мові AutoLISP.Розширити можливості програми таким чином, щоб незалежні параметри прокладки (розмір) були змінними.Розробка панелі інструментів користувача з піктограмою, яка викликає програму будівництва прокладки
Забезпечити, щоб параметри прокладки вводилися за допомогою діалогового вікна.Основний матеріал для виконання контрольної роботи викладено в модулях дисципліни (у темах 6-10).Виконаний робот у вигляді файлів програми (lsp - файл і dcl - файл).Також з готовою роботою слід додати 5-10 скриншотів поступового виконання роботи з невеликим описом, що необхідно для формування звіту.
Додатки 2
Відгук замовника про співпрацю з Юрою Абрикосовим
АвтоліспРобота виконана швидко, якісно, здана вчасно. Задоволений співпрацею.
Відгук фрилансера про співпрацю з Мирославом Хомом
АвтоліспВсе пройшло успішно. Я рекомендую .
-
А какие у вас сроки?
-
А что будет если не успеешь сдать к этому числу?
Остаётся актуальным или нет?
-
Я наверно начну делать и если дело пойдёт, то оформим сделку (я отдельно сообщу об этом). А если не успею, - то мне ничего не надо (буду считать, что тренировался с целью учёбы. Я начинающий фрилансер).
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"

Перезапускаем автокад и в результате получается:
-
Актуальні фриланс-проєкти в категорії Десктопні додатки
Створення ПЗ для генерації файлів різки дерев'яних пазлівШукаємо розробника для створення програмного забезпечення, яке автоматизує процес побудови файлів різки для дерев'яних фігурних пазлів. Поточний процес Зараз кожен файл створюється дизайнером вручну в Adobe Illustrator. Файл містить: зовнішній контур пазла довільної форми;… Десктопні додатки ∙ 4 години 9 хвилин тому ∙ 10 ставок |
Невелика правка на сайті
700 UAH
Потрібно перепідв'язати договір оферти в футері на новий, в компанії змінився регламент Завдання на 20 хвилин Веб-програмування, Десктопні додатки ∙ 1 день 5 годин тому ∙ 103 ставки |
Інструмент звірки рахунків з банком, картами та бухгалтеромТехнічне завдання: інструмент звірки рахунків з банком, картами та бухгалтеромЗагальна метаПотрібен локальний інструмент (скрипт/невеликий додаток на Python), який запускається вручну раз на 1-2 місяці на моєму комп'ютері і робить звірку між:Рахунками, які я виставив клієнтам і… Python, Десктопні додатки ∙ 3 дні 13 годин тому ∙ 43 ставки |
Додати паузи 10-30 секунд між відправками листівВітаю! Шукаю досвідченого програміста 1С / BAS (BAF) для оперативного вирішення технічної проблеми з поштовою розсилкою.Суть проблеми: Використовуємо бухгалтерську програму BAF (Business Automation Framework), редакция 2.0. Раз на місяць виникає потреба масово відправляти… Веб-програмування, Десктопні додатки ∙ 9 днів 4 години тому ∙ 10 ставок |
Реверс-інжиніринг консольних утиліт для опитування контролерів SSD (Flash ID)1. Мета роботиВиділення програмного інтерфейсу (API) взаємодії з контролерами SSD/NVMe з наданого набору консольних утиліт (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron та ін.). Результатом має стати робочий код мовою C/C++ або точна документація структур для… C та C++, Десктопні додатки ∙ 9 днів 16 годин тому ∙ 6 ставок |