|
|
  |
deplhi script API |
|
|
|
Apr 24 2015, 13:43
|

люблю бегать и орать
    
Группа: Свой
Сообщений: 1 685
Регистрация: 28-04-07
Из: ЮБутово@Москва.ru
Пользователь №: 27 376

|
Даа. Ничего не дают. Приходится содержимое после точки изучать  ) Вот. 2 года исследования и я научился выключать сетку!!! Код PCBBoard.LayerIsDisplayed[79] := False; PCBBoard.LayerIsDisplayed[80] := False; а тот, кто придумал такую работу с сеткой в альтиуме, должен разбежаться, стукнуться об стену и сдохнуууууууууууууууууууууууууть!!!!!!!!!!!!!!!!! в догонку: Кто-нибудь знает, где получить таблицу с номерами слоев и соответствующие им имена?
|
|
|
|
|
Apr 27 2015, 07:07
|
Местный
  
Группа: Участник
Сообщений: 254
Регистрация: 27-10-08
Пользователь №: 41 220

|
Цитата(peshkoff @ Apr 24 2015, 16:43)  Кто-нибудь знает, где получить таблицу с номерами слоев и соответствующие им имена? Тут нету? C:\Program Files (x86)\Altium Designer Summer 09\Examples\Scripts\Delphiscript Scripts\Pcb\PCB Layers
--------------------
Транзистор не сможет измерить широкое сердце героя!(ц)
|
|
|
|
|
Apr 27 2015, 11:25
|
Местный
  
Группа: Участник
Сообщений: 254
Регистрация: 27-10-08
Пользователь №: 41 220

|
Цитата(peshkoff @ Apr 27 2015, 12:06)  примеры там только. ладно, думаю можно программно вытащить ее в текст. Так LayerInfo.pas : Код Str := 'Layer, Name, Material, Cu Thickness, Dielectric Material, type, constant, height ' + #13#10;
Layer := MinLayer; Repeat Str := Str + GetLayerInfo(BoardHandle, Layer) + #13#10; Until Layer = eNoLayer;
--------------------
Транзистор не сможет измерить широкое сердце героя!(ц)
|
|
|
|
|
Apr 28 2015, 07:38
|

люблю бегать и орать
    
Группа: Свой
Сообщений: 1 685
Регистрация: 28-04-07
Из: ЮБутово@Москва.ru
Пользователь №: 27 376

|
Раз уж тема обозвана глобально, то продолжу. Задача: Можно ли передать параметры для выполнения команды из кнопки? Т.е. я вытащил кнопку для запуска скрипта. В ней записано: Process: "ScriptingSystem:RunScript" Parameters: "ProjectName=D:\Work\Altium Designer\Scripts\EditPCBObject v1.0\EditPCBObject.PrjScr|ProcName=EditPCBObject.pas>SetNetName" Так вот. я хочу, узнать, можно ли ввести еще какой-нибудь параметр, чтобы он мог считаться при запуске скрипта? Сперва я хотел сделать процедуру с запуском с переменными данными: Код procedure MyProc (S: String); Но процедура с таким названием не попадает в список DXP\Run Script
|
|
|
|
|
Apr 28 2015, 11:59
|
Участник

Группа: Участник
Сообщений: 74
Регистрация: 30-03-06
Пользователь №: 15 624

|
Цитата(peshkoff @ Apr 28 2015, 10:38)  Раз уж тема обозвана глобально, то продолжу. Задача: Можно ли передать параметры для выполнения команды из кнопки? Т.е. я вытащил кнопку для запуска скрипта. В ней записано: Process: "ScriptingSystem:RunScript" Parameters: "ProjectName=D:\Work\Altium Designer\Scripts\EditPCBObject v1.0\EditPCBObject.PrjScr|ProcName=EditPCBObject.pas>SetNetName" Так вот. я хочу, узнать, можно ли ввести еще какой-нибудь параметр, чтобы он мог считаться при запуске скрипта? Сперва я хотел сделать процедуру с запуском с переменными данными: Код procedure MyProc (S: String); Но процедура с таким названием не попадает в список DXP\Run Script Может поискать в это направлении по IProcess... http://techdocs.altium.com/display/SCRT/Sy...her%20Interface
|
|
|
|
|
May 7 2015, 09:01
|

люблю бегать и орать
    
Группа: Свой
Сообщений: 1 685
Регистрация: 28-04-07
Из: ЮБутово@Москва.ru
Пользователь №: 27 376

|
Цитата(Vasen @ Apr 28 2015, 14:59)  Что то всю голову переломал.. Какому серверу принадлежит IProcessLauncherInfo? Как его определить? Я объявил: Код ProcLaunch : IProcessLauncherInfo; ff : String; Затем пытаюсь получить Код ff := ProcLaunch.Caption Необъявленная переменная. Видно , что пропустил что-то типа ProcLaunch := XXXServer.GetCurrentXXXX... Решил пока другим способом, через AddStringParameter из кнопки и GetStringParametr в скрипте. Работает, но тогда длинный текст в кнопке получается....
|
|
|
|
|
May 12 2015, 09:56
|

люблю бегать и орать
    
Группа: Свой
Сообщений: 1 685
Регистрация: 28-04-07
Из: ЮБутово@Москва.ru
Пользователь №: 27 376

|
удалось чуть подобраться, но опять я в тупике: Код var ProcLaunch : IProcessLauncherInfo; st1 : String;
begin ProcLaunch := Client.GUIManager.GetProcessLauncherInfoByID('RunScript'); st1 := ProcLaunch.Caption; end; вроде работает. но. Оказывается, GetProcessLauncherInfoByID смотрит не текущий скрипт, а читает DXP.RCS. Находит в нем первую строку "PL RunScript Command='ScriptingSystem:RunScript'...." и из нее получает все параметры в итоге, st1 = скрипту, который я создал самым первым, после установки альтиума  он уже давно переименован и удален блин. нафиг это надо?? Роем дальше
|
|
|
|
|
Oct 5 2015, 12:13
|
Группа: Новичок
Сообщений: 4
Регистрация: 29-11-13
Пользователь №: 79 415

|
А у меня возник вопрос тоже по написанию скриптов в Altium. Мне необходимо отобразить зеркально компонент взятый из библиотеки. Если я устанавливаю Component.IsMirrored:=true; то в свойствах устанавливается галочка Mirrored, но компонент не зеркалируется. Судя по всему необходимо использовать функцию component.Mirror(), но мне непонятен входной параметр данной процедуры Mirror(const Axis: IDispatch). Подскажите, пожалуйста, что это за параметр, как описать эту ось.
|
|
|
|
|
Oct 6 2015, 08:51
|
Группа: Новичок
Сообщений: 4
Регистрация: 29-11-13
Пользователь №: 79 415

|
Цитата(peshkoff @ Oct 6 2015, 11:29)  Видимо нужно указать ось для зеркального отображения X или Y. Правда, нужно разобраться в каком виде. Может и первый вариант пойдет, возможно там необходимо что-то типа Update..
Еще есть функция Flip. Пошерстите в этом напрвлении Благодарю, буду разбираться)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|