Перейти к публикации

Вопросы новичка


ForgottenGood

Рекомендованные сообщения

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

Т.е.

N19 G17 G40 G80 G90 G21
T19 M06 (Sfera D20)

 

Это легко осуществить в ПП. 

 

: N_*(presenttool) G00 G17 G40 G49 G80 COORDINATECODE*
: T* M06* OutputString("(" + clstring(498) + ")")

 

А вот если, допустим, первой идет фреза ф20, потом сверло, а потом опять ф20, то вторая метка тоже будет N20.. А хочу сделать чтобы была 120. И если потом в третий раз, то уже N220.

Больше строки N нигде не пишутся.

Вот голову уже сломал как это осуществить.

Есть идеи?

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


В 19.12.2016 в 08:14, Forza сказал:

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

Т.е.

N19 G17 G40 G80 G90 G21
T19 M06 (Sfera D20)

 

Это легко осуществить в ПП. 

 

: N_*(presenttool) G00 G17 G40 G49 G80 COORDINATECODE*
: T* M06* OutputString("(" + clstring(498) + ")")

 

А вот если, допустим, первой идет фреза ф20, потом сверло, а потом опять ф20, то вторая метка тоже будет N20.. А хочу сделать чтобы была 120. И если потом в третий раз, то уже N220.

Больше строки N нигде не пишутся.

Вот голову уже сломал как это осуществить.

Есть идеи?

Можно счётчик дополнительный поставить наверное, что-то вроде

 

: N_*(ToolCounter(PresentTool)*100+presenttool) G00 G17 G40 G49 G80 COORDINATECODE* ToolCounter(PresentTool) = (ToolCounter(PresentTool)+1)
: T* M06* OutputString("(" + clstring(498) + ")")

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

Variable: ToolCounter(1..99) ?

Это же из справки пример.. и нифига он не работает

Ссылка на сообщение
Поделиться на других сайтах
В 23.12.2016 в 21:35, Forza сказал:

Variable: ToolCounter(1..99) ?

Это же из справки пример.. и нифига он не работает

Я из головы брал :)

 

А в чём нерабочесть заключается?

 

Не помню в каком, но в каком-то посте встречалась такая нумерация. Если попадётся между делом - посмотрю.

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

Пока не получилось даже понять как работает. Ну записывает он в счетчик. А как к нему обращаться...

Я видел посты с нумерацией одного кадра перед сменой инструмента. Но там N* равен самому номеру инструмента. С твоим счетчиком пока что не нашел постов. Поищу еще.

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

как прописать в посте что бы описание цикла было без пробелов...

в посте :

EX_DRILLSTART    :N  F*
        :N MCALL_CYCLE81*'('ZFclear*(Zsurface+Fclearance)','Zsurf*(Zsurface)','Clear*(clearance)','HoleDepth*')'
        :N G0* X* Y*
EX_DRILLBODY    :N G0* X* Y*
EX_DRILLCANCEL    :N MCALL     

 

программа получается:

N16 F90.
N17 MCALL CYCLE83 ( 20. , 0 , 1.5 , -22. ,,, 2. , 1. , ,,1,1 )
N18 G0 X0 Y0
N19 G0 X216. Y0
N20 MCALL

 

 


 

 

 

 

Изменено пользователем rachinskiyalek
Ссылка на сообщение
Поделиться на других сайтах
В 22.12.2016 в 09:43, Фолко сказал:

Можно счётчик дополнительный поставить наверное, что-то вроде

 

: N_*(ToolCounter(PresentTool)*100+presenttool) G00 G17 G40 G49 G80 COORDINATECODE* ToolCounter(PresentTool) = (ToolCounter(PresentTool)+1)
: T* M06* OutputString("(" + clstring(498) + ")")

 

1 час назад, Forza сказал:

Пока не получилось даже понять как работает. Ну записывает он в счетчик. А как к нему обращаться...

Я видел посты с нумерацией одного кадра перед сменой инструмента. Но там N* равен самому номеру инструмента. С твоим счетчиком пока что не нашел постов. Поищу еще.

Так в вызове N как раз он и используется, чтобы в сотнях был номер вызова, а в единицах - номер инструмента, а уже потом прибавляет счётчик. Т.е. для 2-го инструмента получится при очерёдности вызовов N2, N102, N202... 

Только сначала стоит весь массив обнулить  где-нибудь в начале на всякий случай.

 

 

 

 

 

1 час назад, rachinskiyalek сказал:

как прописать в посте что бы описание цикла было без пробелов...

в посте :

EX_DRILLSTART    :N  F*
        :N MCALL_CYCLE81*'('ZFclear*(Zsurface+Fclearance)','Zsurf*(Zsurface)','Clear*(clearance)','HoleDepth*')'
        :N G0* X* Y*
EX_DRILLBODY    :N G0* X* Y*
EX_DRILLCANCEL    :N MCALL     

 

программа получается:

N16 F90.
N17 MCALL CYCLE83 ( 20. , 0 , 1.5 , -22. ,,, 2. , 1. , ,,1,1 )
N18 G0 X0 Y0
N19 G0 X216. Y0
N20 MCALL

 

По идее что-то вроде 

        :N OUTPUTFORMATCODE(2) MCALL_CYCLE81*'('ZFclear*(Zsurface+Fclearance)','Zsurf*(Zsurface)','Clear*(clearance)','HoleDepth*')' OUTPUTFORMATCODE(0) 

должно помочь.

Изменено пользователем Фолко
Ссылка на сообщение
Поделиться на других сайтах

@rachinskiyalek

: RemoveSpacesOn
: N " R60=1730-610+" ParamVal*(nextclfile(1561))
: RemoveSpacesOff

Можешь прямо тут забить

***************   System Variables  ********************

PostName             : mill.asc
MachineTolerance     : 0.001
MaxCircleRadius      : 9999
MaxNCode             : 9999
NCodeDefault         : 10
NCodeIncrement       : 5 
ProgramNumberDefault : 1000
RemoveSpaces         : 1

Тогда вообще пробелов не будет.

 

@Фолко

Похоже ты не так понял.

Вот, допустим, список операций. Используется инструмент по порядку:  Т2, Т4, Т2, Т4, Т5

По твоему варианту будет:

N102 T2

N104 T4

N102 T2

N104 T4

N105 T5

 

А надо:

N102 T2

N104 T4

N202 T2

N204 T4

N105 T5

 

Т.е. где-то проверку еще надо в othertoolchange и lasttoolchange, если инструмент уже был, то его предыдущий N + 100.

Изменено пользователем Forza
Ссылка на сообщение
Поделиться на других сайтах

Как то так

EX_TOOLDEFINITION2  : ToolCount=(ToolCount+1)
                    : ToolID(ToolCount)=(nextclfile(101))
                    : if (toolid(nextclfile(101))=(toolid(presenttool))) N_*(nextclfile(101)+100) else N_*(nextclfile(101)) endif "(" T* "- clstring(498))"

Только это не правильно. Я не знаю как сделать поиск по всем ToolID. Т.е. если в ToolID(0..99) есть уже такой presenttool, то выводить N+100.

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, Forza сказал:

@rachinskiyalek


: RemoveSpacesOn
: N " R60=1730-610+" ParamVal*(nextclfile(1561))
: RemoveSpacesOff

Можешь прямо тут забить


***************   System Variables  ********************

PostName             : mill.asc
MachineTolerance     : 0.001
MaxCircleRadius      : 9999
MaxNCode             : 9999
NCodeDefault         : 10
NCodeIncrement       : 5 
ProgramNumberDefault : 1000
RemoveSpaces         : 1

Тогда вообще пробелов не будет.

 

@Фолко

Похоже ты не так понял.

Вот, допустим, список операций. Используется инструмент по порядку:  Т2, Т4, Т2, Т4, Т5

По твоему варианту будет:

N102 T2

N104 T4

N102 T2

N104 T4

N105 T5

 

А надо:

N102 T2

N104 T4

N202 T2

N204 T4

N105 T5

 

Т.е. где-то проверку еще надо в othertoolchange и lasttoolchange, если инструмент уже был, то его предыдущий N + 100.

Почему так-то? Я же каждый раз после применения счётчик увеличиваю (в конце строки), т.е. первый раз на 100 умножается "0", потом"1", потом "2" и т.д.

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

Да. Ну туда же в ToolCounter записываются эти значения.

Например получается

ToolCounter(1)=2

ToolCounter(2)=4

ToolCounter(3)=2

ToolCounter(4)=4

ToolCounter(5)=5

 

Как то так должно, мне кажется, быть:

 

VARIABLE             : toolid(0..99) toolcount

 

EX_SETUP          :  ToolCount=(0)

 

EX_TOOLDEFINITION2  :     ToolCount=(ToolCount+1)
                    :     if (toolid(0..99)=toolid(presenttool)) \\  
(Что то не ищет во всех Arrays)
                            N_*(nextclfile(101)+100) \\
                        else \\
                            N_*(nextclfile(101)) \\
                        endif \\
                        ToolID(ToolCount)=(nextclfile(101)) \\
                        "(" T* "- clstring(498))" 

 

А пост сразу выдает

 

 4 Hard EX_TOOLDEFINITION2             
      1:toolcount={1}(toolcount+1)
      2:IF( {True}(toolid=toolid) )
      2:toolid[{1}"toolcount"]={6}NEXTCLFILE(101)
                                          N106 ( T6 - FREZA D20 SMP)

 

И не пишет какие значения получились при True. Просто (toolid=toolid). Хотя в ToolID еще никаких записей нету. И не может быть True

 

Изменено пользователем Forza
Ссылка на сообщение
Поделиться на других сайтах

Как-то сложно...

У меня номер массива - это номер инструмента.

Сейчас специально для проверки сделал.

 

VARIABLE : ToolCounter(1..99) Counter

-----

DEFINE ToolChange
---

    : N_*(ToolCounter(PresentTool)*100+presenttool) T*(100*presenttool+lengthcompensation)  "(" "clstring(498)" ")" 
    : ToolCounter(PresentTool)=(ToolCounter(PresentTool)+1)  ## если одной строкой, то сначала прибавляет, а потом выводит

---

EX_STARTCODE        : % 
                    : Counter=(1)
                    : While (Counter < 100)
                    :    ToolCounter(Counter)=(1)
                    :    Counter=(Counter+1)
                    : EndWhile

 

Всё работает.

Изменено пользователем Фолко
Ссылка на сообщение
Поделиться на других сайтах

У тебя они просто по порядку идут

N101 T1 ( FREZA D80 SMP )
N201 T4 ( FREZA D50 SMP )
N301 T1 ( FREZA D80 SMP )
N401 T4 ( FREZA D50 SMP )
N501 T6 ( FREZA D20 SMP )
N601 T18 ( FASOCHNAYA )
N701 T4 ( FREZA D50 SMP )
N801 T4 ( FREZA D50 SMP )

 

Должно быть

N101 T1 ( FREZA D80 SMP )
N104 T4 ( FREZA D50 SMP )
N201 T1 ( FREZA D80 SMP )
N204 T4 ( FREZA D50 SMP )
N106 T6 ( FREZA D20 SMP )
N118 T18 ( FASOCHNAYA )
N304 T4 ( FREZA D50 SMP )
N404 T4 ( FREZA D50 SMP )

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

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

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

Аааа. Сорь..  в EX_TOOLDEFINITION2 это почему то не работает

Хотел сделать чтобы вместе с операциями и N метки тоже выводились для операторов.

А так работает. супер!

Изменено пользователем Forza
Ссылка на сообщение
Поделиться на других сайтах

А расскажи пожалуйста как это работает. И зачем в  EX_STARTCODE досчитывает до 100? 

Можно еще сделать, чтобы в первый раз к инструменту 100 не прибавлялось, а только после повторного вызова?

Изменено пользователем Forza
Ссылка на сообщение
Поделиться на других сайтах

Как сюда добавить воздух? Как в посте добавить я знаю. А вот чтоб в менюшке был. Чтобы не использовать тот же Поток например для воздуха.

 Безымянный.png

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, Forza сказал:

А расскажи пожалуйста как это работает. И зачем в  EX_STARTCODE досчитывает до 100? 

Можно еще сделать, чтобы в первый раз к инструменту 100 не прибавлялось, а только после повторного вызова?

Я для всех инструментов обнуляю счётчики, точнее ставлю единицу.

Если надо, чтобы первый раз был не N101, а N1, то надо в EX_STARTCODE присваивать не "1", а "0". Но тогда могут получиться проблемы с одинаковыми номерами N в циклах и вызовах инструмента.

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Фолко сказал:

Я для всех инструментов обнуляю счётчики, точнее ставлю единицу.

Если надо, чтобы первый раз был не N101, а N1, то надо в EX_STARTCODE присваивать не "1", а "0". Но тогда могут получиться проблемы с одинаковыми номерами N в циклах и вызовах инструмента.

Дошло как работает.

Запилил то же что в EX_STARTCODE в EX_MAINSTART чтобы после тулдефинитион2 обнуляло и добавил в EX_TOOLDEFINITION2 это же.

: N_*(ToolCounter(nextclfile(101))*100+presenttool) T*(nextclfile(101))  "(" "clstring(498)" ")" 
: ToolCounter(nextclfile(101))=(ToolCounter(nextclfile(101))+1) 

 

Работает 

 

N101 T1 ( FREZA D80 SMP )
N104 T4 ( FREZA D50 SMP )
N204 T4 ( FREZA D50 SMP )
N106 T6 ( FREZA D20 SMP )
N201 T1 ( FREZA D80 SMP )
N118 T18 ( FASOCHNAYA )
N304 T4 ( FREZA D50 SMP )
N404 T4 ( FREZA D50 SMP )
N102 T2 ( SFERA D25 )
N202 T2 ( SFERA D25 )

Изменено пользователем Forza
Ссылка на сообщение
Поделиться на других сайтах

Только там проблема опять))

Вот список инструмента и операции

Снимок.JPG

 

EX_TOOLDEFINITION2     - выводит для каждой операции

выводит 

N101 T1 ( FREZA D80 SMP )
N104 T4 ( FREZA D50 SMP )
N204 T4 ( FREZA D50 SMP )
N106 T6 ( FREZA D20 SMP )
N201 T1 ( FREZA D80 SMP )
N118 T18 ( FASOCHNAYA )
N304 T4 ( FREZA D50 SMP )
N404 T4 ( FREZA D50 SMP )
N102 T2 ( SFERA D25 )
N202 T2 ( SFERA D25 )

 

EX_TOOLDEFINITION     - выводит для каждого инструмента

выводит

N101 T1 ( FREZA D80 SMP )
N104 T4 ( FREZA D50 SMP )
N106 T6 ( FREZA D20 SMP )
N118 T18 ( FASOCHNAYA )
N102 T2 ( SFERA D25 )

 

а надо

N101 T1 ( FREZA D80 SMP )
N104 T4 ( FREZA D50 SMP )

N201 T1 ( FREZA D80 SMP )
N106 T6 ( FREZA D20 SMP )
N118 T18 ( FASOCHNAYA )

N204 T4 ( FREZA D50 SMP )
N102 T2 ( SFERA D25 )

 

Короч не то и не другое ) есть еще EX_CYCLEDEFINITION, но он работает как тулдефинитион2

0 вместо 1, кстати нельзя поставить. Пишет Variable ToolCounter[0] out of range прямо в УП

 

Изменено пользователем Forza
Ссылка на сообщение
Поделиться на других сайтах

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

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

Гость
Ответить в тему...

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

  Разрешено не более 75 эмодзи.

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

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

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

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




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