- •Спецификации обработки. (Machine Specifications).
- •Внутренние параметры. (Internal Parms).
- •Инициализация станка (данные станка с чпу). (Machine Initialize)
- •Для определения g-кода в относительной системе координат.
- •Этот параметр определяет первую ось вращения, используемую для расчета углов поворота. Сначала угол вращения для xy & xz должен быть установлен для X. Следующий - z.
- •Ось по умолчанию является zyx.
- •Этот параметр определяет направление вращения 4-ой оси в положительном направлении при одновременной обработке в SolidCam-е.
- •Номер программы. (Program numbers).
- •Пример:
- •Управление процедурами. (Procedures control).
- •Loop_exist тип: logical {y/n} (только для фрезерования)
- •Позиционирование. (Positioning).
- •Компенсация (коррекция на радиус инструмента). (Compensation).
- •Определения дуги. (Arc Definitions).
- •Эпсилон величины. (Epsilon Values).
- •Вращение шпинделя, подача. (Feed-Spin).
- •Расчет времени. (Timing).
- •Опции проекта. (Part Options).
- •Опции переходов. (Job Options).
- •Циклы прорезки. (Grooving Cycles).
- •Параметры симуляция 5-ой оси. (Sim 5-Axis Parameters).
- •Пользовательская документация. (User Documentation).
- •Gppl язык. (gppl language).
- •Введение. (Introduction).
- •Типы переменных .(Variable Types).
- •1. Change attribute (смена атрибуции)
- •2. Active attribute (активный атрибут)
- •Функции генерации. (Generate Functions).
- •Оператор преждевременного завершения.(Abort statement)
- •Оператор прерывания. (Break statement).
- •Параметры:
- •Параметры:
- •Системные Переменные gppTool. (gppTool System Variables)
- •Переменные, которые передаются в gppTool.( Variables that are passed to gppTool).
- •Нумерация кадров. (Block Numbers).
- •GppTool Команды.(gppTool Commands).
- •Xcenter, ycenter, радиус, zstart
- •Точка смещения начала координат. (Change Ref Point)
- •Определение токарного инструмента. (Def Turn Tool).
- •Время выдержки. (Delay). Параметры:
- •Примеры:
- •Пример:
- •Параметры:
- •Описание:
- •Пример:
- •Пример:
- •Примеры:
- •Пример:
- •Начальная точка. (Home_data). Параметры:
- •Инициализация позиции с.(Init Cpos).
- •Описание:
- •Подача, шпиндель.(m Feed Spin). Праметры:
- •Описание:
- •Направление ускоренного перемещениея 4-х осевой.(Move4x Dir). Параметры:
- •Описание:
- •Параметры:
- •Описание:
- •Вращение по плоскисти.(Rotate to plane). Параметры:
- •Пример:
- •Старт инструмента.( Start Tool).
- •Примеры :
- •Стоп Инструмент. (Stop Tool)
- •Нарезание резьбы. (Thread).
- •Матрица. (Tmatrix). Параметры:
- •Информация о траектории. (Tool Path Info). Параметры:
- •Описание:
- •Токарная смена инструмента. (Turn Change Tool). Параметры:
- •Описание:
- •Пример:
- •Сверление в токарной обработке. (Turn Drill). Параметры:
- •Пример:
- •Конец токарной процедуры. (Turn Endproc).
- •Описание:
- •Пример:
- •Токарная обработка. (Turning).
- •Описание:
- •Дуга в электроэрозионной обработке. (Wc Arc). Параметры:
- •Описание:
- •Пример:
- •Пример:
- •Резание проволокой в электроэрозионной. (Wc Cut Wire).
- •Информация финишной электроэрозионной обработки. (Wc Finish Info). Параметры:
- •Описание:
- •Пример:
- •Загрузка проволоки-электротэрозия. (Wc Insert Wire).
- •Пример:
- •Примеры:
- •Примеры:
- •Файловые Команды. (File Commands).
- •Местное включение. (Include Place).
- •Включение вложенности. (Include Nesting).
- •Включение сообщения об ошибках.(Include Error messages).
- •Включение инициализации.(Include initialization).
- •Кинематический Стиль .(Kinematic Style).
- •Примеры. (Examples). Пример 1: пользовательский пре- и постпроцессор для Fanuc контроллера. (Example 1: User-defined Pre and Post-processor for a Fanuc controller). Файл препрцессора: [fanuc.Prp]
- •Файл постпроцессора: [fanuc.Gpp]
- •Файл препроцессора: [Integrex-e-410h.Prp]
- •Файл постпроцессора: [Integrex-e-410h.Gpp]
- •Пример файла. (example: fanuc g-Code file)
- •Сообщения об ошибках gpPtool. (gpPtool error messages).
Пользовательская документация. (User Documentation).
Эта опция позволяет Вам генерировать файлы документации в других форматах, например: Html, Excel, txt, и т.д.
Prp Doc_processor
Можно настроить вывод документации SolidCAM, редактируя файлы станка *.prp и процессора документации *.dpp вашего контроллера CNC.
Постпроцессор документации включает два файла: <machine_name>.dpp и <machine_name>.prp.
Эти файлы должны быть расположены в каталоге файлов постпроцессора, определенном в настройках SolidCAM:
\Program Files\SolidCAMXXXX\SolidCAM,
где XXXX версия программного обеспечения SolidCAM.
Параметр под именем doc_processor должен быть определен в файле: <machine_name>.prp
Параметр определяется следующим образом:
doc_processor = <machine_name>.
Команды Пользовательской документации.
При запросе пользователем генерации пользовательской документации, документация генерируется согласно файлам [MACHINE.PRP] и [MACHINE.DPP].
Есть некоторые новые команды GPPL, которые полезны в генерировании файла документации:
Создать файл документа в начале процесса генерации документации:
{ '!! open file = c:\\name.ext !!' }
Закрыть файл документа в конце процесса генерации документации:
{ '!! close file = c:\\name.ext !!'}
Файл копии документа
{ '!! copy file = c:\\copy_from_name.ext !!' }
Удалить временный файл
{ '!! delete file = c:\\temporary_file_name.ext !!' }
Создать папку в начале процесса генерации документации:
{ '!! make dir = c:\\dir name !!'}
Пример:
path_nc_ode = 'c:\\nc_code_dir'
{nl,'!!make dir='path_nc_code'!!'}
Папка, названная path_nc_code, будет создаваться на диске C.
Пример пользовательской документации.
Следующий пример генерирует файл в Html format.named tool_table.html
1 |
OBR |
|
Machine description |
Arrow |
|
|
|
|
|
2 |
PAR |
|
Type machine |
0 |
|
|
|
|
|
3 |
MZA |
|
Work material |
None |
|
|
|
|
|
4 |
TPR |
|
Part name |
PROFILE |
|
|
|
|
|
5 |
TPR |
|
Job name |
F-1-T1 |
|
|
|
|
|
6 |
PAR |
|
Down step |
|
|
|
|
|
3. |
7 |
PAR |
|
Toolpath length |
|
|
|
|
|
1051.426 |
8 |
PAR |
|
Surface offset |
|
|
|
|
|
0. |
9 |
PAR |
|
Wall offset |
|
|
|
|
|
0. |
10 |
PAR |
|
Floor offset |
|
|
|
|
|
0. |
11 |
PAR |
|
Island offset |
|
|
|
|
|
|
12 |
PAR |
|
Number passed |
|
|
|
|
|
2. |
13 |
PAR |
|
Feed rate |
|
|
|
|
|
100. |
14 |
PAR |
|
Feed Z |
|
|
|
|
|
33. |
15 |
PAR |
|
Feed finish |
|
|
|
|
|
100. |
16 |
PAR |
|
Spin rate |
|
|
|
|
|
1000. |
17 |
PAR |
|
Spin finish |
|
|
|
|
|
1000. |
18 |
PAR |
|
Job time |
|
|
|
|
|
8.349 |
19 |
INS |
|
Tool message |
|
|
|
|
|
|
20 |
PAR |
|
Tool ID |
0-0 |
|
|
|
|
|
21 |
PAR |
|
Tool material |
None |
|
|
|
|
|
22 |
PAR |
|
Holder_description |
|
|
|
|
|
|
Следующая команда должна быть добавлена к <machine>.dpp файлу:
Шаг 1: Определить Переменные:
@init_post global integer tool_count global string tool_def<<20,50>> global integer job_count global string job_def<<20,150>> endp
Шаг 2 - Ввод значения для переменной
@start_of_job
message = msg
job_count = job_count + 1 job_def<<1,job_count>> = job_name job_def<<2,job_count>> = tostr(down_step) job_def<<3,job_count>> = tostr(toolpath_length) job_def<<4,job_count>> = tostr(surface_offset) job_def<<5,job_count>> = tostr(wall_offset) job_def<<6,job_count>> = tostr(floor_offset) job_def<<7,job_count>> = tostr(island_offset)
Npr=(abs(depth/down_step)-round(abs(depth/down_step),0)) If Npr > 0 then Np=round(abs(depth/down_step),0)+1 else Np=round(abs(depth/down_step),0) endif
job_def<<8,job_count>> = tostr(Np) job_def<<9,job_count>> = tostr(feed_rate) job_def<<10,job_count>> = tostr(z_feed) job_def<<11,job_count>> = tostr(finish_feed) job_def<<12,job_count>> = tostr(spin_rate) job_def<<13,job_count>> = tostr(finish_spin) job_def<<14,job_count>> = tostr(job_dtime) job_def<<15,job_count>> = tool_message
t_langth =tostr(tool_ID_number:'8.0(p)') t1_langth=left( t_langth,4) t2_langth=right( t_langth,4)
job_def<<16,job_count>> = t1_langth+'-'+ t2_langth job_def<<17,job_count>> = tool_material job_def<<18,job_count>> = holder_description
; {'(MSG, 'message')'}
endp
@def_tool
{nb,'(TOOL NUMBER ' tool_NUMBER ' tool_length ' tool_length ' tool_teeth_number ' tool_teeth_number } {' corner_radius ' corner_radius}
tool_count = tool_count + 1 tool_def<<1,tool_count>> = tostr(tool_number:integer_def_f) tool_def<<2,tool_count>> = tostr(tool_offset) tool_def<<3,tool_count>> = tostr(tool_length ) tool_def<<4,tool_count>> = tostr(tool_teeth_number:integer_def_f) tool_def<<5,tool_count>> = tostr(corner_radius) tool_def<<6,tool_count>> = tostr(tool_type) tool_def<<7,tool_count>> = tostr(tool_feed_z) tool_def<<8,tool_count>> = tostr(tool_feed_finish) tool_def<<9,tool_count>> = tostr(tool_spin_finish) tool_def<<10,tool_count>> = tostr(tool_id_number:integer_def_f) tool_def<<11,tool_count>> = tostr(tool_angle) tool_def<<12,tool_count>> = tool_user_type tool_def<<13,tool_count>> = tostr(program_number:integer_def_f) tool_def<<14,tool_count>> = g_file_name tool_def<<15,tool_count>> = 'DMU70_M' tool_def<<16,tool_count>> = ' ' tool_def<<17,tool_count>> = tool_message
endp
Шаг 3 - Вызов @doc процедуры, которая генерирует документацию.
@end_of_file
{nb, ' '} call @doc endp
Шаг 4 - Команды, генерирующие документацию.
Процедура должна включать команду генерации вначале, чтобы открыть файл документа и закрыть его в конце.
@doc
local string t_num local integer i num local string job_table_file job_table_file = 'c:\\SolidCAM\\GPPTool\\job_table.html'
{nl,'!!open file=' job_table_file '!!'} {nl,'<html>'} {nl,''} {nl,'<head>'} {nl,'<meta http-equiv="Content-Language" content="en-gb">'} {nl,'<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">'} {nl,'<meta name="GENERATOR" content="Microsoft FrontPage 4.0">'} {nl,'<meta name="ProgId" content="FrontPage.Editor.Document">'} {nl,'<title>SolidCAM SetUp Sheet</title>'} {nl,'</head>'} {nl,''} {nl,'<body>'} {nl,''} ; {nl,' </table>'} {nl,' </left>'}
{nl,' <table border="1" width="81%">'}
num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>OBR</td>'} {nl,' <td> </td>'} {nl,' <td>Machine description</td>'} {nl,' <td>'machine_descr'</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' </tr>'} ; num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>PAR</td>'} {nl,' <td> </td>'} {nl,' <td>Type machine</td>'} {nl,' <td>'job_machine_type'</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' </tr>'} ; num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>MZA</td>'} {nl,' <td> </td>'} {nl,' <td>Work material</td>'} {nl,' <td>'work_material'</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' </tr>'} ; {nl,' </tr>'} {nl,' <td bgcolor="#C0C0C0">.</td>'} {nl,' <td bgcolor="#C0C0C0"> </td>'} {nl,' <td bgcolor="#C0C0C0"> </td>'} {nl,' <td bgcolor="#C0C0C0"> </td>'} {nl,' <td bgcolor="#C0C0C0"> </td>'} {nl,' <td bgcolor="#C0C0C0"> </td>'} {nl,' <td bgcolor="#C0C0C0"> </td>'} {nl,' <td bgcolor="#C0C0C0"> </td>'} {nl,' <td bgcolor="#C0C0C0"> </td>'} {nl,' <td bgcolor="#C0C0C0"> </td>'} {nl,' </tr>'}
i = 1 while i <= job_count
if i <= job_count
num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>TPR</td>'} {nl,' <td> </td>'} {nl,' <td>Part name</td>'} {nl,' <td>'f_name '</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' </tr>'} ; num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>TPR</td>'} {nl,' <td> </td>'} {nl,' <td>Job name</td>'} {nl,' <td>'job_def<<1,i>>'</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' </tr>'} ; num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>PAR</td>'} {nl,' <td> </td>'} {nl,' <td>Down step</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td>'job_def<<2,i>>'</td>'} {nl,' </tr>'} ; num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>PAR</td>'} {nl,' <td> </td>'} {nl,' <td>Toolpath length</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td>'job_def<<3,i>>'</td>'} {nl,' </tr>'} ; num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>PAR</td>'} {nl,' <td> </td>'} {nl,' <td>Surface offset</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td>'job_def<<4,i>>'</td>'} {nl,' </tr>'} ; num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>PAR</td>'} {nl,' <td> </td>'} {nl,' <td>Wall offset</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td>'job_def<<5,i>>'</td>'} {nl,' </tr>'} ; num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>PAR</td>'} {nl,' <td> </td>'} {nl,' <td>Floor offset</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td>'job_def<<6,i>>'</td>'} {nl,' </tr>'} ; num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>PAR</td>'} {nl,' <td> </td>'} {nl,' <td>Island offset</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} ;{nl,' <td>'job_def<<7,i>>'</td>'} {nl,' </tr>'} ; num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>PAR</td>'} {nl,' <td> </td>'} {nl,' <td>Number passed</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td>'job_def<<8,i>>'</td>'} {nl,' </tr>'} ; num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>PAR</td>'} {nl,' <td> </td>'} {nl,' <td>Feed rate</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td>'job_def<<9,i>>'</td>'} {nl,' </tr>'} ; num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>PAR</td>'} {nl,' <td> </td>'} {nl,' <td>Feed Z</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td>'job_def<<10,i>>'</td>'} {nl,' </tr>'} ; num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>PAR</td>'} {nl,' <td> </td>'} {nl,' <td>Feed finish</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td>'job_def<<11,i>>'</td>'} {nl,' </tr>'} ; num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>PAR</td>'} {nl,' <td> </td>'} {nl,' <td>Spin rate</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td>'job_def<<12,i>>'</td>'} {nl,' </tr>'} ; num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>PAR</td>'} {nl,' <td> </td>'} {nl,' <td>Spin finish</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td>'job_def<<13,i>>'</td>'} {nl,' </tr>'} ; num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>PAR</td>'} {nl,' <td> </td>'} {nl,' <td>Job time</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td>'job_def<<14,i>>'</td>'} {nl,' </tr>'} ; num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>INS</td>'} {nl,' <td> </td>'} {nl,' <td>Tool message</td>'} {nl,' <td>'job_def<<15,i>>'</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' </tr>'} ; num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>PAR</td>'} {nl,' <td> </td>'} {nl,' <td>Tool ID</td>'} {nl,' <td>'job_def<<16,i>>'</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' </tr>'} ; num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>PAR</td>'} {nl,' <td> </td>'} {nl,' <td>Tool material</td>'} {nl,' <td>'job_def<<17,i>>'</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' </tr>'} ; num=num+1 t_num =tostr(num:'8.0(p)') {nl,' </tr>'} {nl,' <td>'t_num'</td>'} {nl,' <td>PAR</td>'} {nl,' <td> </td>'} {nl,' <td>Holder_description</td>'} {nl,' <td>'job_def<<18,i>>'</td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' <td> </td>'} {nl,' </tr>'} ; {nl,' </tr>'} {nl,' <td bgcolor="#C0C0C0">.</td>'} {nl,' <td bgcolor="#C0C0C0"> </td>'} {nl,' <td bgcolor="#C0C0C0"> </td>'} {nl,' <td bgcolor="#C0C0C0"> </td>'} {nl,' <td bgcolor="#C0C0C0"> </td>'} {nl,' <td bgcolor="#C0C0C0"> </td>'} {nl,' <td bgcolor="#C0C0C0"> </td>'} {nl,' <td bgcolor="#C0C0C0"> </td>'} {nl,' <td bgcolor="#C0C0C0"> </td>'} {nl,' <td bgcolor="#C0C0C0"> </td>'} {nl,' </tr>'} else endif i = i + 1
endw
{nl,'!!close file='job_table_file'!!'}
endp
