Jump to content
afigor

Программирование с переменными

Recommended Posts



lexa345
В 30.11.2019 в 17:17, nomed сказал:

а кто подскажет макрос на фрезерование любой конусной резьбы?)

Для резьбы нужно немного дописать под свои нужды.

Конус  

5231463545.png.a62507f3282ee9d40ba6476cec1d8579.png

Hide  
Макро  
%
o1
#20=5(Rt)
#21=30(D)
#22=-10(Z)
#23=40(Angle)
#24=1(step Z)
#25=0.3(step CIRC)
#33=-1(G2-1 G3+1)
(****************)
G90 G0 Z0
#11=#5041
#12=#5042
#13=#5043
#26=ROUND[3.142*#21/#25](N)
#27=#21/2-#20
#31=#27
#28=0
#29=#24*TAN[#23]
#30=#29/#26
#32=360/#26
N1
#1=#11+#27*COS[#28]
#2=#12+#27*SIN[#28]
#3=#13+[#27-#31]/TAN[#23]
IF [#3 LT #22] GOTO2
G1 X#1 Y#2 Z#3
#27=#27-#30
#28=#28+#32*#33(G2 or G3)
IF [ABS[#28] GE 360] THEN #28=0
IF [#27 LE 0.1] GOTO3
GOTO1
N2
X#1 Y#2
G2 I[#11-#1] J[#12-#2]
N3
G0 Z[#13+5]
X#11 Y#12
M99
%

 

Hide  

 

  • Нравится 1

Share this post


Link to post
Share on other sites
nomed
16 минут назад, lexa345 сказал:

Для резьбы нужно немного дописать под свои нужды.

спасибо, сгодится )

Share this post


Link to post
Share on other sites
A_1

Одна из задач курса параметрического программирования станков с системой управления FANUC:

 

В #1 находится положительное целое число. Напишите программу, которая вычислит сумму всех целых чисел от 1 до этого числа включительно и результат сохранит в #2

Например: #1=3. Программа должна рассчитать и записать в #2 число 6 (6 = 1 + 2 + 3).

Share this post


Link to post
Share on other sites
Viktor2004
3 часа назад, A_1 сказал:

Программа должна рассчитать и записать

#include <iostream>
using namespace std;

int main()
{
    int a;
    int b=0;

    cout << "Введите число\t";
    cin  >> a;

    while (0 < a)
        {
            b = a + b;
            a = a - 1;
        }
    cout << b << "\n";

    return 0;
}

 

  • Нравится 2

Share this post


Link to post
Share on other sites
VODKABALALAIKALAPTI
2 часа назад, Viktor2004 сказал:

#include <iostream>
using namespace std;

int main()
{
    int a;
    int b=0;

    cout << "Введите число\t";
    cin  >> a;

    while (0 < a)
        {
            b = a + b;
            a = a - 1;
        }
    cout << b << "\n";

    return 0;
}

 

Наврятли фанук такое скушает 

Share this post


Link to post
Share on other sites
NSerg
В 25.02.2020 в 18:56, A_1 сказал:

Одна из задач курса параметрического программирования станков с системой управления FANUC:

 

В #1 находится положительное целое число. Напишите программу, которая вычислит сумму всех целых чисел от 1 до этого числа включительно и результат сохранит в #2

Например: #1=3. Программа должна рассчитать и записать в #2 число 6 (6 = 1 + 2 + 3).

O0001
#1=3
#2=[#1*[#1+1]/2]
M30

  • Нравится 3

Share this post


Link to post
Share on other sites
fantom.ul

Я то прикидывал, как в цикле такое организовать...

А тут так изящно! И что, в любых случаях работает? Даже для отрицательных?

Просто сейчас единственный комп под рукой - телефон. А мне влом по экрану тыкать...

Share this post


Link to post
Share on other sites
A_1
1 час назад, fantom.ul сказал:

И что, в любых случаях работает? Даже для отрицательных?

"В #1 находится положительное целое число"

Share this post


Link to post
Share on other sites
fantom.ul

Ой!

Пардон, невнимателен был.

Но задача какая то академическая. Как применить эту формулу в реальных условиях - не представляю. Хотя... Знания лишними не бывают.

  • Нравится 1

Share this post


Link to post
Share on other sites
A_1

Здравствуйте. Буду признателен за ответы на эту задачу. Они нужны для тестирования системы проверки ответов. Можно применять логические операторы AND, OR, можно - без них. Это одна из задач курса параметрического программирования станков с системой FANUC.

https://stepik.org/59162

 

Пусть в #1 и #2 хранятся значения длины и ширины основания прямоугольного параллелепипеда, а в #3 - его высота. Напишите программу, в результате выполнения которой #10 будет присвоено значение 1, если этот параллелепипед можно переложить на другую грань, так чтобы его устойчивость повысилась, и 0, если так переложить его невозможно.

47929370-5842-400b-b79b-0b2f197cdc2f

 

Share this post


Link to post
Share on other sites
Viktor2004

Удалено

Edited by Viktor2004
  • Нравится 1

Share this post


Link to post
Share on other sites
VODKABALALAIKALAPTI

Добрый день! Помогите разобраться с макровызовом подпрограммы. Идея была такова чтобы фрезерный центр  со стойкой FANUC 0i-MD, сверлил технологическое отверстие в заготовке, сразу со смещением под паз и потом по этим же координатам которые указываешь после G65P2221 делал фрезой пазик. На деле выходит что отверстия он сверлит четко, а дальше меняет инструмент на фрезу выходит на первое отверстие делает его, а остальные которые указаны после G65P2221 игнорирует. Запустил на стойке программы которые брал с этой темы ну там растачивание кармана и так далее, где есть несколько координат после макровызова он их так же игнорирует и делает только первую координату. В чем может быть проблема?

O2221 O2222

Share this post


Link to post
Share on other sites
NSerg

B.pdf

Надо вместо простого вызова, сделать модальный

Edited by NSerg
  • Нравится 2

Share this post


Link to post
Share on other sites
aiden57

Всем привет. Стойка Fanuc 32i model B (Обрабатывающий центр). На стойке есть функция исправления (ремонта?) резьбы. Там ориентирутся шпиндель, затем резец заводится, в ручную, во впадину резьбы и выполняется синхронизация, чтобы попадать в шаг. Может кто знает какие переменные за это отвечают. Хочу составить программку, для такой синхронизации, чтобы можно было выставить положение (ориентацию? попадание в шаг?), для последующей работы по программе...

Share this post


Link to post
Share on other sites
zvod7

Добавлю для коллекции свой рабочий макро для фрезерования отверстия -

(несколько проходов с припуском по диаметру, врезания дугой)

см. скин станет ясно

N21(FREZ OTV S PRIPUSKOM PO DIA);
N21(============================);
N21#1=50(DIA CHIST OTV);
N21#2=16(DIA FREZY);
N21#3=4(K-ST PROHODOV);
N21#4=2(PRIPUSK NA RAD);
N21(============================);
N21#1=#1-#4*#3*2(DIA CHORNO1 OTV);
N21G01Z+1.000F1000;
N21G01Z-12M8(GLUBINA);

N21(KOD REZANIJA)
N21(============================);
N25WHILE[#3GE0]DO1;
N21G91G01G41D07X[#1*0.15/2]Y-[#1*0.75/2]F2000;
N21G03X[#1*0.85/2]Y[#1*0.75/2]R[#1*0.765/2]F250;
N21G03X0Y0I-[#1/2]J0F600;
N21G03X-[#1*0.85/2]Y[#1*0.75/2]R[#1*0.765/2]F1000;
N21G91G01G40X-[#1*0.15/2]Y-[#1*0.75/2]F2000;
N21#3=#3-1;
N21#1=#1+#4*2;
N21END1;
N21M09;
N21G0G90Z50;

 

Bezymiannyi_500.jpgi.gif

  • Нравится 2

Share this post


Link to post
Share on other sites
Зеленый Человек

Здравствуйте. Очень хотелось бы почитать книгу по Macro B на русском языке.( с переводом). У кого нибуть есть? 

CNC Programming Using Fanuc Custom Macro B" (S. K. Sinha) Очень хотелосьвот эту книгу прочесть.

Share this post


Link to post
Share on other sites
aiden57
56 минут назад, Зеленый Человек сказал:

Здравствуйте. Очень хотелось бы почитать книгу по Macro B на русском языке.( с переводом). У кого нибуть есть? 

CNC Programming Using Fanuc Custom Macro B" (S. K. Sinha) Очень хотелосьвот эту книгу прочесть.

Именно этой нету, но есть такая:

https://cloud.mail.ru/public/GSP1/8rkF9Pz51

Со страницы 434

Share this post


Link to post
Share on other sites
Зеленый Человек

Macro Compiler/Macro Executor
PROGRAMMING MANUAL
B--61803E--1 Или вот такой мануал на русском есть у кого нибудь?

Share this post


Link to post
Share on other sites
Viktor2004
43 минуты назад, Зеленый Человек сказал:

Macro Compiler/Macro Executor
PROGRAMMING MANUAL
B--61803E--1 Или вот такой мануал на русском есть у кого нибудь?

Не переводилось никем.

Данный документ нужен только производителям станков

Тот способ программирования у оператора станка работать не будет

 

Edited by Viktor2004

Share this post


Link to post
Share on other sites
Зеленый Человек
8 часов назад, Viktor2004 сказал:

Не переводилось никем.

Данный документ нужен только производителям станков

Тот способ программирования у оператора станка работать не будет

 

Спасибо большое.

Share this post


Link to post
Share on other sites
Perfecthus
В 05.06.2019 в 17:51, Dron123 сказал:

Можно еще сократить, после END1 проход не писать, в этом примере сделано для лентяев, кому не охота пересчет по Z делать, в данном случае программа в любом случае сделает Z-302 даже, если шаг будет 1,234 или 0,777. Можно написать #1=100 и #2=0 и также программа отработает от Z100 до Z0.

Уберем проход после END1 в WHILE вместо GT поставим GE (сделаем пересчёт) 302-216=86/4=21,5 не доделает до Z-302. Хорошо найдём 302-214=22/4=22 вот четное число проходов, значит #1=-214 шаг 4, или #1=-218 (при шаге 2: #1=-214, 216, 218 и т.д., при шаге 3: #1=-218, 215).

Для чего все эти пересчёты? Всё гораздо проще, пример:

% O8888
 
(MILLING) 
N010 T01 M6 (MILL D50 Z=5 r=0.8)
N020 G54 G0 G90 X-41.738 Y-125.228 S1000 M3 
N030 G43 G0 Z25. H01
N040 #101=-216. (START OF AXIS Z)
N050 #102=-302. (END OF AXIS Z)
N060 #103=5.    (STEP OF AXIS Z) 
 
N070 WHILE [#101 GT #102]DO1
N080 #101=#101-#103
N090 IF [#101 LT #102] THEN #101=#102
N100 G0 X-41.738 Y-125.228
N110 Z#101
N120 G1 G41 D1 X-67.034 Y-201.123 F40.
N130 G3 X-201.123 Y-67.034 R-212. F100.
N140 G1 G40 X-125.228 Y-41.738 F500.
N150 END1 
 
N160 G0 Z25. 
N170 M9 
N180 M5 
N190 G0 G53 Z0.
N200 G0 G53 Y0.
N210 M30
%

При любом шаге, последний проход будет равен -302

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

  • Нравится 2

Share this post


Link to post
Share on other sites
Ander

Красиво. У меня в 3 строки, и всё из за лени........ Теперь буду использовать вхиле....

Share this post


Link to post
Share on other sites
Perfecthus
12 часов назад, Ander сказал:

Красиво. У меня в 3 строки, и всё из за лени...

В какие три строки? Покажи примерчик?

12 часов назад, Ander сказал:

Теперь буду использовать вхиле...

Так и надо использовать, с ним такие вещи можно делать!... Плюс вложенные циклы и условия в них...:good:

Share this post


Link to post
Share on other sites
Ander

N5 E_HEAD(272113663,-400.,-180.,-110.,400.,180.,0.,71,17,1.,100.,0,1,7,0,1);*RO*
N10 E_TS("galva25quadro","",1,2000.,1,0.,0);*RO*
N15 MARK3:;#SM;*RO*
N20 r1=-0 ;nach-Z
N25 r2=0.4 ;shag po Z
N30 r3=-56 ;konech-Z
N35 r41=1000
N40 r42=4000
N45 offn=-0.15
N50 g0g64x415y0
N55 z=r1
N60 MARK1:;#SM;*RO*
N65 g1x415y0f=r41
N70 z=r1
N75 g41x415y14
N80 x365y14
N85 g3x365y-14i0j-14f=r42
N90 g1x415y-14f=r41
N95 g40x415y0
N100 if r1==r3 goto MARK2     |   IF [#101 LT #102] THEN #101=#102
N105 r1=r1-r2                              | 
N110 if r1>r3 goto MARK1        | даже больше, чем 3 ))))
N115 r1=r3                                   |
N120 goto MARK1                      | 
N125 MARK2:;#SM;*RO*
N130 g0z180
N135 MARK4:;#SM;*RO*
N140 ROT Z180. ;#SM;*RO*
N145 REPEAT MARK3 MARK4;#SM;*RO*
N150 g0z180m86m26m5
N155 g53y646m130
E_END(0,1,5);*RO*
M30 ;#SM;*RO*

Share this post


Link to post
Share on other sites
Ander

принципы одинаковые

  • Нравится 1

Share this post


Link to post
Share on other sites
Perfecthus
9 часов назад, Ander сказал:

принципы одинаковые

Согласен :)

Share this post


Link to post
Share on other sites
zvod7

Еще один рабочий макро, спирального фрезерования

56152Bezymiannyi_500.jpgi.gif

 

N27(SPIRALNOE FREZER – BORE MILLING);
N27(============================);
N27#2=25(DIA MILLING);
N27#3=0.3(SHAG OBRABOTKY);
N27#4=12(GLUBINA);
N27#4=#4+1(ZAPAS NA VREZ);
N27(============================);
N27#2=#2/2(RAD FREZ);
N27#1=0;(SCHETCHIK);
N27#5=FIX[#4/#3](K-ST PROHODOV);
N27#6=#4-#3*#5(OSTATOK);
N141G01Z1F1500;
N27(============================);
N143G91G01G41D07X#2Y0F600;
N147WHILE[#1LT#5]DO1;
N149G03X0Y0Z-#3I-#2J0;
N151#1=#1+1;
N153END1;
N152IF[#6QE0] GOTO156(NLOOP);
N154G03X0Y0Z-#6I-#2J0;
N156G03X0Y0I-#2J0;
N157G01G40X-#2Y0;
N161G00G90Z50;

 

Share this post


Link to post
Share on other sites
A_1

Здравствуйте. Станок DUGARD EAGLE 32 с системой управления SYNTEC (в программировании очень похожа на FANUC). Не работает с переменными.

Команды, например, #1=50-5*2 выполняет, но если добавить квадратные скобки, то появляется ошибка "absent end of statement character '" (отсутствие символа конца оператора).

Конструкция IF, математические функции (так как тоже требуют, наверно, квадратные скобки) также не работают.

В инструкции есть лишь упоминание символов "#", "[", "]" и других.

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

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • lexx174
      скрыть от пользователей, чтобы не делали того что не положено
    • SilaMusli
      Ну тогда как я узнал, где таки в СВ определение эскиза можно поменять?) Правда всё как всегда через...кухню))) Хотя СВ...ну зачем ты так? Ведь достаточно:  
    • Ветерок
      Жигули тоже продаются лучше всех и будут продаваться. И Газели.
    • kenny
      solidworks не позволяет просто и интуитивно выставить систему координат базового эскиза...да и вообще любого эскиза. в отличие от НХ. п.с. вы вообще в НХ работали когда-нибудь сами?=) понимаете вообще о чем речь?
    • vasillevich68
      ??? ваше утверждение сродни вот этому утверждению а вместе они, сродни утверждению, что блондинки красивее брюнеток.   Если она такая продаваемая, откуда почва для созревания, этой темы, и ей подобной.   1. А вот интересно, покупающие лицензию ежегодно, учитываются каждый год как новый покупатель??? 2. Это как???  3. Тут пишут, что в стоимость входит полная техническая поддержка, это они имеют ввиду Леона с его макросами???
    • GalielO
      Вам об этом и говорят:    
    • Горыныч
      Уменьшить можно, избавится вряд ли. Есть пластины отрезные скошенные на один угол, их попробуйте.
    • Hitchok
      Вы меня извините, я не токарь. Купили ЧПУ токарный и приходится временно заменять оператора. Проблема следующая: Отрезное лезвие TGFH-32-3 и пластина 4 мм. Всегда обламывает детальку при отрезке и на ней остается "облой". Игрался подачей и оборотами - тоже самое. Резец ставил и по центру и чуть ниже центра - тоже самое. Как можно избавится от этого? или хотя бы уменьшить "облой" в диаметре.
    • GalielO
      Бред не пишите. Нужно чтоб села батарейка и отключили питание, а так как станок старый, то батарейка там точно села. Он там уже обнулился, после отключения питания. На дискете должны быть : Machine data
    • kenny
      вам было бы неплохо поработать в NX по-нормальному, на очень больших проектах, тогда бы и прониклись системой координат эскиза =) например, когда проектируется самолет целиком, то координаты крайне важны. и большая часть узлов и деталей начинает разрабатываться по координатам, опорным плоскостям и поверхностям. рисовать относительно нуля, который нравится лично вам, никто не даст. именно от этого офигевал этот товарищ. в солиде будет немного сложнее придерживаться принципа проектирования "сверху-вниз" + когда все координаты как деталей, так и сборок будут зафиксированы относительно базовой системы координат всего проекта.
×
×
  • Create New...