Тема: OpenDCL ввод точек по нажатию кнопки

Есть окно одсл с кнопкой, по нажатию которой: закрывается окно (как свернуть его я не нашол, подскажите если так можно) выводится функция рисования прямоугольника, или ввода точек, после чего берутся его координатыи производятся расчеты, и снова выводится окно ввода.
Проблема вот в чем:
1) как зделать так, чтоб окно не закрывать а сворачивать, или временно убирать, чтоб в нем сохранялись введенные параметры.
2) команда создания прямоугольника пользователем не работает после функции закрытия окна, а просто прогоняется как какойто расчет не реагируя на паузу ввода.
""и есче не в тему, почему может не работать функция ABS?""

(defun c:form_battom_OnClicked ( /)
  (dcl_form_close Print-pdf)
   (vl-cmdf "_rectang" pause pause)
  ;****расчет*******
    (vl-cmdf "_.erase" (entlast) "")
  ;; с функцией vl-cmdf, ее просто не видит
  ;; с command возвращает ошибку
  (dcl_form_show Print-pdf)
)

Re: OpenDCL ввод точек по нажатию кнопки

1. Чтобы не сворачивать окно сделай окно типа modeless или dockable
2. Чтобы спрятать окно используй (dcl_Form_Enable <имя формы> nil)
3. Почему может не работать Rectangle. Cтруктура программы неправильная.
Из события нажатия на кнопку у тебя сначала вызывается закрытие формы, потом рисуется прямоугольник потом открытие той же формы (самой себя).
Оставь в событии нажатия на кнопку только метод close и установи какой-то признак. А рисование прямоугольник и прочие расчеты делай сразу после метода Show, который у тебя вызывается при первом открытии окна.

Re: OpenDCL ввод точек по нажатию кнопки

> BOZ
1) (dcl_Form_Enable <имя формы> nil) не сворачивает окно, а делает не активным, причем оно так же торчит посреди экрано и просто не реагирует ни на кокие действия.
2) как можно вызвать функцию рисования после функции show если окно остается открытым, а его то кка раз быть и не должно. Его нужно свернуть просто, на время, я думал в одсл есть такак функция, или я ошибся и от него столько же толку сколько и от простого DSL.
Мне нужно окно как допустим у функций автокада, например при создании штриховки, нажимаешь кнопку, окно убирается, выбираешь все что надо, окно возвращается.

Re: OpenDCL ввод точек по нажатию кнопки

Про dcl_Form_Enable написал, но не проверял. Наверно ты прав.
А чтобы модальное окно свернулось и развернулось надо просто сделать цикл вокруг функции открытия окна dcl_Form-Show.
Для окон типа modelles или dockabale, которые могут быть открыты в моменту указания на экране этого делать не надо.
Читай книгу Николай Полещука
"AutoCAD: разработка приложений, настройка и адаптация". Там отдельная глава с примерами , только на основе ObjectDCL (немного отличается синтаксис функций, а суть - тоже самое).

Re: OpenDCL ввод точек по нажатию кнопки

> BOZ
1) Нет тут этих книг.
2) Зделал через DCL, ODCL так и не захотел работать.