Translate

воскресенье, 3 марта 2013 г.

Как построить CSE-модель станка в NX8.5

Попробую "законспектировать" здесь процесс создания CSE-модели станка для симуляции обработки в NX8.5. Нормального руководства пользователя по этому предмету нет, поэтому этот материал будет полезен многим. 
MAZAK Versatech V-100N
Конспект буду вести на примере модели станка MAZAK VERSATECH V-100N, не так давно для этого станка делали TCL-постпроцессор NX. Несколько слов о самом станке: при наличии 5-осевой головы это классический 3+2 станок, с индексной головой, на котором невозможна непрерывная 5-осевая обработка. Почему так - не знаю. У станка две дополнительные сменные головы, удлинняющая и угловая 90-градусная.  




Откуда взялась 3D-модель?
  MDL-файл. Это очень лаконичный ответ, если же в подробностях, то при создании модели станка на выбор было два варианта - либо облазать реальный станок и обмерить его рулеткой, либо попытаться как-то воспользоваться  той 3D-моделью, которую Matrix использует для симуляции управляющих программ непосредственно на стойке.
В системе управления достаточно много файлов, похожих на какие-то 3D-модели в каких-то форматах, попадались даже файлы в формате Parasolid, но NX (Unigraphics) при чтении этих файлов выдавал ошибку. Внимание привлек MDL-файл, содержимое которого было очень похоже по формату то ли на WRL-файл, то ли на OBJ-файл. Вот кусочек этого файла:

MELCO_PLY_MCH
HEADER_START
VERSION 1
NUMBER 55296
TOL_SRF 1.0000000
TOL_CRV 1.0000000
TOL_ANG 90.0000000
CAD_VERSION Parasolid-V15.1
HEADER_END
..................................................
f 4552 4551 F138 4553 4554
pl 4553 1685.0000000 -2914.0000044 -3125.0000000 0.0000000 -1.0000000 0.0000000 2123.0000000 -3229.0000000 -2930.0000000 0.0000000 -1.0000000 0.0000000
en 4554 4555 4559 0 5021 0 EN544 5015 4552 0
e 4555 4554 E272 4556 4557 1
vn 4556 4573 0 0 0 4590 VN665 4555
..............................................................


Сначала удалось прочитать этот файл (это обычный текстовый файл, его не пришлось декомпилировать или как-то "хитро" читать) и выстроить те точки, координаты которых в этом файле присутствовали. Стало совершенно точно ясно, что этот файл - это то, что нужно! Как минимум, этими точками можно воспользоваться как "реперными" и уже не лазать макаками по станку с рулеткой! Для построения точек по координатам построил небольшое приложение в UGOPEN Соединив точки линиями уже можно было рассмотреть каркас станка и уже можно было начать процесс моделирования геометрии в NX, вот пример каркасной модели:
Каркасная модель MAZAK Versatech V-100N
На приведенном изображении видны уже те части, которые удалось построить в виде твердотельной геометрии, но 99% модели - это сеточная геометрия, которая представлена отдельными треугольничками, и выстраивание 3D-модели по таким сеткам - каторжный труд. Захотелось поручить NX и эту трудную и кропотливую работу. Получилось! В той же DLL выстраиваются грани тел в виде Bounded Plane и затем сшиваются в твердые тела. Вот пример уже другого станка:

При создании твердотельной геометрии объекты разносятся по разным слоям, что позволяет легко манипулировать телами (гасить, высвечивать, менять цвет и т.п.).

Таким образом, у меня получился PRT-файл NX (не сборка), в котором - 15 твердых тел, разного цвета, разложенные по слоям. Но первое, что нужно сделать для создания CSE-модели в NX - это сформировать сборку, пусть без сопряжений, состоящую из одного компонента, но - сборку. Открыл пустой файл и в качестве компонента прицепил свой файл модели станка:
Сборка станка в NX


26 июня 2013
На днях при "оживлении" CSE-модели DMU100 с системой управления Siemens Sinumerik 840D возникла следующая ситуация - при симуляции сверлильного цикла CYCLE81 получаю сообщение об ошибке - "ALARM 61212".. Разыскиваю в описании Siemens Sinumerik значение этой ошибки - "Недопустимый тип операции для данного инструмента", или наоборот, недопустимый тип инструмента для данной операции. Всю голову сломал, где изменить тип инструмента. В NX как положено, инструмент - сверло, и сам создавал, и из библиотеки брал - ALARM, Так вот пока не прописал в ini-файл тип инструмента 120 для фрезы с нужным номером, проблема сохранялась. Хотя тоже непонятно, 120 - это признак фрезы, у сверла должен быть другой номер. Буду дальше разбираться.

7 комментариев:

Анонимный комментирует...

Здравствуйте. А вы можете показать как в симуляцию добавить bspline интерполяцию? Пробовал симулировать, но в кадре
BSPLINE SD=3 X=.... Y =.... PL=...
ругается на слово SD, пишет что не понимает это. Симулятор станка со стойкой синумерик 840.

Юрий Чигишев комментирует...

Добрый день, Анонимный!

Выкладывайте кусок кода со сплайном - покажу, как добавить в симуляцию.

Анонимный комментирует...

N1 G40 G17 G710 G94 G90 G64
N2 ROT
N3 TRAFOOF
N4 G54
N5 G0 G153 Z0 D0
N6 D1

N7 ;MILL_FINISH_B_SPLINE
N8 G0 G153 Z0 D0
N9 M11
N10 G0 G153 A0 D0
N11 G0 G153 C0 D0
N12 M10
N13 D1
N14 T7 ;(TOOL D20R10 D=20.000 Z=2 r=10.000)
N15 M6
N16 D1
N17 G0 G153 Z0 D0
N18 G0 G153 X2200 Y3000 D0
N19 D1
N20 START_PRG3
N21 G0 S12000 M3
N22 M11
N23 G0 C0.0
N24 A0.0
N25 M10
N26 TRAORI
N27 G54
N28 D1
N29 X200.013 Y27.06
N30 Z3.054
N31 ROT Z0.0
N32 AROT X0.0
N33 G0 X200.013 Y27.06 Z3.054
N34 Z-7.602
N35 G1 Z-27.602 F12000.
N36 X194.59 Y27.066 Z-20.586
N37 X192.453 Y27.069 Z-17.822
N38 X189.443 Y27.088 Z-13.928
N39 X188.962 Y27.217 Z-13.336
N40 X188.076 Y27.445 Z-12.374
N41 BSPLINE SD=3 X188.827 Y27.444 Z-13.116 PL=0.0 F12000.
N42 X190.946 Y27.441 Z-15.872 PL=.161259
N43 X194.87 Y27.437 Z-20.938 PL=.380027
N44 X198.302 Y27.433 Z-25.38 PL=.458714
N45 X200.023 Y27.431 Z-27.605 PL=0.0
N46 G1 X200.047 Y27.83 Z-27.623
N47 BSPLINE SD=3 X198.046 Y27.832 Z-25.037 PL=0.0 F12000.
N48 X195.456 Y27.835 Z-21.689 PL=.410081
N49 X192.085 Y27.839 Z-17.331 PL=.225529
N50 X189.826 Y27.842 Z-14.4 PL=.112786
N51 X188.184 Y27.844 Z-12.323 PL=.173706
N52 X186.713 Y27.846 Z-11.187 PL=.077898
N53 X186.289 Z-10.841 PL=0.0
N54 G1 X185.179 Y28.075 Z-10.096
N55 X184.162 Y28.248 Z-9.523
N56 BSPLINE SD=3 X184.295 Z-9.595 PL=0.0 F12000.
N57 X184.744 Z-9.836 PL=.016876
N58 X186.339 Y28.246 Z-10.839 PL=.04914
N59 X188.299 Y28.243 Z-12.451 PL=.164869
N60 X191.116 Y28.24 Z-16.05 PL=.09687
N61 X194.987 Y28.235 Z-21.082 PL=.302819
N62 X198.069 Y28.232 Z-25.055 PL=.369425
N63 X200.084 Y28.229 Z-27.657 PL=0.0
N64 G1 X200.133 Y28.629 Z-27.707
N65 BSPLINE SD=3 X196.77 Y28.633 Z-23.367 PL=0.0 F12000.
N66 X193.435 Y28.637 Z-19.058 PL=1.
N67 X190.091 Y28.641 Z-14.731 PL=0.0
N68 G1 X188.591 Y28.642 Z-12.935
N69 X187.091 Y28.644 Z-11.532
N70 BSPLINE SD=3 X186.369 Y28.645 Z-10.975 PL=0.0 F12000.
N71 X185.174 Y28.647 Z-10.096 PL=.45374
N72 X183.38 Y28.649 Z-9.179 PL=.281015
N73 X182.369 Y28.65 Z-8.747 PL=.265245
N74 X181.867 Y28.651 Z-8.566 PL=0.0
N75 G1 X181.498 Y28.707 Z-8.452
N76 X181.175 Y28.747 Z-8.355
N77 X179.681 Y28.971 Z-8.018
N78 X179.035 Y29.053 Z-7.917
N79 BSPLINE SD=3 X179.116 Z-7.929 PL=0.0 F12000.
N80 X180.059 Y29.052 Z-8.108 PL=.008192
N81 X182.075 Y29.05 Z-8.614 PL=.08849
N82 X184.431 Y29.047 Z-9.708 PL=.111672
N83 X186.414 Y29.045 Z-10.998 PL=.060339
N84 X187.767 Y29.043 Z-12.151 PL=.065459
N85 X188.901 Y29.042 Z-13.238 PL=.053193
N86 X190.366 Y29.04 Z-15.065 PL=.038998
N87 X193.141 Y29.036 Z-18.668 PL=.143397
N88 X196.633 Y29.032 Z-23.175 PL=.275168
N89 X199.252 Y29.029 Z-26.556 PL=.155092
N90 X200.196 Y29.028 Z-27.774 PL=0.0
N91 G1 X200.225 Y29.191 Z-27.806
N92 X223.73 Y29.141 Z-28.218
N93 X247.51 Y29.096 Z-28.419
N94 X268.012 Y29.058 Z-28.406

Заранее благодарен!

Юрий Чигишев комментирует...

Готового шаблона для сплайнов у Siemens нет, к сожалению.
Поэтому пока могу только общую "канву" обозначить.
На SD нужно повесить степень сплайна, PW - вес, PL не помню что это, посмотрю документацию.
А дальше все "очень просто" - замораживаем вывод перемещений Buffering Motion до следующего G1, читаем все точки сплайна в массив, а дальше, именно на следующем G1, организуем внутри MCF цикл с шагом 0.01 (например) и внутри этого цикла по формулам NURBS строим через тривиальные G1 перемещение по сплайну.
Сейчас не могу готовое решение показать, чуть позже.

Анонимный комментирует...

Спасибо за информацию!

Анонимный комментирует...

Сколько не пытался, никак не могу понять как соединить точки. Там координаты рядом с pl и v, по две координаты, первые это какие-то смещенные куда-то координаты, вторые это правильные вершины, а как их соединять известно одному богу, мазаку и вам)

Юрий Чигишев комментирует...

Выкладывай ссылочку на свой mdl файл, помогу конвертнуть. Но вот рассказывать про формат mdl - это не ко мне.