Помогите молодому
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Помогите молодому

Помогите молодому

Закрытая тема
Поиск в этой теме
Непрочитано 03.07.2006, 09:53 #1
Помогите молодому
Владимир Егорьев
 
Сообщений: n/a

Подскажите в чём ошибки.!)Недостаточно аргументов,2)Когда добираюсь до строки command "PLINE" BT "W"....... ругается на неизвестные команды PLINE и W.Просто не могу найти ответ.


(DEFUN RAMKA ()
(SETVAR "CMDECHO" 0)
(SETVAR "BLIPMODE" 0)
(COMMAND "LIMITS" "0,0" "841,594" "ZOOM" "A")
(TEXTSCR)
(SETQ XT (GETREAL "\N ВВЕДИТЕ КООРДИНАТУ X УГЛА XT=")
YT (GETREAL "\N ВВЕДИТЕ КООРДИНАТУ Y УГЛА YT=")
BT (LIST XT YT))
(SETQ T1 (POLAR BT 0 841)
T2 (POLAR T1 (/ PI 2 594)
T3 (POLAR T2 (/ PI 3 841)
T4 (POLAR T3 (* PI 1.5 594)))))
(COMMAND "PLINE" BT "W" 0.6 0.6 T1 T2 T3 T4 "C")
(SETQ BT (POLAR BT 0 841)))
(RAMKA)
Просмотров: 5413
 
Непрочитано 03.07.2006, 10:22
#2
ытя


 
Регистрация: 23.09.2005
СПб
Сообщений: 428


Должно быть
Код:
[Выделить все]
(SETQ	T1 (POLAR BT 0 841)
	T2 (POLAR T1 (/ PI 2) 594)
	T3 (POLAR T2 (/ PI 3) 841)
	T4 (POLAR T3 (* PI 1.5) 594)
  )
ытя вне форума  
 
Непрочитано 03.07.2006, 10:37
#3
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


>Владимир Егорьев
Если Автокад русский, используйте оригинальные команды и опции, с "подчёркиванием"
Код:
[Выделить все]
(COMMAND "_.PLINE" BT "_W" 0.6 0.6 T1 T2 T3 T4 "_C")
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 03.07.2006, 10:49
#4
Владимир Егорьев


 
Сообщений: n/a


Цитата:
Сообщение от Alan
>Владимир Егорьев
Если Автокад русский, используйте оригинальные команды и опции, с "подчёркиванием"
Код:
[Выделить все]
(COMMAND "_.PLINE" BT "_W" 0.6 0.6 T1 T2 T3 T4 "_C")
"Подчеркнул" исчезла ошибка "Неизвестная команда PLINE и т.д.", но "Отменяет функцию COMMAND "LIMITS".....
 
 
Непрочитано 03.07.2006, 10:52
#5
Владимир Егорьев


 
Сообщений: n/a


Цитата:
Сообщение от ытя
Должно быть
Код:
[Выделить все]
(SETQ	T1 (POLAR BT 0 841)
	T2 (POLAR T1 (/ PI 2) 594)
	T3 (POLAR T2 (/ PI 3) 841)
	T4 (POLAR T3 (* PI 1.5) 594)
  )
Спасибо.
 
 
Непрочитано 03.07.2006, 12:03
#6
Владимир Егорьев


 
Сообщений: n/a


Мне не понятно почему происходит "Отмена функции" в данном случае всё тойже "_.LINE"?
Код:
[Выделить все]
(DEFUN RAMKA ()
  (SETVAR "CMDECHO" 0)
  (SETVAR "BLIPMODE" 0)
  (COMMAND "LIMITS" "0,0" "841,594" "ZOOM" "A")
  (TEXTSCR)
  (SETQ XT (GETREAL "\N ВВЕДИТЕ КООРДИНАТУ X УГЛА XT=")
	YT (GETREAL "\N ВВЕДИТЕ КООРДИНАТУ Y УГЛА YT=")
	BT (LIST XT YT))
  (SETQ   T1 (POLAR BT 0 841) 
   T2 (POLAR T1 (/ PI 2) 594) 
   T3 (POLAR T2 (/ PI 3) 841) 
   T4 (POLAR T3 (* PI 1.5) 594) 
  )
  (COMMAND "_.LINE" BT "_W" 0.6 0.6 T1 T2 T3 T4 "_C")
  (SETQ BT (POLAR BT 0 841)))
(RAMKA)
 
 
Непрочитано 03.07.2006, 12:17
#7
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


А у _Line нет опции _w, она у полилиний (_Pline).
Krieger вне форума  
 
Непрочитано 03.07.2006, 12:40
#8
Владимир Егорьев


 
Сообщений: n/a


Теперь LIMITS Не идёт.
Код:
[Выделить все]
(DEFUN RAMKA ()
  (SETVAR "CMDECHO" 0)
  (SETVAR "BLIPMODE" 0)
  (COMMAND "LIMITS" "0,0" "841,594" "ZOOM" "A")
  (TEXTSCR)
  (SETQ XT (GETREAL "\N ВВЕДИТЕ КООРДИНАТУ X УГЛА XT=")
	YT (GETREAL "\N ВВЕДИТЕ КООРДИНАТУ Y УГЛА YT=")
	BT (LIST XT YT))
  (SETQ   T1 (POLAR BT 0 841) 
   T2 (POLAR T1 (/ PI 2) 594) 
   T3 (POLAR T2 (/ PI 3) 841) 
   T4 (POLAR T3 (* PI 1.5) 594) 
  )
  (COMMAND "_.PLINE" BT "_W" 0.6 0.6 T1 T2 T3 T4 "_C")
  (SETQ BT (POLAR BT 0 841)))
(RAMKA)
 
 
Непрочитано 03.07.2006, 12:48
#9
_Andre_

механизатор
 
Регистрация: 28.12.2004
Самара
Сообщений: 312
<phrase 1=


По аналогии с другими командами и ранее данными советами :
Код:
[Выделить все]
(COMMAND "_.LIMITS" "0,0" "841,594" "_.ZOOM" "_All")
То есть еще раз повторю предыдущих - ставьте нижнее подчеркивание с точкой перед именами команд и нижнее подчеркивание перед опциями. Тогда будет обеспечиваться работа функций в локализованных версиях автокада.
_Andre_ вне форума  
 
Непрочитано 03.07.2006, 12:52
#10
Владимир Егорьев


 
Сообщений: n/a


(COMMAND "_.LIMITS" "0,0" "841,594" "_.ZOOM" "_All")Я писал это.Всё равно последний останов на ней (строке)
 
 
Непрочитано 03.07.2006, 13:05
#11
_Andre_

механизатор
 
Регистрация: 28.12.2004
Самара
Сообщений: 312
<phrase 1=


Что то слона то я и не заметил =)
В команду _.limits нужно передавать точки - то есть списки координат , а не строку текста как сделано у Вас.

то есть работающим вариантом будет такая строка
Код:
[Выделить все]
(COMMAND "_.LIMITS" '(0.0 0.0 0.0) '(841.0 594.0 0.0 ) "_.ZOOM" "_A")
_Andre_ вне форума  
 
Непрочитано 03.07.2006, 13:11
#12
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


Один х-н должно работать и так и сяк, у меня во всяком случае работает.
Krieger вне форума  
 
Непрочитано 03.07.2006, 15:27
#13
Владимир Егорьев


 
Сообщений: n/a


Ппорпобуйте у себя запустить кто-нибудь.У меня на LIMITS всё по прежнему останавливается.
Код:
[Выделить все]
(DEFUN RAMKA ()
  (SETVAR "CMDECHO" 0)
  (SETVAR "BLIPMODE" 0)
  (COMMAND "_.LIMITS" '(0.0 0.0 0.0) '(841.0 594.0 0.0 ) "_.ZOOM" "_A")
  (TEXTSCR)
  (SETQ XT (GETREAL "\N ВВЕДИТЕ КООРДИНАТУ X УГЛА XT=")
	YT (GETREAL "\N ВВЕДИТЕ КООРДИНАТУ Y УГЛА YT=")
	BT (LIST XT YT))
  (SETQ   T1 (POLAR BT 0 841) 
   T2 (POLAR T1 (/ PI 2) 594) 
   T3 (POLAR T2 (/ PI 3) 841) 
   T4 (POLAR T3 (* PI 1.5) 594) 
  )
  (COMMAND "_.PLINE" BT "_W" 0.6 0.6 T1 T2 T3 T4 "_C")
  (SETQ BT (POLAR BT 0 841)))
(RAMKA)
 
 
Непрочитано 03.07.2006, 15:45
#14
_Andre_

механизатор
 
Регистрация: 28.12.2004
Самара
Сообщений: 312
<phrase 1=


Строка с определением лимитов работает, но вообще то несколько вопросов:
Зачем определять эти лимиты?
Зачем запрашивать по отдельности координаты когда можно запросить сразу точку (функция getpoint)
Не проще ли нарисовать прямоугольник командой rectang?
Привязки лучше отлючать временно, иначе может получиться полная ерунда а не прямоугольник.
Зачем вызывать текстовое окно?
Обнуление системной переменной Blipmode зачем?

Вот вариант функции с учетом вышесказанного

Код:
[Выделить все]
(defun ramka (/ BASE_POINT SECOND_POINT _CMDECHO _OSMODE)
  (setq _cmdecho (getvar "CMDECHO")
        _osmode  (getvar "OSMODE")
  ) ;_ end of setq
  (setvar "CMDECHO" 0)
  (setvar "OSMODE" 0)
  (if (setq base_point (getpoint "\n Укажите нижнюю левую точку рамки"))
    (progn (setq second_point (mapcar '+ base_point '(841.0 594.0 0.0)))
           (command "_.rectang" base_point second_point)
    ) ;_ end of progn
  ) ;_ end of if
  (setvar "CMDECHO" _cmdecho)
  (setvar "OSMODE" _osmode)
) ;_ end of defun
(ramka)
_Andre_ вне форума  
 
Непрочитано 03.07.2006, 19:28
#15
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


На мой вкус я бы сделал так (этот метод с применением
функции APPLY будет работать для любого количества
вершин полилинии)

Код:
[Выделить все]
(defun ramka (/ t1 t2 t3 t4) 
  (setvar "cmdecho" 0)
  (setq osm (getvar "osmode"))
  (setvar "osmode" 0)
    
  (setq t1 (getpoint "\nЛевый нижний угол: \n")) 
  (setq   t2 (polar t1 0 841.)
	  t3 (polar t2 (/ pi 2) 594.)
	  t4 (polar t1 (/ pi 2) 594.) 
  ) 
  (command "_.pline" t1 "_w" 0.6 0.6)
  (apply 'command (list t2 t3 t4))
  (command "_c")
  (command "_.limits" t1 t3
	   "_.zoom" "_a")
  (setvar "cmdecho" 1)
  (setvar "osmode" osm)
(princ)
) 
(ramka)
(princ)
~'J'~
fixo вне форума  
 
Непрочитано 04.07.2006, 08:56
#16
Владимир Егорьев


 
Сообщений: n/a


Спасибо всем.Заработал следующий вариант.Просто числа 594,841 и тому подобные сделал действительными (поставил после них точки)[/
Код:
[Выделить все]
(DEFUN RAMKA ()
  (SETVAR "CMDECHO" 0)
  (SETVAR "BLIPMODE" 0)
  (COMMAND "_.LIMITS" '(0.0 0.0) '(841.0 594.0) "_.ZOOM" "_A")
  (TEXTSCR)
  (SETQ XT (GETREAL "\N ВВЕДИТЕ КООРДИНАТУ X УГЛА XT=")
	YT (GETREAL "\N ВВЕДИТЕ КООРДИНАТУ Y УГЛА YT=")
	BT (LIST XT YT))
  (SETQ   T1 (POLAR BT 0 841.) 
   T2 (POLAR T1 (/ PI 2) 594.) 
   T3 (POLAR T2 (* PI 1) 841.) 
   T4 (POLAR T3 (* PI 1.5) 594.) 
  )
  (COMMAND "_.PLINE" BT "_W" 0.6 0.6 T1 T2 T3 T4 "_C")
  (SETQ BT (POLAR BT 0 841.)))
(RAMKA)
 
 
Непрочитано 06.05.2011, 23:28
#17
Владимир Егорьев


 
Сообщений: n/a


Да gomer.Спасибо.Уверен что справлюсь.
Дело в том что практики нет и поэтому функции лиспа ищу долго.Да и описание не всегда понимаю в книге(ах).
 
Закрытая тема
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Помогите молодому