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

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

Хочу немного изменить алгоритм команды отрезок

Ответ
Поиск в этой теме
Непрочитано 18.02.2010, 23:36 #1
Хочу немного изменить алгоритм команды отрезок
Викторр1985
 
Регистрация: 25.05.2009
Сообщений: 15

Подскажите пожалуйста можно ли в команде отрезок поменять местами
очередность ввода угла и длинны т.е с начало задать длину отрезка (с клавиатуры)а потом угол(мышкой)?
Просмотров: 3479
 
Непрочитано 24.02.2010, 14:55
#2
E-degtyarev

Помогаю, кому делать нечего.
 
Регистрация: 27.03.2009
Русская деревня
Сообщений: 394


Любую команду можно переопределить, но только чем тебя стандартная не устраивает?
E-degtyarev вне форума  
 
Непрочитано 24.02.2010, 15:11
#3
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Согласен. Достаточно нарисовать отрезок нужной длинны и после сразу запустить поворот, для ввода угла или указания этого угла на экране...

Это можно реализовать как программно, так и макросом в меню или на кнопке.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Автор темы   Непрочитано 24.02.2010, 15:42
#4
Викторр1985


 
Регистрация: 25.05.2009
Сообщений: 15


Цитата:
Сообщение от E-degtyarev Посмотреть сообщение
Любую команду можно переопределить, но только чем тебя стандартная не устраивает?
Очередность ввода угла и длинны.
Викторр1985 вне форума  
 
Непрочитано 24.02.2010, 15:50
#5
Krieger

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


Используй дин. ввод. Там можно сначала длину задать.
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 25.02.2010, 10:31
#6
E-degtyarev

Помогаю, кому делать нечего.
 
Регистрация: 27.03.2009
Русская деревня
Сообщений: 394


Ну, если очень уж хочется помести эту lisp-мазню в автозагрузку или
в acad****.lsp и будет команда ot.
Код:
[Выделить все]
(defun c:ot ()
  (setq dlina (getreal "\nДлина отрезка:"))
  (setq pt1 (getpoint "\nНачальная точка:"))
  (setq ugol (getangle pt1 "\nУгол поворота:"))
  (setq pt2 (polar pt1 ugol dlina))
  (command "_.line" pt1 pt2 "")
)
E-degtyarev вне форума  
 
Автор темы   Непрочитано 27.02.2010, 15:38
#7
Викторр1985


 
Регистрация: 25.05.2009
Сообщений: 15


Спасибо E-degtyarev за lisp.

На работе с человеком еще поковырялись вот че получилось

Код HTML:
(defun c:ot ()

  (setq pt1 (getpoint "\nНачальная точка:"))
  (setq dlina (getdist "\nдлинна отрезка: " pt1))

  (setq ugol (getangle pt1 "\nУгол поворота:"))
  (setq pt2 (polar pt1 ugol dlina))
  (command "_.line" pt1 pt2 "")
)

Последний раз редактировалось Викторр1985, 04.03.2010 в 18:07.
Викторр1985 вне форума  
 
Автор темы   Непрочитано 04.03.2010, 18:07
#8
Викторр1985


 
Регистрация: 25.05.2009
Сообщений: 15


А как сделать так чтобы лисп был зациклен и начинал строить следующую линию от конца прошлой?
Викторр1985 вне форума  
 
Непрочитано 09.03.2010, 10:18
1 | #9
E-degtyarev

Помогаю, кому делать нечего.
 
Регистрация: 27.03.2009
Русская деревня
Сообщений: 394


Ну, примерно так:
Код:
[Выделить все]
(defun c:ot ()
(while
  (setq pt1 (getpoint "\nНачальная точка:"))
  (setq dlina (getdist "\nдлинна отрезка: " pt1))
  (setq ugol (getangle pt1 "\nУгол поворота:"))
  (setq pt2 (polar pt1 ugol dlina))
  (command "_.line" pt1 pt2 "")
  )
)
Если включить привязку к конточке.
E-degtyarev вне форума  
 
Непрочитано 09.03.2010, 12:02
1 | #10
Буджум

мелкий местный хищник
 
Регистрация: 20.10.2009
замкадье
Сообщений: 72


Тогда уж так
Код:
[Выделить все]
(defun c:ot ( / cmd osm pt1 dlina ugol pt2)

 (defun *error*(msg) 
    (princ msg)
    (if cmd  (setvar "cmdecho" cmd))
    (if osm (setvar "osmode" osm))
  )

 (setq cmd   (getvar "cmdecho")
       osm   (getvar "osmode")
       dlina t
       ugol  t
       pt1   (getpoint "\nÍà÷àëüíàÿ òî÷êà:")
 )

 (setvar "osmode" (logior osm 16384))
 (setvar "cmdecho" 0)

   (while (and dlina ugol) 
      (setq dlina (getdist pt1 "\nÄëèíà îòðåçêà <âûõîä>: "))
      (if dlina
         (progn
       (setq ugol (getangle pt1 "\nÓãîë ïîâîðîòà <âûõîä>:"))
              (if ugol
        (progn
          (setq pt2 (polar pt1 ugol dlina))
                  (vl-cmdf "_.line" pt1 pt2 "")
                  (setq pt1 pt2)
            );progn
          );if
         );progn
      );if
   );while
  
 (setvar "OSMODE" osm)
 (setvar "cmdecho" cmd)
 (princ)
  
)
Буджум вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Хочу немного изменить алгоритм команды отрезок



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запуск программы из AutoCADа kminas Программирование 19 15.06.2012 13:42
Прозрачные команды Vova AutoCAD 17 21.06.2006 05:33