Реклама i
|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,202
![]() |
История продолжается...
Нашел как закрыть неактивный документ: Код:
Код:
Выходит все чего-то ждут - а работать никто не хочет, очень знакомая ситуация ![]() Все из-за невозможности открыть документ и сделать его неактивным, закончив в нем функцию. И даже написав функцию печати неактивного документа этой проблемы не решить - открыв документ надо будет сделать его неактивным. В общем я в ступоре ![]() Сама задача-то почти решена, не получается лишь полной автоматизации. В принципе запустив программу остается лишь нажимать ctrl + tab - 1000 раз...что уже не так плохо. Но жаль! |
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
Погоди немного.... У меня уже все печатает, правда "тормозной" метод vla-PlotToDevice вносит свои коррективы. Сейчас попробую заменить его на твою функцию. Идея у меня совсем другого плана. Нужно чтобы документ всегда был активным при печати- открываем вторую сессию AutoCAD из первой и открываем там по очереди все документы опять же из первой сессии. Вот только ждать пока vla-PlotToDevice отправит их на печать жутко долго...
Вот можешь пока поиграться с моими первыми опытами. Убери закоменченные строки печати, вставь задержку (command "_.delay.... возможно твоя функция печати будет работать из автозагрузки. А я пока с твоей функцией "добью" вариант со втрой сессией акада... Код:
|
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
[sm158] [sm158] [sm158] Работает!!!!
Осталась толко одна проблемма, решение которй требует либо небольшого количества кода, либо остроумия. Состоит она в следующем. При работе с одной версией AutoCAD мы можем организовать "спусковой крючек" от состояния которого при загрузке нового файла функция (apel-plot-extents будет запущена на выподнение к примеру через внедукументное пространство. При работе со второй сессией, пройдут только ActiveX объекты. Моя идея состоит в том чтобы "поймать" первую сессию из второй с помощью (vlax-get-object, обратиться к активному документу и если там есть соответствующая метка (к примеру точка с соответствующими координатами) запустить (apel-plot-extents. Может есть другие идеи? А пока попробуй, но после работы acaddoc.lsp (или автозагрузку) придется почистить во избежании печати всех открываемых документов... В acaddoc.lsp у меня: Код:
Основная функция: Код:
|
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
Еще CMDECHO забыл отключить... И лазерник, почему то печатает не так быстро. Думаю чтобы "неповесить" сетку, задержку на печать надо побольше сделать, слишком быстро она их отправляет... а печатает медленее... :roll:
|
|||
![]() |
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,202
![]() |
Ну проблемы админов оставим им самим, 34 файла в очереди это цветочки, я и вручную их порой отправлял забивая в очередь под сотню.
Но вообще мне совсем не нравится идея с delay. Но без нее тут никак, просто у меня принтеры разные по разному по сетке откликаются, не знаю от чего зависит. По поводу "крючка" - можно при запуске проги делать запись в файл, а в автозагрузке его читать. Затем по окончании, менять запись.Или просто созавать временный файл, и проверять его наличие. Разбираюсь с прогой - есть вопрос - что такое vlax-release-object? |
|||
![]() |
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,202
![]() |
Да, еще - есть способ проверить на наличие dos_lib кроме как на загруженные файлы arx?
Мне в принципе все равно, но уж если быть занудой то у меня dos_lib грузится из doslib2004.arx или doslib2k.arx.(себе я пока эту ф-ю вообще убрал) А по хорошему ее вообще надо в asmi-all-folder-dwgs, больше ведь нигде вроде не используется. |
|||
![]() |
|
||||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
>Apelsinov
Цитата:
Цитата:
![]() Цитата:
![]() Цитата:
В общем требуются мелкие доработки, а так в общем даже очень ничего... >avd Цитата:
Строчку я эту из Хелпа читал, однако она не говорит о том что нельзя запустить печать одного файла из другого. И с переменной BACKGROUNDPLOT баловался. Вот то что (vla-PlotToDevice работает по лиспом полностью "тормознуто" и делает активным документ не из которого дана команда на печать, а печатаемый это точно... Хотя все решаемо и в одной сесси AutoCAD, можно таскать все туда-сюда через внедокументное пространство, я имею ввиду держать там список файлов, и флаги для переключения документов. Однако такой алгоритм мне нравится меньше, поскольку при любой ошибке "цепочка" оборвется. А с двумя сессиями, по крайней мере есть "главный" который "ведомого" контролирует... |
|||||
![]() |
|
||||
Регистрация: 24.02.2005
Сообщений: 8
|
А стоит ли мучится с двумя сессиями. У меня работает как я писал - выбираю с помощью dos_getfilem, пишу имя файла в users, вызываю макрос VBA и печатаю. И ни каких тормозов. Конечно если не пользоваться гадким VBA из принципа тогда другое дело.
|
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
>avd
Цитата:
Чтобы всякие VBAшники нос не задирали ![]() |
|||
![]() |
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,202
![]() |
>all
Ну а мне вообще все паралельно, на чем эта штука будет написана, хоть на лиспе, хоть на VB, хоть на паскале или фортране - главное чтоб работала хорошо. Вот только писать я могу только на лиспе (и то коряво). Поэтому если кто-то напишет аналог на VB - дык флаг в руки, и немерянное СПАСИБО от меня ![]() |
|||
![]() |
|
||||
Регистрация: 24.02.2005
Сообщений: 8
|
Прошу не бить ногами, это ведь я так только сказал, что всё прекрасно работает. Да работает, но заточено под свою задачу, делать в общем виде для любого пользователя нет времени.
На VBA это выглядит примерно так: Код:
Буду рад видеть усовершенствования этого "шедевра", я ведь сам VBA тоже почти не знаю. |
|||
![]() |
|
||||
Регистрация: 24.02.2005
Сообщений: 8
|
Loading VBA Files тут http://www.afralisp.com/vl/vl-vba.htm
|
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
Цитата:
Ты лучше скажи, как оно работает :?: Я там "спусковой крючек" написал и функцию задержки в зависимости от величины файла, только дома флешку забыл :cry: Переписывать не хочется, в понедельник проверю и тогда выложу. |
|||
![]() |
|
||||
Инженер Регистрация: 24.01.2006
Подольский р-н, п.Поливаново
Сообщений: 28
![]() |
Здравствуйте
Извените что вмешиваюсь. Меня интерисует один ворос: в AutoCAD 2007 есть или нету Batch Plot Utility, или может есть какая нибудь команда для пакетной печати из пространства листа. Целый проект в одном файле выполнен на листах, все настройки печати выполнены, печатать лень. Спсбо |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
_.publish либо Sheet set managet
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |