Jump to content

Как достать часть строки


PetkewichAndrej

Recommended Posts

PetkewichAndrej

    Добрый день, вопрос по PostBuild! Есть переменная $mom_output_file_full_name c помощью которой можно вывести полное имя файла программы, пример(D:\NX_2506\888-2222-11111\100.008\PRO_100_008\CAM_008_CHIST.MPF), как от сюда взять имя каталога куда программа попадает, в данном случае (PRO_100_008) , и потом вывести отдельно в строку этот каталог ??? 

   С помощью этого хочу решить следующую задачу ЧПУ Sinumerik 840d  :

%_N_0200_MPF
;$PATH=/_N_WKS_DIR/_N_999999_WPD
; /Start of Program
;
; /PART NAME   :D:\NX_2506\888-2222-11111\100.008\CAM_008_CHIST.prt
; /DATE TIME   :Thu Nov  6 11:20:11 2025
; /BASE NAME   :CAM_008_CHIST
; /FULL NAME   :D:\NX_2506\888-2222-11111\100.008\PRO_100_008\CAM_008_CHIST.MPF

 

надо что бы вместо 999999 подставлялось PRO_100_008.

или может есть другое какое решение?

 

 

Link to post
Share on other sites


UnPinned posts
KrivoShip

Навскидку:

set a $mom_output_file_full_name

regsub {\\[^\\]*$} $a "" b

regexp {[^\\]*$} $b c

$c - искомое значение, между двумя последними "\".

 

Link to post
Share on other sites
an-kval
1 час назад, KrivoShip сказал:

Навскидку:

set a $mom_output_file_full_name

regsub {\\[^\\]*$} $a "" b

regexp {[^\\]*$} $b c

$c - искомое значение, между двумя последними "\".

 

Могу ошибаться,  не такой ли результат выйдет?

 

set a "\path_1\folder\file.mpf"
regsub {\\[^\\]*$} $a "" b


$b = \path_1\folder

 

regexp {[^\\]*$} $b c


$c = path_1folder

Edited by an-kval
Link to post
Share on other sites
an-kval
8 часов назад, an-kval сказал:

Могу ошибаться,  не такой ли результат выйдет?

Ошибся, проверил в postbuilder, работает. Вывод папки перед названием файла.

Link to post
Share on other sites
Stanislav

 

06.11.2025 в 11:38, PetkewichAndrej сказал:

    Добрый день, вопрос по PostBuild! Есть переменная $mom_output_file_full_name c помощью которой можно вывести полное имя файла программы, пример(D:\NX_2506\888-2222-11111\100.008\PRO_100_008\CAM_008_CHIST.MPF), как от сюда взять имя каталога куда программа попадает, в данном случае (PRO_100_008) , и потом вывести отдельно в строку этот каталог ??? 

   С помощью этого хочу решить следующую задачу ЧПУ Sinumerik 840d  :

%_N_0200_MPF
;$PATH=/_N_WKS_DIR/_N_999999_WPD
; /Start of Program
;
; /PART NAME   :D:\NX_2506\888-2222-11111\100.008\CAM_008_CHIST.prt
; /DATE TIME   :Thu Nov  6 11:20:11 2025
; /BASE NAME   :CAM_008_CHIST
; /FULL NAME   :D:\NX_2506\888-2222-11111\100.008\PRO_100_008\CAM_008_CHIST.MPF

 

надо что бы вместо 999999 подставлялось PRO_100_008.

или может есть другое какое решение?

 

 

 

Такие технические вопросы идеально решает любая нейронка. Вопрос типа напиши процедуру которая на языке TCL получает.....это......из ....этого. Причем с развернутым объяснением что ты даже что нибудь поймешь и сможешь использовать в последующем. 

Link to post
Share on other sites
an-kval

ИИ частенько ошибаются. Например "галюцинируют". Да, несомненно помогают очень неплохо. Но нельзя отбрасывать и самостоятельное изучение материала. 

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
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Сообщения

    • davidovka
      пробовал в конфиг.про добавить search_path *путь до папки с файлом bearing.prt* ?
    • fluooo
    • Когда-нибудь я стану гуру
      Существует библиотечная деталь с таблицей семейств. При использовании определенных исполнений, они теряются в сборке. Крео видит исполнение 1, спокойно его вставляет, а исполнение 2 считает отсутствующем. Сталкивался кто с таким? Деталь с нуля переделывал, заменял в библиотеке, обновлял cfg - не помогло.  (подшипник тут скидывался этот, но я дополнил кол-во размеров и все) 
    • ID_Hacker
      К сожалению у нас критичное место, вертикальные оси гантри. При некоторых неправильных действиях оси расходятся и мотор стоит с высокой нагрузкой, начинает греться. Предыдущий мотор так и сгорел. При этом температура предупреждения и ошибки выставляется стандартная по коду мотора. 150 и 170 градусов, а мотор при этом сгорел даже не дойдя до ошибки по температуре. Максимум достиг 150 градусов, но уже было поздно. В среднем была 130 градусов. В тот раз мотор аварийно перебрали своими силами, статор отправляли на перемотку. Но из за смещения угла полюсов по нему есть проблема с вибрацией и высокочастотным шумом. В итоге мотор заменили на новый, но теперь надо придумать что то с датчиком температуры. Вроде как можно в параметрах P604, P605 задать свои значения температуры, но редактировать я их не могу. Думаю попробовать указать мотор не по коду, а в ручную, может тогда параметры будут редактироваться.   Обновить ПО приводной системы можно, но станок критичный по загрузке, на долго не отдают, времени на эксперименты совсем нет, а я ни разу в синумерике не обновлял отдельно ПО приводов. Нет уверенности что так легко получится. Возможно надо всё ПО синумерика обновлять как минимум до версии 4.5, что может повлечь необходимость настройки измерительных циклов и циклов смены инструмента.   Мы так делали ещё в приводах Simovert Masterdrives когда помирал датчик внутри мотора. В Sinamics S120 так делать нет необходимости, просто пока отключил контроль температуры в параметре P601, сейчас показывает постоянное значение -200 градусов и ошибок не выдаёт.
    • Гиперион
      Как говорится - блажен тот, кто верует. Да, два станка с разницей в серийном номере на одну цифру. И никто из сервисников в трезвом уме и памяти не будет так радикально копаться в логике, тем более зная, что туда ещё приедет технолог. Ну, вы свой опыт озвучили, я свой.
    • andrey2147
      Вероятно что в обычном экране сименса у вас ошибки не появляются т к не прописаны, а в оболочке прописаны. Это не обязательно ДМГ у меня станок  EAGLE (Орёл) там то же оболочка есть.И то же кнопка ISO есть .
    • andrey2147
      Кто то ещё сомневается ?
    • Kelny
      Есть исходный файл? Не обновлённый до последней версии SW2024.   Ну или в SW2024 (там ведь есть поднижение версии на две ступени) сохраните его в SW2022 -  больше пользщователей сможет пощупать ваш странный файл.      
    • РоманВ
      Добрый день, коллеги. Предстоит очень большая сборка, в разы больше той, что до этого едва ворочалась на моем компе. Решил переосмыслить работу с большими сборками и обращаюсь к вам за подсказкой. Какие способы структурирования сборок, работы в SW позволяют не перегружать комп и легко работать с очень большими сборками? Ниже варианты, которые предполагаю.   1. Больше подсборок. Например в нулевую сборку все входящие детали группировать в подсборки (монтажный комплект, трубопроводный комплект и т.д.). Есть ощущение, что 3 сопряжения подсборки перевариваются легче, чем куча сопряжений кучи деталей. 2. Замена обычных сопряжений упрощенными. Например три координаты или три совпадения заменить на фиксацию. Так же слышал версию о привязках подсборок к базовым плоскостям верхней сборки, чтобы не было взаимозависимостей между подсборками. 3. Облегченные конфигурации подсборок. Использовать SpeedPak для облегчения подсборок. Возможно подсборку сохранять как деталь и вставлять в верхнюю сборку, вставив в это же место сборку и скрыв ее. Т.е. визуально будет деталь, а сборка будет скрыта и не будет обсчитываться. Возможно сборку-деталь вставить в саму подсборку как справочный элемент и сделать конфигурацию, где все детали подсборки скрыты, а высвечена только эта же сборка-деталь. 4. Привязка подсборок к справочному 3д эскизу и управление их расположением через один эскиз, а не массу взаимных сопряжений. (про компоновочный эскиз читал, пока не очень понял насколько он облегчит работу в сравнении с обычным эскизом в сборке)   Еще осложняет работу обилие трубопроводов и фитингов-соединителей. Pоутингом не пользуемся, но в планах попробовать. Может как-то можно упростить работу с трубопроводами в части загрузки компа геометрией?
    • jtok
      Уберите кромки с видов: Используйте "Состояния отображения" - например, сделайте несколько их - полная, без крепежа, без чего-нить и т.д. В нужных видах включайте только нужное состояние отображения: Например, у меня весь крепеж вставлен в сборку верхнего уровня. Сборка имеет два состояния отображения "Полная" и "Без крепежа" Если мне нужны общие виды - спереди, сверху там, то я выбираю "Без крепежа", его все равно там не видно. А для узлов - "Полная".   Используйте для разрезов галку "Глубина сечения" - сильно улучшает производительность при работе с чертежами:   Пару запрещенных приемов: Некоторые инженеры, возможно, не все, экспортируют в ACAD и потом разрисовывают чрезвычайно сложные сборки, т.к. в самом солиде именно с чертежами работать невозможно. Некоторые разбивают вид в эскиз и дальше линиями фигачат, отвязываясь от параметрической модели.
×
×
  • Create New...