Создание формата
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание формата

Создание формата

Ответ
Поиск в этой теме
Непрочитано 11.05.2005, 13:15 #1
Создание формата
Apelsinov
 
Проектировщик ВК. LISP-любитель.
 
Москва
Регистрация: 15.12.2003
Сообщений: 1,202

Вопрос в следующем, как в лиспе можно создать формат листа заданной величины...

Когда-то где-то кто-то на форуме (вроде бы Fantomas) о том упоминали, типа что сие возможно. Вот хотелось бы очень на это посмотреть.

А именно нужна функция которая получив в кач-ве аргумента список в два числа (высоту и ширину) в текущем документе создавала формат, кот. можно былоб использовать при печати и при создании нового листа.

Кстати, так-же, если не жалко - функцию создания листа с заданными параметрами.
Просмотров: 4383
 
Непрочитано 11.05.2005, 13:51
#2
AY

webcad.pro
 
Регистрация: 06.01.2005
Московская обл.
Сообщений: 501


Если я не ошибаюсь размеры бумаги определены в файле *.PC3 соотсетствующего печатного устройства, а если это так то коментарий из справки:
Цитата:
You cannot create a configured plotter (PC3) file using ActiveX. To create a PC3 file, use the Add-a-Plotter wizard in AutoCAD. For more information on PC3 files, see "Plotter-Specific Configuration Information" in the AutoCAD documentation.
AY вне форума  
 
Непрочитано 11.05.2005, 14:05
#3
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


Вот ссылка на эту тему, но для себя я проблему так и не решил.
http://dwg.ru/forum/viewtopic.php?t=2704
Torino вне форума  
 
Автор темы   Непрочитано 11.05.2005, 14:10
#4
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,202
<phrase 1=


да и я раньше так примерно и думал, но щас поискал, и вот цитата (отсюда http://dwg.ru/forum/viewtopic.php?t=2704 ):
Цитата:
Сообщение от Fantomas
Все есть.

Текущий формат листа vla-get-CanonicalMediaName vla-put-CanonicalMediaName.

Все доступные форматы по америкосовской классификации метод vla-GetCanonicalMediaNames

По локальной GetLocaleMediaName.

Все свойства и методы относяться к Layout, PlotConfiguration.

vla-GetPaperMargins и vla-GetPaperSize определяют размеры листа и отступы.
Только хотелось бы примерчик....или информацию о том что это НЕВОЗМОЖНО, и закрыть вопрос.
Поскольку дочитав ту тему до конца я так и не понял ничего.

PS. По хорошему надо было продолжить тему там-же, но не мог сначала найти, что сделано - то сделано....

Вот пока писал уже Torino отозвался...с сылочкой туда-же. Спасибо ему
Apelsinov вне форума  
 
Непрочитано 11.05.2005, 14:19
#5
AY

webcad.pro
 
Регистрация: 06.01.2005
Московская обл.
Сообщений: 501


Свойства и методы о которых пишет Fantomas предназначены для установки требуемого формата из уже имеющегося списка, а так же для чтения свойств имеющихся форматов. А вот добавить пользвательский размер бумаги судя по всему из лиспа не получтся.
AY вне форума  
 
Непрочитано 11.05.2005, 15:42
#6
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


>Apelsinov

Очевидно ты неправильно понял. Я никогда не говорил о создании Custom-форматов. Но с теми которые уже есть в списке можно работать.
{Smirnoff} вне форума  
 
Автор темы   Непрочитано 11.05.2005, 19:29
#7
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,202
<phrase 1=


Обидно ,конечно, досадно, но ладно..... нельзя, так нельзя....хотя ..а может не через лисп?

Тогда другой вопрос - как получить размеры всех доступных форматов, дабы из них выбрать наиболее близкий....что-то у меня не получается...

Может я что-то не то делаю, но вот такая штука:
Код:
[Выделить все]
(vlax-safearray->list
  (vlax-variant-value
    (vlax-for i	(vla-get-PlotConfigurations
		  (vla-get-ActiveDocument (vlax-get-acad-object))
		)
      (vla-GetCanonicalMediaNames i)
    )
  )
)
возвращает список имен РАСТРОВЫХ форматов....почему - мне не понятно....

То есть это еще при наличии PlotConfiguration, а если их нет? и если ни один Layout не настроен, как добраться до форматов?

То есть в идеале - можно ли получить Список всех форматов, описанных (насколько я понимаю) в pc3 файле, для конкретного плоттера? Получить их размеры?

А может я не те вопросы задаю....
Apelsinov вне форума  
 
Непрочитано 12.05.2005, 13:49
#8
ssn

Инженер проектировщик (раздел ТМ - фриланс)
 
Регистрация: 06.12.2003
Геленджик
Сообщений: 1,783
Отправить сообщение для ssn с помощью Skype™


я делал нечто подобное, только в ВБА, но до конца победить так и не смог (а конкретно, у меня почему то не получалось програмно создать новую плот конфигурацию для лейаута). потом я это обошел, но конечно корявенько, через участие пользователя.... однако прога работает....
ssn вне форума  
 
Непрочитано 12.05.2005, 14:18
#9
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


Я думаю нужно узнать структуру файла pc3
И заполнять его программно.
Torino вне форума  
 
Непрочитано 12.05.2005, 14:35
#10
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


>Torino
Судя по всему *.pc3 компилированный.

>Apelsinov
Нашел у себя получение списка названий всех форматов и их размеров для текущего Layout. Такое же судя по всему можно сделать и для конфигураций печати перебрав их по одной. К сожалению сейчас нет времени этим заниматся...

Код:
[Выделить все]
(defun Get_Paper_Sizes(/ actLayout mdNames oldFormat sizeList
		       Width Heigth)
  (setq actLayout
	 (vla-get-ActiveLayout
	   (vla-get-ActiveDocument
	     (vlax-get-acad-object)))
        mdNames
	 (vlax-safearray->list
	   (vlax-variant-value
	     (vla-GetCanonicalMediaNames actLayout)))
	oldFormat(vla-get-CanonicalMediaName actLayout)
	sizeList '()
	); end setq
  (foreach name mdNames
    (vla-put-CanonicalMediaName actLayout name)
    (vla-GetPaperSize actLayout 'Width 'Heigth)
    (setq sizeList(append sizeList(list(list name Width Heigth))))
    ); end setq
  (vla-put-CanonicalMediaName actLayout oldFormat)
sizeList
  ); end of Get_Paper_Sizes
{Smirnoff} вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание формата