找回密码
 立即注册

QQ登录

只需一步,快速开始

微信扫码登录

搜索
查看: 42248|回复: 153

[原创] PM2016宏应用之二:生成垂直面等高边界

 火.. [复制链接]

29

主题

94

回帖

2123

积分

少尉

积分
2123
发表于 2016-12-29 08:40:26 | 显示全部楼层 |阅读模式
本帖最后由 xingyue 于 2016-12-29 09:57 编辑

PM加工垂直面是一个很郁闷的事情,不过在很多前辈的努力下,发现了找到了很多种方法!这里我介绍一种,是用宏写出来的!
下面是我运行宏产生边界的过程!后面当然有宏的源码,希望大家多多指教!
一、选择要生成边界的垂直面,也可以是陡峭面,但是不能为倒扣面;
a.png
二、运行宏;
b.png
三、输入余量。径向余量和轴向余量用空格隔开,单独输入一个数字,而不使用空格。默认为关闭轴向余量;
c.png
四、输入底部偏置的距离;
d.png
五、选择刀具!
e.png
六、宏可以计算……这是计算后的边界;
h.png
七、这是等高的效果!等高的刀具是你一开始选择的刀具,余量也是你设置的余量!
k.png


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   
}




a.png

点评

楼主真厉害,这个宏太管用了  发表于 2018-5-5 12:36
感谢楼主的无私奉献  发表于 2017-1-2 09:39

评分

参与人数 2G币 +13 收起 理由
“爽”由心生 + 3 楼主是大神!膜拜!
seegood + 10 楼主是大神!膜拜!

查看全部评分

1

主题

198

回帖

893

积分

五级士官

积分
893
发表于 2019-4-15 16:19:16 | 显示全部楼层
做成宏在pm2017运行参数可以输入~!但不见有边界生成~!

0

主题

87

回帖

740

积分

四级士官

积分
740
发表于 2017-3-15 21:17:37 | 显示全部楼层
生成垂直面等高边界 [修改]

0

主题

1

回帖

16

积分

列兵

积分
16
发表于 2021-11-4 16:19:38 | 显示全部楼层
用不了啊,后面代码在哪

1

主题

15

回帖

120

积分

上等兵

积分
120
发表于 2021-9-6 16:33:42 | 显示全部楼层
感谢楼主的无私奉献

2

主题

2万

回帖

5万

积分

大将

积分
51912
发表于 2021-1-20 19:50:47 | 显示全部楼层
楼主你真是太厉害了

6

主题

324

回帖

2570

积分

少尉

积分
2570
发表于 2021-1-20 14:19:54 | 显示全部楼层
ZENMESHIYONG

0

主题

4

回帖

73

积分

上等兵

积分
73
发表于 2021-1-19 15:07:19 | 显示全部楼层
学习        学习

1

主题

6

回帖

168

积分

上等兵

积分
168
发表于 2021-1-13 11:23:26 | 显示全部楼层
牛皮啊  可是我不会 看不懂{:cry:}

1

主题

80

回帖

726

积分

四级士官

积分
726
发表于 2021-1-9 09:27:42 | 显示全部楼层
这个真是能解决PM的一大短板啊

3

主题

58

回帖

202

积分

一级士官

积分
202
发表于 2020-12-13 14:42:55 | 显示全部楼层
确实牛的一批

2

主题

253

回帖

4407

积分

中尉

积分
4407
发表于 2020-9-10 15:28:01 | 显示全部楼层
谢谢分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

咨询QQ:1359218528|发帖须知!|Archiver|手机版|小黑屋|UG爱好者论坛 ( 京ICP备10217105号-2 )

GMT+8, 2025-1-11 02:51

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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