QQ登录

只需一步,快速开始

快捷登录

登录 或者 注册 请先

UG爱好者

查看: 41699|回复: 153
打印 上一主题 下一主题

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

  [复制链接]

少尉

Rank: 5Rank: 5

29

主题

123

帖子

2103

积分
跳转到指定楼层
楼主
发表于 2016-12-29 08:40:26 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 xingyue 于 2016-12-29 09:57 编辑

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   
}




a.png (251.14 KB, 下载次数: 363)

a.png

点评

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

评分

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

查看全部评分

版权声明  
本人声明此帖为本人原创帖,未经允许,不得转载!

有奖推广贴子: 

回复

使用道具 举报

五级士官

Rank: 4

1

主题

199

帖子

893

积分
推荐
发表于 2019-4-15 16:19:16 | 只看该作者
做成宏在pm2017运行参数可以输入~!但不见有边界生成~!
回复 支持 1 反对 0

使用道具 举报

四级士官

Rank: 3Rank: 3

0

主题

87

帖子

740

积分
推荐
发表于 2017-3-15 21:17:37 | 只看该作者
生成垂直面等高边界 [修改]
回复 支持 0 反对 1

使用道具 举报

列兵

Rank: 1

0

主题

1

帖子

16

积分
153#
发表于 2021-11-4 16:19:38 | 只看该作者
用不了啊,后面代码在哪
回复 支持 反对

使用道具 举报

上等兵

Rank: 1

1

主题

16

帖子

120

积分
152#
发表于 2021-9-6 16:33:42 | 只看该作者
感谢楼主的无私奉献
回复 支持 反对

使用道具 举报

大将

Rank: 11Rank: 11Rank: 11Rank: 11

2

主题

2万

帖子

5万

积分
151#
发表于 2021-1-20 19:50:47 | 只看该作者
楼主你真是太厉害了
回复 支持 反对

使用道具 举报

少尉

Rank: 5Rank: 5

6

主题

333

帖子

2570

积分
150#
发表于 2021-1-20 14:19:54 | 只看该作者
ZENMESHIYONG
回复 支持 反对

使用道具 举报

上等兵

Rank: 1

0

主题

4

帖子

73

积分
149#
发表于 2021-1-19 15:07:19 | 只看该作者
学习        学习
回复 支持 反对

使用道具 举报

上等兵

Rank: 1

1

主题

7

帖子

168

积分
148#
发表于 2021-1-13 11:23:26 | 只看该作者
牛皮啊  可是我不会 看不懂
回复 支持 反对

使用道具 举报

四级士官

Rank: 3Rank: 3

1

主题

81

帖子

726

积分
147#
发表于 2021-1-9 09:27:42 | 只看该作者
这个真是能解决PM的一大短板啊
回复 支持 反对

使用道具 举报

一级士官

Rank: 2

3

主题

61

帖子

202

积分
146#
发表于 2020-12-13 14:42:55 | 只看该作者
确实牛的一批
回复 支持 反对

使用道具 举报

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

本版积分规则

 
 
QQ:1359218528
工作时间:
9:00-17:00
 
微信公众号
手机APP
机械社区
微信小程序

手机版|UG爱好者论坛 ( 京ICP备10217105号-2 )    论坛管理员QQ:1359218528

本站信息均由会员发表,不代表本网站立场,如侵犯了您的权利请联系管理员,邮箱:1359218528@qq.com  

Powered by UG爱好者 X3.2  © 2001-2014 Comsenz Inc. GMT+8, 2024-11-29 08:19

返回顶部