(defun atp-load (/ setenv-path f d p)
 (defun setenv-path (p f / s)
   (setq s (vl-string-right-trim ";" (getenv "ACAD")))
   (or(wcmatch(strcase s)(strcase(strcat "*" p "\\" f "*")))
      (setenv "ACAD" (strcat s ";" p "\\" f)))
   (wcmatch(strcase(getenv "ACAD"))(strcase(strcat "*" p "\\" f "*")))
   )
  (vl-load-com)
  (and
    (or(setq f (findfile "ATP.DES"))
       (alert "\nОШИБКА: Не найдена библиотека AcadTopoPlan"))
    (setq d (vl-string-right-trim "\\" (car(fnsplitl f))))
    (setq atp-directory-program d)
    (or(setenv-path d "Hatch")
       (alert(strcat "\nОШИБКА: Не удалось создать вспомогательный путь\n" d "\\Hatch")))
    (or(setenv-path d "Fonts")
       (alert(strcat "\nОШИБКА: Не удалось создать вспомогательный путь\n" d "\\Fonts")))
    (if(and(setq p (getvar "TRUSTEDPATHS"))
	   (setq p (vl-string-right-trim ";" p)))
      (progn
	(or(wcmatch(strcase p)(strcase(strcat  "*" d "*")))
	   (setvar "TRUSTEDPATHS" (strcat p ";" d)))
	(or(wcmatch(strcase(getvar "TRUSTEDPATHS"))(strcase(strcat  "*" d "*")))
	   (alert(strcat "\nОШИБКА: Не удалось создать доверительный путь\n" d)))
	)
      t)
    (cond
      ((and(wcmatch(strcase(vlax-product-key)) "*\\BRICSYS*")
	   (vl-string-search "86" (getenv "PROCESSOR_ARCHITECTURE")1))
       (cond
	 ((wcmatch (vlax-product-key) "*\\V12*")
	  (if(not(member "OpenDCL.12.brx" (arx)))(arxload(strcat d "\\System\\Odcl\\OpenDCL.12.brx"))))
	 ((wcmatch (vlax-product-key) "*\\V13*")
	  (if(not(member "OpenDCL.13.brx" (arx)))(arxload(strcat d "\\System\\Odcl\\OpenDCL.13.brx"))))
	 ((wcmatch (vlax-product-key) "*\\V14*")
	  (if(not(member "OpenDCL.14.brx" (arx)))(arxload(strcat d "\\System\\Odcl\\OpenDCL.14.brx"))))
	 ((wcmatch (vlax-product-key) "*\\V15*")
	  (if(not(member "OpenDCL.15.brx" (arx)))(arxload(strcat d "\\System\\Odcl\\OpenDCL.15.brx"))))
	 ((wcmatch (vlax-product-key) "*\\V16*")
	  (if(not(member "OpenDCL.16.brx" (arx)))(arxload(strcat d "\\System\\Odcl\\OpenDCL.16.brx"))))
	 ))
      ((and(wcmatch(strcase(vlax-product-key)) "*\\BRICSYS*")
	   (vl-string-search "64" (getenv "PROCESSOR_ARCHITECTURE")1))
       (cond
	 ((wcmatch (vlax-product-key) "*\\V13*")
	  (if(not(member "OpenDCL.x64.13.brx" (arx)))(arxload(strcat d "\\System\\Odcl\\OpenDCL.x64.13.brx"))))
	 ((wcmatch (vlax-product-key) "*\\V14*")
	  (if(not(member "OpenDCL.x64.14.brx" (arx)))(arxload(strcat d "\\System\\Odcl\\OpenDCL.x64.14.brx"))))
	 ((wcmatch (vlax-product-key) "*\\V15*")
	  (if(not(member "OpenDCL.x64.15.brx" (arx)))(arxload(strcat d "\\System\\Odcl\\OpenDCL.x64.15.brx"))))
	 ((wcmatch (vlax-product-key) "*\\V16*")
	  (if(not(member "OpenDCL.x64.16.brx" (arx)))(arxload(strcat d "\\System\\Odcl\\OpenDCL.x64.16.brx"))))
	 ))
      (t (alert "\nОШИБКА: Не удалось загрузить OpenDCL\nТребуется САПР: BricsCAD V12 - V16"))
      )
    (or(=(type dcl_getprojects) 'EXRXSUBR)
       (alert "\nОШИБКА: Не удалось загрузить OpenDCL"))
    (setvar "ACADLSPASDOC" 1)
    (or(load f)t)
    (or(=(type atp-load-program) 'SUBR)
       (alert "\nОШИБКА: Не удалось загрузить AcadTopoPlan"))
    (atp-load-program)
    )
  (princ)
  )
  (atp-load)