Темы сайта
Интегрированная система ruCAD - приложение к базовой системе AutoCAD.

Система ruCAD - это приложение строительного профиля в широком понимании, то есть предназначенная для автоматизации строительного проектирования, реконструкции и технического перевооружения любых зданий и сооружений.В отличие от других систем, ориентированных на конкретную область применения, в ruCAD включены средства для комплексной разработки проектной документации наиболее распространенных разделов проекта, выполняемых во всех проектных организациях.
Система управления контентом MODx
Ограничения
В соответствии с Договором между издательством и авторами мы не имеем права полностью публиковать в Интернет материалы книги.

Но, в пределах установленной квоты, будут публиковаться отдельные главы. Кроме того, на сайте будут размещаться материалы, не вошедшие в книгу и полные версии сокращенных по техническим причинам глав.

Так помечены материалы, не опубликованные на сайте!

Новинки
Книга была выпущена в 2004 году. С тех пор многое изменилось - появились версии AutoCAD 2005, 2006, 2007, 2008.

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

Поэтому в материалы книги, публикуемые на сайте, мы вносим дополнительные замечания, выделяемые так:
Так выделяются дополнительные замечания, комментарии, указания!
Где спросить
На нашем сайте было уже несколько форумов. На них было зарегистрировано более 400 посетителей, а многие заходили просто так, в гости. Но сейчас мы вывели форумы из открытого режима. Подробнее о наших форумах
Если очень нужно что-то узнать о ruCAD именно в форумном формате, заходите на Форум сайта
AutoCAD и проектирование
Внимание!
Технические решения и исходные тексты, публикуемые на сайте, могут быть устаревшими!

В таком виде они были во время написания книги, но с тех пор прошло несколько лет, в систему было внесено множество изменений и дополнений.


Преобразовывает ошибки ADO в список списков собщений об ошибках



(defun ru-ado-error-handler (vl_error_object
                             connection_object
                             /
                             errors_object
                             error_object
                             error_count
                             error_number
                             error_list
                             error_value
                             result
                            )
;;; Преобразовывает ошибки в список списков точечных пар
;;; в виде  ("name" . "value")
;;; Вначале обрабатываются возможные сообщения Visual LISP
  (setq result        (list
                        (list (cons "Ошибки Visual LISP"
                                    (vl-catch-all-error-message vl_error_object)
                              ) ;_ end of cons
                        ) ;_ end of list
                      ) ;_ end of list
;;; ADO накапливает ошибки в специальном объекте,
;;; откуда мы их должны извлечь
        error_object  (vlax-create-object "ADODB.Error")
        errors_object (vlax-get-property connection_object "Errors")
        error_count   (vlax-get-property errors_object "Count")
        error_number  -1
  ) ;_ end of setq
;;; Теперь обрабатываем ошибки  errors
  (while (< (setq error_number (1+ error_number)) error_count)
    (setq error_object
                       (vlax-get-property errors_object "Item" error_number)
          error_list   nil
    ) ;_ end of setq
;;; Проверяем все возможные пунктики ошибок
    (foreach error_property '("Description"
                              "HelpContext"
                              "HelpFile"
                              "NativeError"
                              "Number"
                              "SQLState"
                              "Source"
                             )
      (if (numberp (setq error_value
                          (vlax-get-property error_object error_property)
                   ) ;_ end of setq
          ) ;_ end of numberp
        (setq error_value (itoa error_value))
      ) ;_ end of if
      (setq error_list (cons (cons error_property error_value) error_list))
    ) ;_ end of foreach
    (setq result (cons (reverse error_List) result))
  ) ;_ end of while
  (reverse result)
) ;_ end of defun


24-07-2004 23:34:12