Перейти к содержанию
    

"СкриптописАние" под AD6.7

Здравствуйте!

Возникла необходимость сохранять проекты в ином формате. Ну, ясное дело, вручную все просто: File - Save Copy As на каждом листе схемы и всего делов-то.

Но вот захотелось автоматизировать сей нудный процесс, сведя сохранение наскольких файлов проекта к нажатию одной кнопки. Вот тут-то и вылезла "заковыка": стандартный процесс SaveObject имеет всего два параметра: SaveMode (Standard, SaveAs, SaveCopyAs) и ObjectKind (выбор, что сохранять). После запуска этого процесса я попадаю в стандартное окно "SaveCopyAs" и вынужден снова вручную вводить имя файла, выбирать папку назначения и тип файла.

Вопрос: можно ли каким-то образом автоматизировать ввод этой информации?

Иными словами - как из скрипта передать диалогу "SaveCopyAs" три параметра: папка, имя файла и тип файла.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сам задал, сам и ответил...

В общем, у этой процедуры такого свойства нет, но можно использовать другие.

Задачу решить удалось :-)

:yeah:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сам задал, сам и ответил...

В общем, у этой процедуры такого свойства нет, но можно использовать другие.

Задачу решить удалось :-)

:yeah:

Кинь на мыло для тестирования ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сам задал, сам и ответил...

В общем, у этой процедуры такого свойства нет, но можно использовать другие.

Задачу решить удалось :-)

:yeah:

Может, лучше сюда? Или мне тоже..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может, лучше сюда? Или мне тоже..

 

Хм... А это действительно кому-то интересно???

Дело в том, что программа получилась не короткая, и выполняет кучу разных процедур, обеспечивая трансляцию файлов текущего проекта в формат Protel99.

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

Аналогично, Протел не понимает полигонов типа Solid, а мы в Альтиуме работаем именно с такими.

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

Короче, сейчас скопирую из руководства, которое я для наших написал:

 

Ошибки, которые обнаруживаются программой и приводят к ее останову:

- наличие многоконтактных разъемов («Цепь-Контакт»), нарисованных на схеме зеркально относительно библиотечного компонента (имеющиеся в библиотеке многоконтактные разъемы имеют два варианта начертания, что позволяет не использовать атрибут Mirror – «отразить»);

- наличие компонентов, расположенных вне сетки – ошибка типа «Off grid»;

- наличие символов «Sheet Entry», расположенных не в сетке с шагом 10.

Все эти ошибки должны быть вручную исправлены пользователем.

 

Кроме того, программа автоматически осуществляет ряд подготовительных действий, которые призваны обеспечить правильную передачу в Protel99 проекта. А именно:

- в папке текущего проекта создается папка для сохранения файлов по принципу: <Имя проекта>\Protel99 (например: AV221_V6\Protel99);

- если такая папка ранее существовала, то все файлы, которые были в ней до начала работы скрипта, удаляются;

- автоматически нумеруются все символы «Обрыв связи»;

- корректируются ссылки в элементах SheetSymbol (символ листа);

- изменяется тип всех полигонов на печатной плате с Solid на 45DegreeHatch и осуществляется их перестройка;

- обнаруживаются и корректируются правила для Clearance<=0.

Все корректировки, проводимые автоматически, не сохраняются в исходных файлах Альтиума и попадают только в файлы формата Protel99.

 

Вот, собственно, такая программа :-)

Могу, в принципе, поделится, если это кому-то нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хм... А это действительно кому-то интересно???

Дело в том, что программа получилась не короткая, и выполняет кучу разных процедур, обеспечивая трансляцию файлов текущего проекта в формат Protel99.

Да, это не то, что я думал.. А на чём писал?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Delphi Script.

А что думал?

Ну, будучи практически нулём в программировании, думал методом Copy-Paste надергать скрипт для простейших задач, типа сохранения проекта в .DWG, что АД должон бы делать сам, но дурит (вместо всех листов схемы выдаёт один и тот же под разными именами) и т.п., надеясь на что-нить простейшее,типа Visual Basic..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну, будучи практически нулём в программировании, думал методом Copy-Paste надергать скрипт для простейших задач, типа сохранения проекта в .DWG, что АД должон бы делать сам, но дурит (вместо всех листов схемы выдаёт один и тот же под разными именами) и т.п., надеясь на что-нить простейшее,типа Visual Basic..

В принципе, может получится. Вам придется кое-что поменять, а кое-какие функции вообще выбросить. Я отправил Вам в личку текст скрипта. Попробуйте, а затем напишите о результатах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...