Newer
Older
SPIS / SPIS_TOOLS.lsp
;;; ============================================================
;;;  SPIS_TOOLS.lsp Ч единый загрузчик инструментов —ѕ»—
;;;
;;;  ѕодключает три набора команд:
;;;
;;;  1) —ќ«ƒјЌ»≈  ќћѕЋ≈ “ј (SPIS_RUN_SETS.lsp)
;;;     SPISRUNSETS Ч собрать файлы дисциплин со ссылками по схеме
;;;                   (запускает внешний Python-скрипт)
;;;
;;;  2) —Ѕќ– ј —ѕ»— (SPIS_SYSTEM_SETS.lsp)
;;;     SPISATTACHSETS Ч подключить ј– и дисциплины Ё“–/——/¬ /ќ¬
;;;                      в открытый —ѕ»— как внешние ссылки (Overlay)
;;;
;;;  3) –јЅќ“ј —ќ ——џЋ јћ» (XRBIND.lsp)
;;;     XRLIST    Ч список ссылок со статусом, без изменений чертежа
;;;     XRBIND    Ч внедрить все разрешЄнные ссылки
;;;     XRBIND1   Ч внедрить одну ссылку по имени
;;;     XRPATH    Ч сменить путь Ђпереехавшейї ссылки
;;;     XRUNBIND  Ч отсоединить только битые (неразрешЄнные) ссылки
;;;     XRDETACH  Ч отсоединить все ссылки (с подтверждением)
;;;
;;;  4) —ѕ–ј¬ ј (SPISHELP.lsp)
;;;     SPISHELP  Ч полна¤ справка: схема, команды, пути, проблемы
;;;
;;;  ¬ј∆Ќќ: все файлы должны лежать в ќƒЌќ… папке.
;;;  «агрузчик определ¤ет еЄ сам; при необходимости задайте вручную:
;;;     (setq *SPIS-DIR* "G:/ћой диск/lisp-code/SPIS")
;;;
;;;  ‘айлы должны быть в кодировке Windows-1251: AutoCAD 2020
;;;  не читает UTF-8 в LISP, кириллица превращаетс¤ в мусор.
;;; ============================================================

;; ѕапка, куда установлены файлы. ѕравьте здесь при переносе.
(setq *SPIS-DIR* "G:/ћой диск/lisp-code/SPIS")

;; ќпредел¤ем папку по расположению этого файла.
(defun spis:detect-dir (/ f)
  (cond
    ((setq f (findfile "SPIS_TOOLS.lsp")) (vl-filename-directory f))
    ((setq f (findfile "SPIS_TOOLS"))     (vl-filename-directory f))
    (T nil)
  )
)

(defun spis:load-one (fname / full)
  (setq full (strcat (vl-string-right-trim "\\/" *SPIS-DIR*) "\\" fname))
  (cond
    ((findfile full)
      (load full)
      (princ (strcat "\n  [OK]  " fname)))
    (T
      (princ (strcat "\n  [Ќ≈“] " fname " Ч не найден в " *SPIS-DIR*)))
  )
  (princ)
)

(princ "\n==============================================")
(princ "\n  «агрузка инструментов —ѕ»—")
(princ "\n==============================================")

(if (setq *spis-detected* (spis:detect-dir))
  (progn
    (setq *SPIS-DIR* *spis-detected*)
    (princ (strcat "\n  ѕапка: " *SPIS-DIR*)))
  (princ (strcat "\n  ѕапка (по умолчанию): " *SPIS-DIR*))
)

(spis:load-one "SPIS_RUN_SETS.lsp")
(spis:load-one "SPIS_SYSTEM_SETS.lsp")
(spis:load-one "XRBIND.lsp")
(spis:load-one "XRCOPYVISIBLE.lsp")
(spis:load-one "SPISHELP.lsp")

(princ "\n\n   оманды:")
(princ "\n    —оздание комплекта:")
(princ "\n      SPISRUNSETS     Ч собрать файлы дисциплин со ссылками")
(princ "\n    —борка —ѕ»—:")
(princ "\n      SPISATTACHSETS  Ч подключить ј– и дисциплины в —ѕ»—")
(princ "\n    –абота со ссылками:")
(princ "\n      XRLIST          Ч список ссылок со статусом")
(princ "\n      XRBIND          Ч внедрить разрешЄнные ссылки")
(princ "\n      XRBIND1         Ч внедрить одну ссылку")
(princ "\n      XRPATH          Ч сменить путь ссылки")
(princ "\n      XRUNBIND        Ч отсоединить битые ссылки")
(princ "\n      XRDETACH        Ч отсоединить все ссылки")
(princ "\n      XRCOPYVISIBLE   Ч скопировать доступную геометрию верхней ссылки")
(princ "\n    —правка:")
(princ "\n      SPISHELP        Ч полна¤ справка по всем командам")
(princ "\n==============================================")
(princ)

;;; ƒл¤ автозагрузки: добавьте SPIS_TOOLS.lsp в Startup Suite
;;; (APPLOAD -> —одержимое -> ƒобавить) либо строку в acaddoc.lsp:
;;;   (load "G:/ћой диск/lisp-code/SPIS/SPIS_TOOLS.lsp")