PM加工垂直面是一个很抑郁的工作,不过在许多长辈的尽力下,发现了找到了许多种方法!这儿我介绍一种,是用宏写出来的!
下面是我运转宏发生鸿沟的进程!后边当然有宏的源码,期望我们多多指教!
一、挑选要生成鸿沟的垂直面,也可所以峻峭面,可是不能为倒扣面;
二、运转宏;
三、输入余量。径向余量和轴向余量用空格离隔,独自输入一个数字,而不运用空格。默以为封闭轴向余量;
四、输入底部偏置的间隔;
五、挑选刀具!
六、宏能够核算……这是核算后的鸿沟;
七、这是等高的作用!等高的刀具是你一开始挑选的刀具,余量也是你设置的余量!
OK!不多废话了!下面是源码!以免有人说我只发图不发源码!无意苦争春,只把春来报!怎么办零完工泥碾作尘,扔遭群芳妒!用欠好代码框!欠好意思!修改了下!留意代码不全:到后边找<有字数约束>!
//留意:
// 0)运转宏之前选好要加工的面(虽然是多算,最好自选一个垂直面);
// 1)径向余量与轴向余量用空格离隔,独自输入数字默许是封闭轴向余量;
// 2)因为更改了开始点和完毕点,刀路安全自己留意 ;
// 3)容错公役默以为1MM;
// 4)等高刀路自己设置;
FUNCTION MAIN() {
GRAPHICS LOCK
DIALOGS MESSAGE OFF
DIALOGS ERROR OFF
DELETE TOOLPATH FOLDER "Toolpath\MyFolderTop"
DELETE TOOLPATH FOLDER "Toolpath\MyFolderBottom"
STRING $str=input "请输入余量:"
Real $offset=input "请输入底部方位偏置间隔:"
STRING ToolName = INPUT ENTITY TOOL "挑选刀具"
ACTIVATE TOOL $ToolName
CALL SetBlock()
//生成顶部参阅线
CREATE FOLDER "Toolpath" "MyFolderTop"
ACTIVATE FOLDER #
STRING THName=""
CALL Swarf(str,0,'top',THName)
STRING PName=new_entity_name('Pattern')
CREATE PATTERN ;
EDIT PATTERN ; INSERT TOOLPATH ;
EDIT TOOLPATH DIVIDE TYPE RETRACT
PROCESS TPDIVIDE
DELETE TOOLPATH $THName
//生成底部部参阅线
CREATE FOLDER "Toolpath" "MyFolderBottom"
ACTIVATE FOLDER #
CALL Swarf(str,offset,'bottom',THName)
EDIT PATTERN $PName INSERT TOOLPATH ;
EDIT TOOLPATH DIVIDE TYPE RETRACT
PROCESS TPDIVIDE
DELETE TOOLPATH $THName
//取刀路参数
FOREACH TH1 IN FOLDER('Toolpath\MyFolderTop') {
REAL X1=ENTITY('Toolpath',TH1.Name).StartPoint.Position.X
REAL Y1=ENTITY('Toolpath',TH1.Name).StartPoint.Position.Y
REAL Z1=ENTITY('Toolpath',TH1.Name).StartPoint.Position.Z-ENTITY('Toolpath',TH1.Name).StartPoint.Distance
REAL X11=ENTITY('Toolpath',TH1.Name).EndPoint.Position.X
REAL Y11=ENTITY('Toolpath',TH1.Name).EndPoint.Position.Y
REAL Z11=ENTITY('Toolpath',TH1.Name).EndPoint.Position.Z-ENTITY('Toolpath',TH1.Name).EndPoint.Distance
FOREACH TH2 IN FOLDER('Toolpath\MyFolderBottom') {
REAL X2=ENTITY('Toolpath',TH2.Name).StartPoint.Position.X
REAL Y2=ENTITY('Toolpath',TH2.Name).StartPoint.Position.Y
REAL Z2=ENTITY('Toolpath',TH2.Name).StartPoint.Position.Z-ENTITY('Toolpath',TH2.Name).StartPoint.Distance
REAL X22=ENTITY('Toolpath',TH2.Name).EndPoint.Position.X
REAL Y22=ENTITY('Toolpath',TH2.Name).EndPoint.Position.Y
REAL Z22=ENTITY('Toolpath',TH2.Name).EndPoint.Position.Z-ENTITY('Toolpath',TH2.Name).EndPoint.Distance
IF ABS(X1-X2)<1 AND ABS(Y1-Y2)<1 {
EDIT PATTERN $PName INSERT SKETCH
ABSOLUTE
XYPLANE
X $X1
Y $Y1
Z $Z1
ADD
X $X2
Y $Y2
Z $Z2
ADD
END
X $X11
Y $Y11
Z $Z11
ADD
X $X22
Y $Y22
Z $Z22
ADD
END
QUIT SSKETCHER ACCEPT
CONTINUE
} ELSEIF ABS(X1-X22)<1 AND ABS(Y1-Y22)<1 {
EDIT PATTERN $PName INSERT SKETCH
ABSOLUTE
XYPLANE
X $X1
Y $Y1
Z $Z1
ADD
X $X22
Y $Y22
Z $Z22
ADD
END
X $X11
Y $Y11
Z $Z11
ADD
X $X2
Y $Y2
Z $Z2
ADD
END
QUIT SSKETCHER ACCEPT
CONTINUE
} ELSE {
CONTINUE
}
}
}
EDIT PATTERN $PName MERGE
CREATE BOUNDARY ; SKETCH \r EDIT BOUNDARY ; INSERT PATTERN ;
DELETE TOOLPATH FOLDER "Toolpath\MyFolderTop"
DELETE TOOLPATH FOLDER "Toolpath\MyFolderBottom"
EDIT RECYCLER DELETE Toolpath ALL
DIALOGS MESSAGE ON
DIALOGS ERROR ON
GRAPHICS UNLOCK
}
|