Логотип сайта поддержки пользователей САПРО сайте поддержки пользователей САПР Translate to:

Различные функции, связанные с устройствами печати

Назад к списку функций
;;;  PlotDevicesFunctions.lsp
;;;

(vl-load-com)

(defun ActLay ()
  (vla-get-ActiveLayout
    (vla-get-activedocument
      (vlax-get-acad-object)
    )
  )
)

  ; Возращает имя конфигурации плотера
(defun GetActivePlotDevice ()
  (vla-get-ConfigName
    (ActLay)
  )
)

  ; Возращает имя таблицы печатных стилей
(defun GetActiveStyleSheet ()
  (vla-get-StyleSheet
    (ActLay)
  )
)

  ; Изменить конфигурацию плоттера на указанную
(defun PutActivePlotDevice (PlotDeviceName)
  (vla-put-ConfigName
    (ActLay)
    PlotDeviceName
  )
)

  ; Изменить таблицу печатных стилей на указанную
(defun PutActiveStyleSheet (StyleSheetName)
  (vla-put-StyleSheet
    (ActLay)
    StyleSheetName
  )
)

  ; Возращает список всех конфигураций плоттера
(defun PlotDeviceNamesList ()
  (vla-RefreshPlotDeviceInfo (ActLay))
  (vlax-safearray->list
    (vlax-variant-value
      (vla-GetPlotDeviceNames
        (ActLay)
      )
    )
  )
)

  ; Возвращает список все таблиц печатных стилей
(defun PlotStyleTableNamesList ()
  (vla-RefreshPlotDeviceInfo (ActLay))
  (vlax-safearray->list
    (vlax-variant-value
      (vla-GetPlotStyleTableNames
        (ActLay)
      )
    )
  )
)

  ; Если сохраненная конфигурация печати не существует установить ее в None
(defun PutActivePlotDeviceToNoneIfNotExist ()
  (if (not (member (GetActivePlotDevice) (PlotDeviceNamesList)))
    (PutActivePlotDevice "None")
  )
)

  ; Если сохраненная таблица печатных стилей не существует, установить его в None
(defun PutActiveStyleSheetToNoneIfNotExist ()
  (if (not
        (member (GetActiveStyleSheet) (PlotStyleTableNamesList))
      )
    (PutActiveStyleSheet "")
  )
)

  ; Изменить конфигурацию печати "CompanyStandard.pc3" в зависимости от ваших потребностей
(defun PutActivePlotDeviceToCompanyStandardIfNotExist ()
  (if (not (member (GetActivePlotDevice) (PlotDeviceNamesList)))
    (PutActivePlotDevice "CompanyStandard.pc3")
  )
)

  ; Изменить таблицу печатных стилей "CompanyStandard-A3-BW.ctb" в зависимости от ваших потребностей
(defun PutActiveStyleSheetToCompanyStandardIfNotExist ()
  (if (not
        (member (GetActiveStyleSheet) (PlotStyleTableNamesList))
      )
    (PutActiveStyleSheet "CompanyStandard-A3-BW.ctb")
  )
)

  ; Изменить конфигурацию печати к параметрам по умолчанию
  ; если активное устройство печати не существует
(defun PutActivePlotDeviceToDefaultIfNotExistOrNone ()
  (if (or (not (member (GetActivePlotDevice) (PlotDeviceNamesList)))
          (= (GetActivePlotDevice) "None")
      )
    (if (= (vla-get-UseLastPlotSettings
             (vla-get-output
               (vla-get-preferences (vlax-get-acad-object))
             )
           )
           :vlax-true
        )
      (PutActivePlotDevice
        (getenv "General\\MRUConfig")
      )
      (PutActivePlotDevice
        (vla-get-DefaultOutputDevice
          (vla-get-output
            (vla-get-preferences (vlax-get-acad-object))
          )
        )
      )
    )
  )
)

  ; Изменить таблицу печатных стилей к параметрам по умолчанию,
  ; если активная таблица печатных стилей не существует
(defun PutActiveStyleSheetToDefaultIfNotExistOrNone ()
  (if (or (not
            (member (GetActiveStyleSheet) (PlotStyleTableNamesList))
          )
          (= (GetActiveStyleSheet) "")
      )
    (PutActiveStyleSheet
      (vla-get-DefaultPlotStyleTable
        (vla-get-output
          (vla-get-preferences (vlax-get-acad-object))
        )
      )
    )
  )
)

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

  ; Если ваше сохраненное в черетеже устройство печати (принтер, плоттер или PC3-файл)
  ; не существует или установлено в None, данная функция устанавливает его
  ; к устройству печати по умолчанию
(PutActivePlotDeviceToDefaultIfNotExistOrNone)

  ; Если таблица печатных стилей, которая сохранена в чертеже 
  ; не существует или установлена в None, данная функция устанавливает ее
  ; к таблице печатных стилей по умолчанию
(PutActiveStyleSheetToDefaultIfNotExistOrNone)

  ; Эти установки можно использовать, если вы зотите установить
  ; устройство печати и таблицу печатных стилев в None, если они не существуют
  ;(PutActivePlotDeviceToNoneIfNotExist)
  ;(PutActiveStyleSheetToNoneIfNotExist)

  ; Если Вы хотите указать другой стандарт компании, вы можете
  ; активировать и измененить эти функции
  ;(PutActivePlotDeviceToCompanyStandardIfNotExist)
  ;(PutActiveStyleSheetToCompanyStandardIfNotExist)

(princ)



Copyright © Сайт поддержки пользователей САПР by Victor Tkachenko