Задачка на чпу на средний ум
Сама задача поставлена товарищем @Amir88, вот тут: Уважаемые просветленные! Помогите решить задачку. Про себя же скажу что я ниразу не чпушник, хотя человек сочувствующий металообработке. За свою жизнь на станках я сделал 0грамм стружки, хотя и пытался устроится учеником, но это отдельная веселая история "как айтишник обосрался в цехе на второй день и вернулся обратно в богомерзкое айте", может как-нибудь и расскажу. =)
Еще раз, ребята - я не чпушник ни разу. Я простоял рядом со стойкой ровно 20 часов в своей жизни, и то рядом. Поэтому вот вообще не факт что все что ниже верно. Но сколько и как-бы я не перемерял - всё вполне совпало почти до микрона (третий знак после запятой). Но я это списываю на разный подход к округлению в кореле и в моей версии cimco. (8.01.19)
Исходная задача в размерах.
Ну и вот. Такая задачка с подвохом. Бегло углубившись в синтаксис синумерика было решено заходить в контур параллелограмма из середины стороны от центра. Во-первых чтоб потом от этого-же центра на детали, плясать следующими контурами (там еще на чертеже габаритный квадрат). Во-вторых это обусловлено работой параметра RND в синумерике (как я понял) - т.е. в этой же плоскости должен лежать последующий отрезок что и предыдущий, и только тогда RND срабатывает как положено.
Дальше я предлагаю перейти в полярные координаты и начать плясать от центра О в середину стороны. Координаты считаются против часовой стрелки, направление "0" совпадает с осью X. Следовательно загибаемся в четвертый квадрант 270 и прибавляю 37. Но на какой расстояние? На половину стороны якобы 65мм а как ее найти точно? подумал я. Явно косинус. Какого угла? угла 23 градуса!
Вот этот косинус надо найти. 60-37=23
То есть гипотенуза будет в косинус23 раз длиннее чем катет в 65мм. Если выразить пошире То вот такая будет длина : 65\cos(60-37). Двигаюсь от центра на половинку этой стороны то есть на (65\cos(60-37))/2. Не забыть бы. Т.е. вся фигура будет в пять ходов из-за начала с середины из-за RND. Подкатываюсь и опускаюсь вот так:
G16
g01 X+65/cos(60-37)/2 Y270+37
g01 Z0 F100
Ну собственно и весь секрет раскрыт. Дальше поехал мало того что в относительных координатах G91, но еще и в полярных G16. И еду против часовой снова на половинку, но уже стороны якобы 74мм. Угол в первом квадранте угол 60 градусов. Точная длина опять в cos(60-37)раз длиннее чем катет 74мм по всей видимости это то самое свойство параллельных прямых. А так как ехать на половинку делю еще попалам. (74\cos(60-37))/2. Вот Заехал в уголок. Про скругления пока не буду, не до них. Вот как то так:
G16
G91
g01 X+74/cos(60-37)/2 Y60
Ну а дальше дело техники. Внимательно следим за углами в каких они квадрантах, и какой нужный в каждом случае. В конце опять еду замыкающей половинкой и доезжаю до исходной точки. Примерно так:
g01 X+65/cos(60-37) Y90+37
g01 X+74/cos(60-37) Y180+60
g01 X+65/cos(60-37) Y270+37
g01 X+74/cos(60-37)/2 Y0+60
G15
g01 X0 Y0 Z100
Последней строкой выключил полярные, потом поднялся, потом отрубаю относительные чтоб вернуться по нулям:
G90
g01 x0 y0 z100
Ну и все. Повис обратно над центром параллелограмма, можно поехать сделать квадрат вокруг или чего еще там наворотить, если надо будет, уже не суть (тут думаю ничего интересного):
g01 X-125/2 Y-126/2 Z100 F100
g01 Z0
G91
g01 X+125 Y0
g01 X0 Y+126
g01 X-125 Y0
g01 X0 Y-126
G90
g01 z100
g01 x0 y0
M02
Вуаля. В целом все готово. Но я специально расписывал что откуда берется. Теперь можно пихнуть вместо всех цифр переменные. К углам параллелограмма присовокупить RND и ему тоже заодно пихнуть пользовательскую переменную. В синумерике они через R. Как на фануке я не знаю, не пробовал, и вообще не уверен что там есть такая штука как фаска\закругление. Может и есть. Но мне по условию задачи стоит синумерик. Итак, вот конечный листинг какой у меня получился:
R1=6 ;RADIUS VERSHINI
R2=74 ;RAZMER A
R3=65 ;RAZMER B
R4=60 ;UGOL Alpha
R5=37 ;UGOL Beta
R6=R3/cos(R4-R5) ;Magia!
R7=R2/cos(R4-R5) ;Magia!
R20=125 ;razmer kontur po X
R21=126 ;razmer kontur po Y
;(===============================)
;(zahod ot centra)
;(===============================)
G01 X0 Y0 Z100 F100
G16
g01 X+R6/2 Y270+R5
g01 Z0 F100
;(===============================)
;(paralellogramm)
;(===============================)
G16
G91
g01 X+R7/2 Y0+R4 RND=R1
g01 X+R6 Y90+R5 RND=R1
g01 X+R7 Y180+R4 RND=R1
g01 X+R6 Y270+R5 RND=R1
g01 X+R7/2 Y0+R4 RND=0
G15
g01 X0 Y0 Z100
G90
g01 x0 y0 z100
;(===============================)
;(pramougolnik-kontur)
;(===============================)
g01 X-R20/2 Y-r21/2 Z100 F100
g01 Z0
G91
g01 X+R20 Y0
g01 X0 Y+R21
g01 X-R20 Y0
g01 X0 Y-R21
G90
g01 z100
g01 x0 y0
M02
Если в чертеже размеры обозвать: 74мм как "размер А", 65мм как "размер Б", Альфа=60, Бета=37. В R1 я запихал радиус скругления. R6 и R7 - самые интересные. Это предварительный расчет реальной длины сторон фигуры. Ну и оставил места в именовании переменных, если скругления надо будет сделать вдруг разные на разных углах, поэтому квадрат задается через R20 и R21. Ну и приписал RND на каждый уголок.
Как я не проверял (может я где не доглядел, я не знаю, я не настоящий чпушник я маску на стройке нашел), все сходится:
Разлет на микрон, полагаю что это корел мозг колупает. Он так иногда делает.
Еще на микрон.
А вот тут хорошо. И в остальных размерах, поверьте - тоже попадаю.
В целом как-то так. Тащите помидоры и тапки. Еще один из критериев проверки (видимо задающий задачу специально задал 126мм) что верхний и нижний уголки попадают четко на контур. Видимо им так быстрее было проверять - попал молодец, а нет дак сразу иди нафиг. Так что вот. Как и обещал в письме @Amir88 - решил в общем виде. Играясь с параметрами можно любые паралелограмы теперь пилить. Утрамбовать все это добро в цикл заглубления я думаю не составит труда. На крайний случай почитать посты @Enot11rus
Настройки для симки применял вот такие:
С уважением!
M02