реклама на сайте
подробности

 
 
> "СкриптописАние" под AD6.7, Можно ли передать в SaveObject process имя файла?
Gennaj
сообщение Sep 27 2007, 14:53
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 328
Регистрация: 15-08-06
Из: Севастополь
Пользователь №: 19 562



Здравствуйте!
Возникла необходимость сохранять проекты в ином формате. Ну, ясное дело, вручную все просто: File - Save Copy As на каждом листе схемы и всего делов-то.
Но вот захотелось автоматизировать сей нудный процесс, сведя сохранение наскольких файлов проекта к нажатию одной кнопки. Вот тут-то и вылезла "заковыка": стандартный процесс SaveObject имеет всего два параметра: SaveMode (Standard, SaveAs, SaveCopyAs) и ObjectKind (выбор, что сохранять). После запуска этого процесса я попадаю в стандартное окно "SaveCopyAs" и вынужден снова вручную вводить имя файла, выбирать папку назначения и тип файла.
Вопрос: можно ли каким-то образом автоматизировать ввод этой информации?
Иными словами - как из скрипта передать диалогу "SaveCopyAs" три параметра: папка, имя файла и тип файла.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 8)
Gennaj
сообщение Oct 1 2007, 14:29
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 328
Регистрация: 15-08-06
Из: Севастополь
Пользователь №: 19 562



Сам задал, сам и ответил...
В общем, у этой процедуры такого свойства нет, но можно использовать другие.
Задачу решить удалось :-)
yeah.gif
Go to the top of the page
 
+Quote Post
Владимир
сообщение Oct 1 2007, 14:37
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 11 653
Регистрация: 25-03-05
Из: Минск
Пользователь №: 3 671



Цитата(Gennaj @ Oct 1 2007, 17:29) *
Сам задал, сам и ответил...
В общем, у этой процедуры такого свойства нет, но можно использовать другие.
Задачу решить удалось :-)
yeah.gif

Кинь на мыло для тестирования wink.gif
Go to the top of the page
 
+Quote Post
Alex Ko
сообщение Oct 2 2007, 06:16
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 4-10-05
Из: Москва
Пользователь №: 9 217



Цитата(Gennaj @ Oct 1 2007, 18:29) *
Сам задал, сам и ответил...
В общем, у этой процедуры такого свойства нет, но можно использовать другие.
Задачу решить удалось :-)
yeah.gif

Может, лучше сюда? Или мне тоже..
Go to the top of the page
 
+Quote Post
Gennaj
сообщение Oct 2 2007, 12:10
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 328
Регистрация: 15-08-06
Из: Севастополь
Пользователь №: 19 562



Цитата(Alex Ko @ Oct 2 2007, 09:16) *
Может, лучше сюда? Или мне тоже..


Хм... А это действительно кому-то интересно???
Дело в том, что программа получилась не короткая, и выполняет кучу разных процедур, обеспечивая трансляцию файлов текущего проекта в формат Protel99.
При этом проверяются некоторые типичные ошибки, препятствующие корректной передаче. Здесь важное уточнение: программа ориентирована на работу с нашей библиотекой. Например, по ГОСТ требуется разрывы линий электрической связи завершать стрелками, простое указание NetLabel не катит. Ну, мы и сделали графический компонент типа "Обрыв связи", который проставляем на концах линий. В Альтиуме все в порядке, а вот в Протеле возникает проблема - там нет типа graphical. Соответственно все эти графические символы должны быть пронумерованы уникальными десигнаторами. С помощью команды Annotate этого не сделать, так как графика на автомате не нумеруется. Значит, либо Find Symilar - смена типа - нумерация - смена типа, либо писать программу.
Аналогично, Протел не понимает полигонов типа Solid, а мы в Альтиуме работаем именно с такими.
Вот программа и производит кучу проверок и преобразований, после чего сохраняет набор файлов.
Короче, сейчас скопирую из руководства, которое я для наших написал:

Ошибки, которые обнаруживаются программой и приводят к ее останову:
- наличие многоконтактных разъемов («Цепь-Контакт»), нарисованных на схеме зеркально относительно библиотечного компонента (имеющиеся в библиотеке многоконтактные разъемы имеют два варианта начертания, что позволяет не использовать атрибут Mirror – «отразить»);
- наличие компонентов, расположенных вне сетки – ошибка типа «Off grid»;
- наличие символов «Sheet Entry», расположенных не в сетке с шагом 10.
Все эти ошибки должны быть вручную исправлены пользователем.

Кроме того, программа автоматически осуществляет ряд подготовительных действий, которые призваны обеспечить правильную передачу в Protel99 проекта. А именно:
- в папке текущего проекта создается папка для сохранения файлов по принципу: <Имя проекта>\Protel99 (например: AV221_V6\Protel99);
- если такая папка ранее существовала, то все файлы, которые были в ней до начала работы скрипта, удаляются;
- автоматически нумеруются все символы «Обрыв связи»;
- корректируются ссылки в элементах SheetSymbol (символ листа);
- изменяется тип всех полигонов на печатной плате с Solid на 45DegreeHatch и осуществляется их перестройка;
- обнаруживаются и корректируются правила для Clearance<=0.
Все корректировки, проводимые автоматически, не сохраняются в исходных файлах Альтиума и попадают только в файлы формата Protel99.

Вот, собственно, такая программа :-)
Могу, в принципе, поделится, если это кому-то нужно.
Go to the top of the page
 
+Quote Post
Alex Ko
сообщение Oct 2 2007, 13:49
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 4-10-05
Из: Москва
Пользователь №: 9 217



Цитата(Gennaj @ Oct 2 2007, 16:10) *
Хм... А это действительно кому-то интересно???
Дело в том, что программа получилась не короткая, и выполняет кучу разных процедур, обеспечивая трансляцию файлов текущего проекта в формат Protel99.

Да, это не то, что я думал.. А на чём писал?
Go to the top of the page
 
+Quote Post
Gennaj
сообщение Oct 2 2007, 14:42
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 328
Регистрация: 15-08-06
Из: Севастополь
Пользователь №: 19 562



Цитата(Alex Ko @ Oct 2 2007, 16:49) *
Да, это не то, что я думал.. А на чём писал?

Delphi Script.
А что думал?
Go to the top of the page
 
+Quote Post
Alex Ko
сообщение Oct 3 2007, 05:23
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 4-10-05
Из: Москва
Пользователь №: 9 217



Цитата(Gennaj @ Oct 2 2007, 18:42) *
Delphi Script.
А что думал?

Ну, будучи практически нулём в программировании, думал методом Copy-Paste надергать скрипт для простейших задач, типа сохранения проекта в .DWG, что АД должон бы делать сам, но дурит (вместо всех листов схемы выдаёт один и тот же под разными именами) и т.п., надеясь на что-нить простейшее,типа Visual Basic..
Go to the top of the page
 
+Quote Post
Gennaj
сообщение Oct 4 2007, 10:19
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 328
Регистрация: 15-08-06
Из: Севастополь
Пользователь №: 19 562



Цитата(Alex Ko @ Oct 3 2007, 08:23) *
Ну, будучи практически нулём в программировании, думал методом Copy-Paste надергать скрипт для простейших задач, типа сохранения проекта в .DWG, что АД должон бы делать сам, но дурит (вместо всех листов схемы выдаёт один и тот же под разными именами) и т.п., надеясь на что-нить простейшее,типа Visual Basic..

В принципе, может получится. Вам придется кое-что поменять, а кое-какие функции вообще выбросить. Я отправил Вам в личку текст скрипта. Попробуйте, а затем напишите о результатах.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 17:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01424 секунд с 7
ELECTRONIX ©2004-2016