多墨网

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

只需一步,快速开始

PM2017直身面快速产生边界,PM高版本宏功能真的很强大,附...

[复制链接]
项悦心 发表于 2018-5-31 00:03:22 | 显示全部楼层 |阅读模式
PM直升面快速产生边界的宏(复制以下代码到记事本,保存为PM宏文件:“直身面产生边界.mac”)

PM2017直身面快速产生边界

PM2017直身面快速产生边界



//     PM直升面产生边界宏,运行注意:

//      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





}

FUNCTION Swarf(string ThicknessStr,Real offset,string Position,OUTPUT STRING THName) {

    $THName=new_entity_name('Toolpath')

    IMPORT TEMPLATE ENTITY TOOLPATH TMPLTSELECTORGUI "Finishing/Swarf-Finishing.ptf"

    $SurfaceSide='outside'

    $RadialOffset=0

    $FanningDistance=0

    $ReverseAxis=0

    $FanAtEnd=1

    $FollowSurfaceLaterals=0

    $Tolerance=0.005

    STRING ARRAY Thick[]=Tokens(ThicknessStr)

    IF SIZE(Thick)==1 {

       $UseAxialThickness=0

       $Thickness=select(Position=='top',REAL(Thick[0])-0.015,REAL(Thick[0]))

       PRINT=$Thickness

    } ELSE {

       $UseAxialThickness=1

       $Thickness=select(Position=='top',REAL(Thick[0])-0.015,REAL(Thick[0]))

       PRINT=$Thickness

       $AxialThickness=REAL(Thick[1])

    }

    $SwarfBasePosition=Position

    $AxialOffset=offset

    $MultipleCuts='off'

    $CornerRadius.Active=0

    $AxialSmoothingTolerance=0

    EDIT TOOLAXIS TYPE VERTICAL

    EDIT TOOLPATH START TYPE POINT

    EDIT TOOLPATH END TYPE POINT

    EDIT TOOLPATH $THName CALCULATE

    FORM ACCEPT SFPatternSwarf

    FORM LEADLINK

    EDIT TOOLPATH LEADS SKIMDIST "5"

    EDIT TOOLPATH LEADS PLUNGEDIST "2"

    EDIT TOOLPATH LEADS PAGE LEADIN

    EDIT TOOLPATH LEADS LEADIN NONE

    EDIT TOOLPATH LEADS LEADIN2 NONE

    EDIT TOOLPATH LEADS LEADOUT COPY

    EDIT TOOLPATH LEADS PAGE LEADEXTENSIONS

    EDIT TOOLPATH LEADS PAGE LINK

    EDIT TOOLPATH LEADS LINK STRAIGHT

    EDIT TOOLPATH LEADS LONGLINK SKIM

    EDIT TOOLPATH LEADS SAFELINK SKIM

    PROCESS TPLEADS

    LEADS ACCEPT

}

FUNCTION SetBlock() {

    FORM BLOCK

    DELETE BLOCK

    EDIT BLOCKTYPE BOX

    EDIT BLOCK LIMITTYPE MODEL

    EDIT BLOCK ALL UNLOCK

    EDIT BLOCK RESETLIMIT "0"

    EDIT BLOCK RESET

    EDIT BLOCK ZMAX LOCK

    EDIT BLOCK RESETLIMIT "Tool.diameter*0.7"

    EDIT BLOCK RESET

    BLOCK ACCEPT

    UNDRAW BLOCK

}


VIP会员开通介绍说明                       多墨教育手机电脑学习课程                       一对一直播教室说明                       NX培训课程下载                       UGNX教程大全下载

2024年6月28日发布:UGNX2406.1700高版本软件,点击进入自助下载                               UGNX软件下载                       远程安装:UGNX    CAD    Solidworks 等相关软件
回复

使用道具 举报

索流惠 发表于 2018-6-1 18:46:53 | 显示全部楼层
VIP会员开通介绍说明                       多墨教育手机电脑学习课程                       一对一直播教室说明                       NX培训课程下载                       UGNX教程大全下载

2024年6月28日发布:UGNX2406.1700高版本软件,点击进入自助下载                               UGNX软件下载                       远程安装:UGNX    CAD    Solidworks 等相关软件
回复 支持 反对

使用道具 举报

易童彤 发表于 2018-9-2 06:53:34 | 显示全部楼层
VIP会员开通介绍说明                       多墨教育手机电脑学习课程                       一对一直播教室说明                       NX培训课程下载                       UGNX教程大全下载

2024年6月28日发布:UGNX2406.1700高版本软件,点击进入自助下载                               UGNX软件下载                       远程安装:UGNX    CAD    Solidworks 等相关软件
回复 支持 反对

使用道具 举报

屠玛丽 发表于 2018-9-25 16:47:37 | 显示全部楼层
VIP会员开通介绍说明                       多墨教育手机电脑学习课程                       一对一直播教室说明                       NX培训课程下载                       UGNX教程大全下载

2024年6月28日发布:UGNX2406.1700高版本软件,点击进入自助下载                               UGNX软件下载                       远程安装:UGNX    CAD    Solidworks 等相关软件
回复 支持 反对

使用道具 举报

沙盼盼 发表于 2018-9-26 23:18:32 | 显示全部楼层
VIP会员开通介绍说明                       多墨教育手机电脑学习课程                       一对一直播教室说明                       NX培训课程下载                       UGNX教程大全下载

2024年6月28日发布:UGNX2406.1700高版本软件,点击进入自助下载                               UGNX软件下载                       远程安装:UGNX    CAD    Solidworks 等相关软件
回复 支持 反对

使用道具 举报

暨瑶 发表于 2018-10-9 07:22:38 | 显示全部楼层
VIP会员开通介绍说明                       多墨教育手机电脑学习课程                       一对一直播教室说明                       NX培训课程下载                       UGNX教程大全下载

2024年6月28日发布:UGNX2406.1700高版本软件,点击进入自助下载                               UGNX软件下载                       远程安装:UGNX    CAD    Solidworks 等相关软件
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Archiver|小黑屋|多墨网 ( 粤ICP备11060181号 )

GMT+8, 2024-12-4 01:00 , Processed in 0.096656 second(s), 22 queries .

多墨网成立UG论坛,并分享UG教程   

© 2014-2023 多墨网

快速回复 返回顶部 返回列表