Форум программистов, компьютерный форум, киберфорум
Наши страницы
AutoLISP
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Vort
0 / 0 / 0
Регистрация: 22.02.2015
Сообщений: 7
1

Подскажите, как сделать это в AutoLisp?

22.02.2015, 14:06. Просмотров 831. Ответов 14
Метки нет (Все метки)

Средствами AutoLISP создать функцию, осуществляющую ввод данных в режиме диалога и рисующую с использованием разных цветов правильные 8- или 12-гранники между двумя заданными точками на требуемом расстоянии друг от друга.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2015, 14:06
Ответы с готовыми решениями:

Как сделать в autolisp это
нужно сделать Двенадцать дуг, имеющих одну общую начальную или конечную точку, первая дуга...

AutoLISP; как сделать так, чтобы функции princ , prin1 и print печатали аргумент ПО ОДНОМУ РАЗУ
Друзья! Работаю в VisualLISP, AutoCAD Неужели ничего умного не придумали на этот счёт? Вывожу...

Подскажите как это сделать
При зашифровывании исходного сообщения каждую его букву заняли одной либо двумя цифрами, причем...

Подскажите, как это сделать в Windows XP?
Всем привет! Кто подскажет: 1) как отправлять SMS с ПК на сотовый 2) Отчего может быть такое что...

Подскажите последнему профану, как это сделать?
Здравствуйте! Не скрою, что мои познания в программировании очень малы, но вот вдруг захотелось...

14
Catstail
Модератор
24167 / 12154 / 2180
Регистрация: 12.02.2012
Сообщений: 19,742
22.02.2015, 14:32 2
Цитата Сообщение от Vort Посмотреть сообщение
правильные 8- или 12-гранники
- или "угольники"?
0
Vort
0 / 0 / 0
Регистрация: 22.02.2015
Сообщений: 7
22.02.2015, 15:54  [ТС] 3
По-идее да. Угольники тоже подходят под описание.
0
ur_naz
Заблокирован
22.02.2015, 16:24 4
В чем сложность? Если "Я не умею, сделайте за меня", то это в платный раздел! Если "Вот код, не могу понять где ошибка", то можно и помочь, но где код?
0
Vort
0 / 0 / 0
Регистрация: 22.02.2015
Сообщений: 7
22.02.2015, 16:46  [ТС] 5
Извиняюсь, вот код:
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
; 12grannik
      (defun k12 ( )                                             ;1
      (setq cp (polar pn ang1 a2))                           ;2
      (command "_POLYGON" 12 cp "В" a2)                          ;3
      )
;
; 8grannik
      (defun k8 ( )                                              ;4
      (setq cp (polar pn ang1 a2))                           ;5
      (command "_POLYGON" 8 cp "В" a2)                       ;6
      )
;
      (defun fl ( )                                                  ;7
      (setq s1 (getpoint "\nPoint 1 : "))                        ;8
      (setq s2 (getpoint "\nPoint 2 : "))                        ;9
      (setq a (getdist s1 "\nDiametr opisanoi okrushnosti: "))       ;10
      (setq fl (getint "\n8 - 8grannik, inache 12grannik: U = "))        ;11
      (setq num (getint "\nColor : " ))                          ;12
      (command "_COLOR" num)                                 ;13
      (setq dst (getreal  "\nDistance : "))                      ;14
      (setq ang1 (angle s1 s2))                                      ;15
      (setq a2 (/ a 2.0))                                            ;16
      (setq pn s1)                                               ;17
          (while (>= (distance s2 pn) (+ a dst))                 ;18
                 (if (= fl 8)                                    ;19
                     (k8)                                        ;20
                     (k12)                                       ;21
                 )
                 (setq pn (polar pn ang1 (+ a dst)))             ;22
           )
      )
 ;
 ; control
      (defun lr ( )                                              ;23
      (setq sb (getvar "blipmode"))                      ;24
      (setq sc (getvar "cmdecho"))                       ;25
      (setvar "blipmode" 0)                              ;26
      (setvar "cmdecho" 0 )                              ;27
      (fl)                                                       ;28
      (setvar "blipmode" sb)                             ;29            
      (setvar "cmdecho" sc)                                  ;30
      )
0
ur_naz
Заблокирован
22.02.2015, 17:11 6
это не код, а издевательство над психикой, так что именно не получается?
0
Vort
0 / 0 / 0
Регистрация: 22.02.2015
Сообщений: 7
22.02.2015, 17:28  [ТС] 7
Не получается запустить его в AutoCAD, чтобы тот его выполнил. Поэтому я и обратился сюда, в надежде, что мне подскажут, в чем ошибка. А то что это "издевательство над психикой" - это из-за того, что я только начал lisp изучать.
0
ur_naz
Заблокирован
22.02.2015, 17:53 8
В командной строке набери (lr)

Добавлено через 2 минуты
да и кстати, объектную привязку ты не обнуляешь, а цвет не восстанавливаешь, так что результаты будут непредсказуемые
и вообще пользуйся комментариями, так тебе легче будет писать... вряд ли это твой код
0
Vort
0 / 0 / 0
Регистрация: 22.02.2015
Сообщений: 7
22.02.2015, 17:58  [ТС] 9
Да я знаю, как запускать. Проблема в другом - код отказывается работать.
0
Catstail
Модератор
24167 / 12154 / 2180
Регистрация: 12.02.2012
Сообщений: 19,742
22.02.2015, 19:20 10
Вот как это рисуется в HomeLisp:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(defun n-angle (r n color)
  (let ((w (gensym 'w))
        (df (/ (* 2 _pi) n))
        (xp r)
        (yp 0)
        (xc 0)
        (yc 0))  
   (grwCreate w 300 300 (strCat "Правильный " (fix2str n) "-угольник") _WHITE)
   (grwSetParm w 2 0 _WHITE)
   (grwScale w -100 100 -100 100)
   (iter (for i from 1 to n)
     (setq xc (* r (cos (* i df))) yc (* r (sin (* i df))))
     (grwLine w xp yp xc yc color)
     (setq xp xc yp yc))
   (grwShow w)))
0
Миниатюры
Подскажите, как сделать это в AutoLisp?  
ur_naz
Заблокирован
22.02.2015, 19:26 11
Цитата Сообщение от Vort Посмотреть сообщение
код отказывается работать.
Это вообще не разговор. Почему сразу нельзя было написать, что не знаешь какую опцию нужно вставить, что нарисовать вписанный и описанный многоугольник? Пойми, детский сад закончился!
Элементарно нужно было запустить команду _polygon и проверить как она работает. Как звучат опции на русском? Вписанный/Описанный, а на английском? Inscribed in circle/Circumscribed. Значит что? "_i" или "_c"
Неужели так сложно?
2
Vort
0 / 0 / 0
Регистрация: 22.02.2015
Сообщений: 7
22.02.2015, 19:42  [ТС] 12
Catstail, большое спасибо Вам за помощь.
0
Catstail
Модератор
24167 / 12154 / 2180
Регистрация: 12.02.2012
Сообщений: 19,742
22.02.2015, 19:45 13
Vort, это ведь не Autolisp...
0
Vort
0 / 0 / 0
Регистрация: 22.02.2015
Сообщений: 7
22.02.2015, 19:58  [ТС] 14
Catstail, я уже понял
Я так понял, что эти программы отличаются кардинально, и в AutoLisp код не работает, увы. Значит проблема все еще актуальна.
0
ur_naz
Заблокирован
22.02.2015, 20:30 15
Цитата Сообщение от Vort Посмотреть сообщение
проблема все еще актуальна.
Ты читать умеешь? Ответ тебе я дал, по диалогу - это кода больше, чем у тебя, открывай полещука и изучай
0
22.02.2015, 20:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2015, 20:30

Подскажите как это сделать без циклов
Задача 6* Ввести два целых числа a и b. Если a делится на b или b делится на a вывести 1, иначе –...

подскажите как сделать,это шифрование и дешифрование данных
Написать программу кодирования и декодирования данных, содержащихся в текстовых файлах методом...

Выполение SQL в VB, не знаю как это сделать, подскажите
Вообщем мне нужно что бы перед открытием формы, выполнилась очистка некой таблицы, занесены туда...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru