Новый вопрос: а как сформировать собранный pdf-файл из нескольких рамок модели?В смысле каждая рамка - отдельная страница в pdf-файле или несколько рамок на одной странице?
Поищу бесплатные программы с APIВроде PDFCreator это делает:
PDFCreator comes with a COM interface that allows you to control it from your application or script. You can wait for a print job, define where it will be saved, merge it with other print jobs and much more. As far as we know, we are the only PDF converter freeware that allows you to go this far.
Хочу уточнить: знаю, что вручную AutoCAD позволяет собирать единую pdf из листов. Что, если рамки находятся в листах. Получится ли программно вывести единую pdf. Возможно вызовом команды в командной строке или еще как-то?Теоретически (если рамки в листах) это возможно. Для этой цели необходимо вызвать метод Plot.SetLayoutsToPlot и передать массив всех листов. Ну и листы должны быть настроены для печати. Но это врядли то, что ты пытаешься реализовать.
Будут ли мне в VBA (VBS) доступны методы используемые из .NET API?Нет. Эти методы доступны только из .NET dll-файла, загруженного внутрь AutoCAD.
Прошу прощения, что именно смотреть?Какие следует использовать типы данных, как их преобразовывать.
Просто при использовании стандартных форматов все работает, не работает лишь при изменении стандартных или использовании собственных (нестандартных) форматов.Может быть. Хотя пустой плотфайл чаще всего говорит о неправильно заданных координатах. Попробуй указать PlotConfig.PlotType = acWindow
Как создавать свои форматы так, чтобы их можно было указывать при печати программно?Подозреваю, что это невозможно. Точнее для каких-то плоттеров это возможно, для каких-то нет. Но в общем случае так сделать нельзя.
Если Вы пытаетесь пакетно распечатать все рамки из пространства листаимеете ввиду из пространства модели наверно.
Рекомендация по настройке принтера:. И сам PUBLISH в конце.
Эту проблему решил так: есть имя которое мы задаем руками "myname", есть системное автоприсваиваемое имя "UserDefineMetric", "UserDefineMetric_1" и т.д. Чтобы получить имя в виде "myname", нужно использовать методздравствуйте. а можно чуть подробней?
Код - Visual Basic [Выбрать]
Plotlayout.GetLocaleMediaName(Х)
, где Х - это перебор всех существующих у Layout имен форматов, т.е.
Код - Visual Basic [Выбрать]
Plotlayout.GetCanonicalMediaNames()
Чтобы указать нужный формат просто перебором сверяем искомое имя.