Jump to content

    

Где применить свое умения Скриптописателя под Алтиум?

Где применить свое умения Скриптописателя под Алтиум?

Вот научился, написал себе парочку... А как с этого профит поиметь? Есть, чудаки, которые за это деньги платят?

Share this post


Link to post
Share on other sites
2 hours ago, Trashy_2 said:

Где применить свое умения Скриптописателя под Алтиум?

Вот научился, написал себе парочку... А как с этого профит поиметь? Есть, чудаки, которые за это деньги платят?

Ахаха. а нука посчитай скриптом длину Signal Length!

Задача №2 нарисовать линию, скопировать в буфер и вставить.

(пока это ближайшие задачи над которыми я бьюсь)

Share this post


Link to post
Share on other sites

Замени SCH на что тебе надо.

function NumberSchematicsOfAProject(Project : IProject, CurDoc : IDocument) : Integer;      {получить количество листов в схеме}
Var
    I, SchCount : Integer;
    Children    : integer;
    Doc         : IDocument;
    CurrentSch  : ISch_Sheet;
    S           : string;
    SchDocument : IServerDocument;
Begin
            SchCount := 0;
   if (CurDoc = nil) then  begin
        Doc := Project.DM_TopLevelLogicalDocument;
        If Doc.DM_DocumentKind = 'SCH' Then  Begin
            NumberSchematicsOfAProject(Project, Doc);
        end;
    end
    else begin
        Doc := CurDoc;
        If Doc.DM_DocumentKind = 'SCH' Then begin
            SchDocument := Client.OpenDocument('SCH',Doc.DM_FullPath);
            CurrentSch := SchServer.GetSchDocumentByPath(Doc.DM_FullPath);
            SchCount := SchCount + 1;
            //   FindAndChangeParam('SheetNumber', IntToStr(SchCount), CurrentSch, true);
            CurrentSch.GraphicallyInvalidate;
            SchDocument.Modified := True;
        end;
        if (Doc.DM_ChildDocumentCount > 0) then Begin
            Children := Doc.DM_ChildDocumentCount;
            //recurse into the children
            For i:= 0 to (children - 1) do
                NumberSchematicsOfAProject(Project, Doc.DM_ChildDocuments);
        End;
    end;
    Result := SchCount;
End;

Share this post


Link to post
Share on other sites
21 hours ago, peshkoff said:

Ахаха. а нука посчитай скриптом длину Signal Length!

Задача №2 нарисовать линию, скопировать в буфер и вставить.

(пока это ближайшие задачи над которыми я бьюсь)

Почту проверь

Share this post


Link to post
Share on other sites
1 hour ago, Trashy_2 said:

Почту проверь

Я ващщще ниче не понял.

Мне нужно вот что (обведено красным прямоугольником):

01.thumb.png.f773da6f2cb7c2d5956418438e740382.png

ЗЫ: А к чему все эти "$D784928E", REG_STATE_MV78200.... "IntToHex(REG_STATE,8)"...

Это чтобы обычных юзеров перепугать?? :))

 

ЗЗЫ: Там при каждом выезде комбобокса у меня думает минуты три!

лучше эту задачу решать через GetObjectAtCursor

Share this post


Link to post
Share on other sites
16 hours ago, peshkoff said:

Я ващщще ниче не понял.

Мне нужно вот что (обведено красным прямоугольником):

01.thumb.png.f773da6f2cb7c2d5956418438e740382.png

ЗЫ: А к чему все эти "$D784928E", REG_STATE_MV78200.... "IntToHex(REG_STATE,8)"...

Это чтобы обычных юзеров перепугать?? :))

 

ЗЗЫ: Там при каждом выезде комбобокса у меня думает минуты три!

лучше эту задачу решать через GetObjectAtCursor

Прога накидана за один час, поверх старой программы, считавшей состояния регисторов для проца Marwell, как показуха. Считает только длину трэков. Если у тебя там пады, via и arc, то они в зачёт не идут. Алтиум так же в длину включает высоту VIAs.  Выдели только трэки и сравни результат.

Оптимизация по скорости тоже не делалась. ПРога шмонает ВСЕ треки и все неты. На средненьких платках работает быстро.

Share this post


Link to post
Share on other sites

Посчитать длину меди по плате никаких проблем Net.RoutedLength

Сюда включатся и треки и арки. Получим значение в предпоследнем столбце из моей картинки.

51 minutes ago, Trashy_2 said:

Алтиум так же в длину включает высоту VIAs.

Про то и речь. Альтиум то считает, а вот можно ли посчитать скриптом?

Казалось бы, добавь Net.SignalLength и задача решается за 20 минут!

Но, спасибо разработчикам, сложность задачи возрастает на порядки.

----

Так вот, к чему это я. Как ты собираешься монетизировать сей скилл?

Ты настолько уверен, что альтиум тебе даст вот так "накидывать скрипты за один час"

Если во всех билдерах можно быть уверенным в работе функций-процедур.

То тут не все так просто. Оценишь задачу на два часа, а провозишься две недели.

----

Да и вообще, кому сейчас нужны скрипты кроме меня и тебя, ну да еще разве что petar perisin...

Да и тот уже забросил проект почти. Я попробовал на altium.com на форуме по скриптам поинтересоваться. в каждой моей теме 0 ответов.

Вот лучше бы мне помог! А мои скрипты забирай бесплатно.

Некоторые так вообще бомба! Ни у кого таких нет.

А мне лучше скажи, как к буферу обмена подобраться. Нужно линию туда скопировать. Речь само собой о PcbDoc

 

Share this post


Link to post
Share on other sites
21 minutes ago, peshkoff said:

Вот лучше бы мне помог! А мои скрипты забирай бесплатно.

Некоторые так вообще бомба! Ни у кого таких нет.

А мне лучше скажи, как к буферу обмена подобраться. Нужно линию туда скопировать. Речь само собой о PcbDoc

 

https://github.com/Altium-Designer-addons/scripts-libraries/commit/a86ea283395e2104f11617a7d3db63c15c708f20

 

Или это не тот клипбоард?

Edited by Trashy_2

Share this post


Link to post
Share on other sites
20 minutes ago, Trashy_2 said:

Автор этого как раз таки Petar Perisin. Так сказать пособие для начинающих скриптописателей.

Очень помогает на начальном этапе.

Но сейчас проект не развивается

Мой вот здесь:

https://sourceforge.net/p/altiumscripts/svncode/HEAD/tree/

Одна проблема, инструкций нет, но могу рассказать по самым боевым, которые я использую.

Share this post


Link to post
Share on other sites

Очень интересная тема, как раз посматриваю в сторону скриптов.  Может уже кто  реализовывал следующую задачу:

1 часто в УГО встречаются пины с одинаковыми именами, которые в схеме нужно соединять (пример тому микроконтроллер или ПЛИС у которпых десяток, другой ножек GND). скрипт прочерчивает электрическиее линии, соединяющие  пины с одинаковыми именами. как показано на рисунке.

image.thumb.png.eb1be57784231f9ca6dfdab1f1aacc19.png

Share this post


Link to post
Share on other sites
18 minutes ago, chapt said:

Может уже кто  реализовывал следующую задачу

Не думаю, чтобы ктото реализовывал такое. 

Но вы можете попытаться. Если будут вопросы, можно их здесь задать

Share this post


Link to post
Share on other sites
21 hours ago, chapt said:

Очень интересная тема, как раз посматриваю в сторону скриптов.  Может уже кто  реализовывал следующую задачу:

1 часто в УГО встречаются пины с одинаковыми именами, которые в схеме нужно соединять (пример тому микроконтроллер или ПЛИС у которпых десяток, другой ножек GND). скрипт прочерчивает электрическиее линии, соединяющие  пины с одинаковыми именами. как показано на рисунке. 

image.thumb.png.eb1be57784231f9ca6dfdab1f1aacc19.png

Даже, если меня попросят прорисовать все одинаковые пины во всех моих проектах за всю жизнь - это займёт меньше времени, чем написание подобного скрипта.

Share this post


Link to post
Share on other sites

А вот такой вопрос:

ШИНА в схеме. По альтиумовским нормам, она должна иметь название типа: Name[1..20], только тогда она является подключенной шиной. По российским традициям в шину запихивают всё, что плохо лежит, даже цепи питания...

Так вот, можно ли, какой командой/функцией выяснить: какие неты к этой шине прицепили физически, а не прописаны в NetLable ?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now