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

синтаксис для Smart Edit

Добрый вечер.

1)Где можно посмотреть синтаксис для Smart Edit? 

2)Если у меня есть много разных текстовых строк в редакторе схем и я хочу у всех этих строк первые два символа удалить - какая должна быть формула?

3)Или добавить увеличивающееся число в конце? Например: ..._1, ..._2, ..._3

4)Batch replace только первую строку меняет, остальные выделенные не трогает.

5)Пытаюсь с помощью формулы строки вида "test1111a",  "test1112a", "test1113a" привести к виду "test1a", "test2a", "test3a". Ввожу: Copy(Text, 1, 4) + Copy(Text, 8, 2) или специально по-другому: Copy(!, 4, 1) + Copy(!, Length(!)-1, 2), а результат получаю одинаковый неожиданный, вида "t1111a", "t1112a" и т.д.

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


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

1 hour ago, coincidence said:

Добрый вечер.

1)Где можно посмотреть синтаксис для Smart Edit? 

2)Если у меня есть много разных текстовых строк в редакторе схем и я хочу у всех этих строк первые два символа удалить - какая должна быть формула?

3)Или добавить увеличивающееся число в конце? Например: ..._1, ..._2, ..._3

4)Batch replace только первую строку меняет, остальные выделенные не трогает.

5)Пытаюсь с помощью формулы строки вида "test1111a",  "test1112a", "test1113a" привести к виду "test1a", "test2a", "test3a". Ввожу: Copy(Text, 1, 4) + Copy(Text, 8, 2) или специально по-другому: Copy(!, 4, 1) + Copy(!, Length(!)-1, 2), а результат получаю одинаковый неожиданный, вида "t1111a", "t1112a" и т.д.

Воу! А вот это уже тема. 

1. Ну разве что здесь

https://www.altium.com/documentation/altium-designer/pcb-pnl-pcbinspectorpcb-inspector-ad?version=15.1#!BROSBA

2. Через Copy-Length, в п 5. вы почти все нарисовали.

3. Увеличивающее число с  помощью смартедит вряд ли сделаешь. Нужно использовать SmartPaste

4. должен всё менять. как минимум в №13..17 все работает как надо

5. ошибка в формуле, д.б. Copy(!, 1, 4) + Copy(!, Length(!)-1, 2)

 

 

Моя небольшая шпаргалка:

Quote

Copy(AttributeName, StartIndex, Length)

4 и 5 символ
C2M_P_DP0 -> C2M_DP0_P
C2M_N_DP0 -> C2M_DP0_N
Copy(!, 1, 3) + Copy(!, 6,  Length(!) - 5) + Copy(!, 4, 2)

---------------------------
Переместить символ по строке
1234567890123
FPGA1_PER_P3 -> FPGA1_PER3_P
FPGA1_PER_P16 -> FPGA1_PER16_P
! - исходная строка
Length(!)=12 - длина строки

Скопировать все символы, которые сохраняются, 9
Copy(!,1,9)

Последний символ(ы) определяем с какой позиции брать, а количество символов будет зависеть от длины
Copy(!,12,Length(!) - 11)
Берем с 12 позиции. Автоматом получится: если Х, то 1 символ, если ХХ, то 2 символа

Добавляем остаток
Copy(!,10,2)
с 10 позиции 2 символа (_P)

Copy(!,1,9) + Copy(!,12,Length(!) - 11) + Copy(!,10,2)

--------------------------
1ый символ
P_HB19 -> HB19_P
Copy(!, 3,  Length(!) - 2) + '_' + Copy(!, 1, 1)

 

Если же нужно что-то сложное, то лучше воспользоваться SchList, SchLibList, PCBList.

Получаем таблицу, копируем в ексель, делаем там махинации с делением/умножением и пр, копируем из екселя, вставляем в SchList

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


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

19 hours ago, peshkoff said:

Воу! А вот это уже тема. 

1. Ну разве что здесь

https://www.altium.com/documentation/altium-designer/pcb-pnl-pcbinspectorpcb-inspector-ad?version=15.1#!BROSBA

2. Через Copy-Length, в п 5. вы почти все нарисовали.

3. Увеличивающее число с  помощью смартедит вряд ли сделаешь. Нужно использовать SmartPaste

4. должен всё менять. как минимум в №13..17 все работает как надо

5. ошибка в формуле, д.б. Copy(!, 1, 4) + Copy(!, Length(!)-1, 2)

Видимо, я не понимаю для чего, и как пользоваться бэтч реплейсом. Надеюсь, ссылка прояснит, спасибо.

Да, в формуле умышленно ошибся - результат получался такой же как и в первом варианте. Но я теперь не могу повторить этот вывод. Проглядел что-то ещё, наверное. В любом случае, я ввожу вашу исправленную формулу и получаю: 

test1111a  ->  t1111a1111a

Завтра ещё раз попробую, на свежую голову, может третий какой-то результат получу - забавно будет

Edit

Рапортую:

Copy(!, 1, 4) + Copy(!, Length(!)-1, 2) делает test1111a  ->  t1111a1111a

Copy(!, 1, 4) + Copy(!, 8, 2) делает test1111a  ->  t1111a

Просто Length(!) для исходной строки возвращает 2,286

Какие-то скобки ещё, может нужны?

Изменено пользователем coincidence
дополнил пост

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


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

14 hours ago, coincidence said:

Какие-то скобки ещё, может нужны?

Какая версия альтиума?

Разные версии по разному считают. с 18 версии смартедит прибили, восстановили где-то с 20-ой.

Я поставил ради интереса самую последнюю, 21.0.9 проверяю, моя формула работает вот так:

image.png

сверху входящие, снизу - результат работы Batch.

 

 

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

(для вопрошающих: лучше новые вопросы, даже для начинающих, задавать в новых темах, в этой теме все потонет, не найдем потом)

 

 

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


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

6 hours ago, peshkoff said:

Какая версия альтиума?

Разные версии по разному считают. с 18 версии смартедит прибили, восстановили где-то с 20-ой.

 

17ая версия. Баг что ли

Получается сделать то, что я хочу формулой {111=}, но это сработает только пока эта часть не меняется.

И почему Length не возвращает количество символов - не понятно

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


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

1 hour ago, coincidence said:

17ая версия. Баг что ли

Баг.

В 13 тоже баг. и работает он так: делит цифры на 10 :wacko: 

Если вместо формулы

Copy(!, 1, 4) + Copy(!, Length(!)-1, 2)

написать 

Copy(!, 10, 40) + Copy(!, Length(!)-10, 20)

то все ОК:

image.png.90bc31dbe96892431b8be8dc48b8cbdd.png

:wacko2:

 

и у меня Length(!) исходной строки = 90

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


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

А если я хочу заменить кусок текста, который символ равенства содержит, т.е. хочу воспользоваться формулой {X==Y=} - получается ошибка. Надо знаки равно заэкранировать? Кавычки и \ не работают

Batch replace тоже строки в какую-то ошибку превращает

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


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

8 hours ago, coincidence said:

А если я хочу заменить кусок текста, который символ равенства содержит, т.е. хочу воспользоваться формулой {X==Y=} - получается ошибка. Надо знаки равно заэкранировать? Кавычки и \ не работают

Batch replace тоже строки в какую-то ошибку превращает

вы решили альтиум в нокаут отправить?

Обычно SmartEdit импользуется для правки NetLabel

У меня в NetLabel ни разу не было знака "=". Откуда он может вообще там взяться?

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


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

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

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

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

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

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

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

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

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

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