|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Цитата:
Попробуем завтра, что нам Елпанов Евгений предложил. |
|||
![]() |
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Цитата:
В лисп функции будет предусмотрено копирование этого файла в нужное место и последующе его удаление, а также будут заданы нужные мне параметры печати и автоматический запуск печати. Вот только надо сделать так чтобы функция выполнилась сама при открытии рисунка, но лисп здесь безсилен должен помочь VBA. |
|||
![]() |
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,202
![]() |
>mmax
Цитата:
1)Что тебе мешает настроить layout под нужный лист без полей если у тебя есть драйвера ИХ плоттера? Им надо будет просто нажать на кнопку "печать". 2) И кто заставит их запустить макрос, если ты его сможешь написать, если не проходит даже первый вариант? |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
>favorite № 107
По сваям см. здесь Последний раз редактировалось VVA, 18.09.2015 в 23:42. |
|||
![]() |
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Цитата:
Если рассказать детально, то есть такая папка "Принтеры и факсы" в "Панели управления" там можно настроить размеры листа. По умолчанию там предлагается целый набор стандартных листов ,штук 50, размеры которых нельзя изменить, но есть 5 листов под названием Custom 1, 2, итд, размеры которых можно менять если принтер эти размеры поддерживает, но по умолчанию они имеют стандартные размеры. Беда в том что работники фирмы даже не подозревают что размеры листа можно менять. Они используют листы размером 620*940, а при печати выбирают лист "ISO A1 oversais" -- соответственно принтер тоже думает что у него стоит стандартный формат А1 и расчитывает его с полями для этого формата и глюк еще в том что хоть и "ISO A1 oversais" предусматривает печать без полей, поля по 5 мм всетаки есть--про калибровку работники фирмы тоже не догадываются. Впринципе если печатать без рамки 841*594, то чертеж более менее соответствует масштабу, но лишние края обрезать приходится ножницами и мне эту рамку приходится рисовать карандашом чтобы было видно где резать(напоминаю -- реальные размеры листа 620*940). Если я у себя на компьютере настрою размеры листа Custom 1 в соответствии с реальными размерами листа 620*940 то в пространстве листа область печати получается много больше чем формат А1 и рамка 841*594 болтается там как гвоздь в стакане. Но когда я приношу рисунок на печать то Автокад выдает сообщение на несоответствие настроек листов в принтере, тоесть надо заставить фирму тоже настроить Custom 1 по моим требованиям. .PC3 файл мог бы решить решить эту проблему. Как я заметил если в нем вызвать окно настроек принтера, такое же как и в папке "Принтеры и факсы" и задать нужные значения листов, то эти изменения сохранятся только в PC3 и никак не влияет на системные настройки в "Принтерах и факсах", что очень бы порадовало бы фирмачей, которые не хотят отступать от умолчаний ни на шаг. Но этот РС3 предательски отображается в списке принтеров при настройке печати и раздражает пугливых работников. Цитата:
А проехать по ушам работников, что этот макрос запускает какую нибудь автоматическую прорисовку стандартных объектов и типов линий , которые хранятся lsp файле, а также запускает печать с нужными параметрами. Для наглядности еще дома отключить все слои, а лисп-функция их включит, получится что не запустив макрос – рисунок будет голым то и печатать его нет смысла, а я всетаки постоянный клиент итп итд. Чем вызвана эта проблема в целом: Фирмы по оказанию услуг печати больших форматов для населения просто боятся простоев оборудования по причине сбоев программного и аппаратного обеспечения тк это их хлеб. И клиентов они не подпускают к настройкам потомучто боятся, что клиент в силу своей неопытности может внести какиенибудь изменения и просто чего нибудь напортачить, и после неумелых действий клиента их могут ждать сбои, простои итп. А обучить работников предприниматели просто не могут – таким вещам нигде не учат. В сложившейся ситуации мой PC3 был бы революционным решением в деятельности фирмы – теперь они могли бы говорить, что формат А1 полностью вписывается в лист без искажений, но мысль о том что какой то файл предоставленный клиентом да еще который надо скопировать в скрытую системную папку да еще какая то там Панель управления приводит их в ужас. И то что я предлагал хозяевам фирм бесплатно обучить персонал использованию РС3 не возымело на них никакого действия. Поэтому мне надо самому для себя принимать какие нибудь революционные решения иначе мои чертежи будут печататься в формате 835*589 а линию отреза полей мне приходится рисовать самому. Такую политику ведут все фирмы в нашем городе |
|||
![]() |
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Цитата:
Сколько мне приходится их уговаривать, спорить чтобы они сделали все по моему все безрезультатно учитывая то что с листа они берут по 100р, а мои требования к печати не выполняют. однажды просто сказали: "Молодой человек, если вы умнее нас, то купите свой плоттер и печатайте как вам вздумается." В такие моменты мне хочется написать чтонибудь типа (vl file delete "systemroot\*.*) :twisted: |
|||
![]() |
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 14.03.2006
Сообщений: 863
|
в обчем маленький ликбез
в acade с недавних пор 4 автозагружаемых лиспа: acad2000.lsp - системный, загружается при старте системы acad2000doc.lsp - системный, каждый раз загружается при открытии или создании нового файла acad.lsp - пользовательский, загружается при старте системы acaddoc.lsp - пользовательский, каждый раз загружается при открытии или создании нового файла так вот, acad загрузит один ближайший acaddoc.lsp, а искать будет прежде всего в той папке, где лежит файл чертежа, и только потом, если не найдет, начнет рыть во всяких support file searh path, по порядку причем... Код:
![]() дерзайте... |
|||
![]() |
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,202
![]() |
Цитата:
|
|||
![]() |
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Цитата:
:?: Не могу прикрепить картинку средствами этого форума :?: Эта картинка расположена в Череповецкой локальной городской сети и может быть недоступна некоторым пользователям. ![]() При "Oversize: ISO A1" он будет без наружных рамок и чтобы обрезать лист ножницами надо будет самому нарисовать наружную рамку. Обрезать надо для тогочтобы сложить лист в курсовик и излишние поля только помешают. И как я уже говорил выше меня не допускают к настройкам печати даже если я сделаю чтото неправильно и за повторную печать заплачу как за два листа и при всем этом они умудряются вписать А1 формат с уменьшением масштаба в этот злополучный "Oversize: ISO A1" Ну и насколько я изучил печать не имея плоттера, а только его драйвер, то в "Oversize: ISO A1" я смогу добиться масштаба 1:1, но наружные рамки могут не пропечататься тк находятся на самом краю печатного края точнее совпадают с ним. Плоттер ничего не режет. Так что Custom всетаки лучше и реальнее отображает картину. Ну и при открытии рисунка печать пойдет сама не надо будет ничего настраивать. Вобщем хочу создать этакого печатного троянца который будет действовать по моим правилам а не по ихним. Ну и в продожение темы нашел тут нечто такое под названием PLOTSETTINGS, которое размещается в секции OBJECTS, а так же список DXF кодов к ним. На мой взгляд с помощью этого PLOTSETTINGS можно настроить печать лучше и прощще чем с помощью COMMAND. Но при помощи моих знаний объектной модели я так и не смог получить возвращаемого значения с кодом ((0 . "PLOTSETTINGS") (итд) (итп)) Скажите как воспользоваться данным свойством, модифицировать его и отправить на печать. |
|||
![]() |
|
||||
Регистрация: 14.03.2006
Сообщений: 863
|
to mmax
что то ты совсем отчаялся если такой обходной путь ищешь... Plotsettings - это pagesetup, для каждого layout и для модели эта группа будет... Так вот, чтобы получить ((0 . "PLOTSETTINGS") надо сначала получить ((0 . "имянужногоLayout") а уже затем из этого составного объекта можно выдернуть ((0 . "PLOTSETTINGS") и все остальное Ежели хочешь погеморроиться поищи в хелпе акада на тему Creating & modifying complex entities соответственно возникают еще два вопроса 1 лирический - вот я в свое время защищался так преподы нас с масштабом не прессовали - аппаратные ограничения, понимали блин... 2 практический - что мешает дома отпечатать в файл *.pln со всеми нужными настройками, а в фирме просто скопировать это дело на плоттер? при такой процедуре все без спросу работает а вообще ищи нормальную контору с нулевочкой или рулонной A1 - никто ведь не запретит расположить лист на плоттере вертикально? |
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
>mmax
Собственно создание чертежей для плотера которого нет не представляет большой проблемы, при одном условии. Надо иметь файлы шаблонов *.dwt созданные для этого плотера (естественно с рамками, потому что при отсутствии плотера невидно границ листа). При нестандарных форматах это кречно не спасает, однако со стандарными очень помогает. >Zouss Без обид. Писать определние параметров печати в s::startup - вредный совет - поскольку если эта функция переопределена, то работает при загрузке всех чертежей в данном сеансе, т. е. получается что при загрузке её из одной из копий acaddoc.lsp я на весь сеанс работы получаю измененение параметров печати во всех открываемых чертежах :evil: Если уже на то пошло, не проще ли просто после тела функции в файле acaddoc.lsp сразу её вызвать (defun My_Fun() ...) (My_Fun) ? Копии acaddoc.lsp конечно в опрелённых случаях выход, но что то мне не совсем нравится. Если такая копия будет случайно перемещеня не в "свою" папку и будет что то творить при открытии чертежей? Большинство контор даже не имеют специалиста который сможет догадатся о причинах подобных "глюков". Насчёт параметров печати, то их намного проще менять ActiveX - методами. |
|||
![]() |
|
||||
Регистрация: 14.03.2006
Сообщений: 863
|
Цитата:
а для нашего конкретного случая - простая проверка, например на наличие специфических блоков в файле или еще как нибудь вполне достаточна чтобы избежать возможных проблем собсна я и не обижаюсь - все что я хотел, так это показать самый примитивный, а значит легко и быстро реализуемый способ автозапуска lsp на чужой машине |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Насколько я знаю, применение S::Startup чревато некорректной работой AutoCAD - порядок вызова этой функции неопределен, и она может вызываться до момента загрузки всех необходимых модулей (lsp и arx) AutoCAD. Т.е. можно получить необъяснимый глюк нормально работающего кода.
Никто не мешает своему коду дать имя нечто типа Код:
Код:
По крайней мере, я бы сделал так.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 14.03.2006
Сообщений: 863
|
все же продолжаю оставаться при своем мнении, и вот почему
порядок вызова s::startup как раз таки определен - она запустится при загрузке *.lsp, но после того как все (defun этого файла будут проинициализированы. то есть наш s::startup может пользовать любую функцию загружаемого *.lsp предлагаемый вами вариант автозапуска при загрузке *.lsp заключается в том чтобы вынести например (zouss:starter) за пределы любой функции Но тогда, если (zouss:starter) использует какую либо другую функцию, то эта самая другая должна находиться в буквальном смысле выше описания нашего стартера, да и сам стартер должен быть описан выше первого вызова Вот откуда растут ноги необъяснимых глюков, чаще всего как раз для файлов типа acad.lsp и acaddoc.lsp где бывает много обращений к общим функциям блин нагрузил че-то... в обчем уважаемые оппоненты, если что киньте в меня кодом, а уж я в него внесу ошибку... |
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
>Zouss
Цитата:
![]() s::startup - действительно в некоторых случаях глючит, особенно при наличии приложений подгружающих *.arx по какой то своей логике. Я вообще не пользуюсь ни acaddoc.lsp ни s::startup, пишу всё в соответствующие *.mnl. В данном случае это конечно не проходит т. к. речь идёт о передаче файлов вместе с лиспами. В общем дело вкуса... А в данном случае с распечаткой программировать ничего не надо. Просто надо поиметь *.dwt сделанные для распечатки из пространства листов на разные форматы для соответствующего плотера. |
|||
![]() |
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
До сегодняшнего дня я мирился с тем, что формат А1 = 835*589. Но теперь я буду играть по своим правилам.
А теперь представьте себе как округлятся глаза у девочки, которая будет печатать мои чертежи точнее когда он напечатается сам без предупреждения... |
|||
![]() |