AutoLISP
Zawartość zadań:
Opracowanie oprogramowania do budowy płytki według określonych parametrów
a jednocześnie zapewnić odpowiedni interfejs (kliknięcie piktogramu, okno dialogowe).Aby wykonać zadania, należy wykonać następujące kroki:
Opracowanie pakietu poleceń (skrypt) kształtowania rysunku płytki według indywidualnej zadań.Modyfikuj pakiet poleceń w programie w języku AutoLISP.Rozszerz możliwości programu w taki sposób, aby niezależne parametry rozmiaru (rozmiar) były zmienne.Opracowanie panelu narzędzi użytkownika z piktogramem, który powoduje program budowy płytki
Upewnij się, że parametry płytki są wprowadzane za pomocą okna dialogowego.Podstawowy materiał do wykonywania pracy kontrolnej jest przedstawiony w modułach dyscypliny (w tematach 6-10).Robot wykonany w postaci plików programu (lsp - plik i dcl - plik).Również z gotową pracą należy dodać 5-10 zdjęć ekranu etapowego wykonania pracy z małym opisem, co jest niezbędne do tworzenia sprawozdania.
Załączniki 2
Opinia zleceniodawcy o współpracy z Yura Abrikosov
AutoLISPPrace wykonane są szybko, jakościowo i dostarczane w odpowiednim czasie. Zadowolony z współpracy.
Opinia freelancera o współpracy z Miroslav Hom
AutoLISPWszystko przeszło z powodzeniem. Polecam .
-
А какие у вас сроки?
-
А что будет если не успеешь сдать к этому числу?
Остаётся актуальным или нет?
-
Я наверно начну делать и если дело пойдёт, то оформим сделку (я отдельно сообщу об этом). А если не успею, - то мне ничего не надо (буду считать, что тренировался с целью учёбы. Я начинающий фрилансер).
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"

Перезапускаем автокад и в результате получается:
-
Aktualne zlecenia dla freelancerów w kategorii Aplikacje desktopowe
Narzędzie do porównywania rachunków z bankiem, kartami i księgowymZadanie techniczne: narzędzie do porównywania rachunków z bankiem, kartami i księgowymOgólny cel Potrzebne jest lokalne narzędzie (skrypt/mała aplikacja w Pythonie), które uruchamiane ręcznie co 1-2 miesiące na moim komputerze i dokonuje porównania między: Rachunkami, które… Python, Aplikacje desktopowe ∙ 2 dni 7 godzin temu ∙ 39 ofert |
Dodać przerwy 10-30 sekund między wysyłkami e-mailiWitam! Szukam doświadczonego programisty 1C / BAS (BAF) do szybkiego rozwiązania problemu technicznego z wysyłką maili.Istota problemu: Używamy programu księgowego BAF (Business Automation Framework), edycja 2.0. Raz w miesiącu pojawia się potrzeba masowego wysyłania klientom… Programowanie stron internetowych, Aplikacje desktopowe ∙ 7 dni 22 godziny temu ∙ 10 ofert |
Rewersowe inżynieria konsolowych narzędzi do ankietowania kontrolerów SSD (Flash ID)1. Cel pracy Wydzielenie interfejsu programowania aplikacji (API) do interakcji z kontrolerami SSD/NVMe z dostarczonego zestawu narzędzi konsolowych (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron itd.). Wynikiem ma być działający kod w języku C/C++ lub dokładna… C i C++, Aplikacje desktopowe ∙ 8 dni 10 godzin temu ∙ 6 ofert |