APP下载

基于Autolisp的轮胎花纹节距自动排列

2016-11-28胡海明王云见王科

橡塑技术与装备 2016年3期
关键词:节距花纹对话框

胡海明,王云见,王科

(青岛科技大学 机电工程学院,山东 青岛 266061)

基于Autolisp的轮胎花纹节距自动排列

Tire pattern pitch automatic arrangement based on Autolisp

胡海明,王云见,王科

(青岛科技大学 机电工程学院,山东 青岛 266061)

轮胎花纹节距排列是一项繁杂的工作。通过读取花纹节距图,实现花纹节距的参数化排列,工作效率提升10倍以上,且降低了出错率。

Autolisp;轮胎花纹;节距排列

轮胎花纹是轮胎的重要组成部分,它与汽车性能、轮胎使用寿命密切相关。轮胎花纹由不同的节距排列组成。一种轮胎花纹的各种节距都只是节距长度不同,其它形状大致相似。由于轮胎花纹的这种特性,设计轮胎节距排列时常常都是在做重复性的工作。有的轮胎花纹节距排列达到80至100之多。设计过程中,这种枯燥重复的工作不仅浪费时间,而且容易出错,即使发现节距总长错误,也很难找到出错点。本文应用Autolisp语言对轮胎花纹节距排列进行参数化设计,实现轮胎花纹节距的自动排列。

1 轮胎花纹节距

以3种关联节距的轮胎花纹设计为例,根据花纹尺寸和约束类型,在AutoCAD中进行花纹的单节距绘制。然后依次绘出其它节距的图形,分别命名为节距S、节距M和节距L。根据花纹的节距排列,依次将不同的节距制作成块插入图中,排列出整圈轮胎的花纹节距图。3种关联节距的花纹有SS,SM,SL,MS,MM,ML,LS,LM,LL共9种花纹节距的关联排列情况。以小节距S为例,相邻节距为S,M,L时,有SS,SM,SL三种情况。若主节距S受左边节距的影响,称为左关联节距;若主节距受右边节距的影响,称为右关联节距;主节距同时受两边节距的影响或主节距受左边两个节距的影响或主节距受右边两个节距的影响时,称为多关联节距。当然,轮胎花纹的节距不仅仅只有S,M,L三种节距,超过三种节距的花纹也有很多。

以图1的MS左关联节距为例,图中的花筋属于S节距,而花筋的线a和线b是从交点p上引出来的,交点p是M节距的线a与水平线的交点。在节距的排列图中,S节距的左侧有可能是S节距、M节距或L节距,那么线b和线c的长度和角度都会随着线a点的位置不同而发生变化。可见,在关联处花纹的形状要特殊设计,以满足整体花纹的关联排列。

图1 节距关联

2 花纹节距排列程序的编写

2.1 节距的排列程序参数

对非关联节距排列需取得的参数有节距的个数、每个节距的长度、节距的顺序和节距图形。

程序首先通过对话框获得用户输入的节距个数,调用不同的函数进行计算排列。然后从坐标系的原点开始,根据节距长度确定每一个节距排列位置,并将节距图块插入到正确的位置上。对于旋转对称的节距,程序会复制一个下型节距,再旋转180°到轮胎花纹的上型。

关联节距的排列程序同非关联的排列程序一样,对右关联的节距,轮胎花纹下型的主节距图形受右侧节距的影响,而上型图形受左侧节距的影响。左关联的节距则和右关联相反。对于多关联的节距排列,其原理同右关联或左关联的节距排列,只不过多加了一些节距,只要在读取节距顺序时多加一位字符即可。

2.2 程序框图

根据上述参数和排列方法确定节距排列程序框图,如图2。

图2 程序框图

2.3 轮胎花纹节距排图软件说明

根据程序框图描述,在Autocad的界面中输入paitu指令后将弹出程序界面,如图3所示。调用界面的程序如下:

(defun c:paitu();定义快捷键名称为paitu。

(setvar "cmdecho" 0);控制在 AutoLISP 命令函数运行时是否回显提示和输入。

(dcl_paitu);调用函数dcl_paitu。

(prin1) ;输出显示。

图3 轮胎花纹节距排图程序的主界面

(defun dcl_paitu();定义函数dcl_paitu。

(setq index_value (load_dialog "排 图 主 界面.dcl"))

(if (not (new_dialog "paitudcl" index_value))调用dcl显示界面。

(exit))

Dcl编译的界面语言部分如下:

paitudcl:dialog {/定义对话框的调用为paitudcl。

label = "轮胎花纹节距排图" ;/定义对话框名称。

:text {

alignment = centered ;/定义对正样式为中心对正。

label = "数据输入/选择花纹排列类型" ;/定义显示的文字。

}

:edit_box {/定义编辑的文本框。

key = "key_gs" ;/定义文本框的关键字。

label = "花纹节距种类数目" /定义文本框的名称。

}

以半钢左关联为例,在程序的主界面中输入数据,包括节距种类数目和节距排列顺序,点击“半钢左关联排图”按钮后,出现对话框如图4所示。

在对话框中,输入S节距、M节距和L节距的长度并由程序将S节距、M节距和L节距文本框中的数据读取出来,并将其转化成数值并赋给实型数变量sjj、mjj和ljj。

图4 左关联和右关联节距排图界面

(action_tile "key_ljj" "(setq LJJ $value)") (setq ljj (atof LJJ))

点击“选择节距块”的按钮,弹出询问对话框如图5所示,选择需要的一种情况,按下按钮,弹出块文件的选择方式对话框如图6所示,选择一种方式创建块。

图5 旋转询问界面

图6 节距块的创建方式

选择第一种方式时,将弹出标准文件选择对话框,进行节距文件的选择。并将选择的文件路径名赋给指定的变量,程序如下:

(setq sswj (getfiled "选择节距文件" "~" "dwg" 2 ))、

选择第二种方式时,将提示指定基点,并选择块对象,与Autocad中的块创建命令相同。程序如下:

(defun kkk ( bs ) ;定义块的创建函数名。

(print (strcat "请创建第<" (rtos gg 2 3) ">个块"));提示创建第几个块。

(setq name gg) (setq bs(ssget));根据选定对象创建选择集。

(command "change" bs "" "p" "c" gg "");指定块的颜色。

(print "请选择块的基点");提示选择基点。

(setq pp (getpoint)) ;选择基点。

(command "_block" name pp bs ""));创建块并按顺序命名。

选择完文件后,程序进入循环语句,通过判断输入的顺序字符串,确定要插入哪一个文件。如果是非关联节距,则substr指令的最后一位为1,表示读取字符串中的1个字符并赋予变量ge;如果是关联节距,则最后一位数为2,表示读取2个字符并赋予变量ge。例如:当输入的节距顺序为“smlms”时,第一次循环时程序读取出“sm”字符串,程序如下:

(while (<= kk jjs) (setq ge (substr sx kk 1));非关联节距读取字符。

(while (<= kk jjs) (setq ge (substr sx kk 2));关联节距读取字符。

插入节距文件的插入点都位于同一条直线上,最初的插入点设置为原点并赋值给变量jl,第二个插入点据第一个插入点的长度为读取到得那个节距的长度,将长度值赋给变量yb,并由变量jl和常数0组成的表赋给变量pl作为插入点的坐标。插入点的坐标程序如下:

(setq jl (+ yb jl)) (setq pl (list jl 0));指定插入点,插入点的坐标由变量pl表示成一个表,即(list jl 0),变量jl表示X方向的坐标,0表示Y方向坐标。

块文件的插入程序使用cond指令进行判断,当读取变量ge中的字符与设定的字符相同时,则插入相应的节距文件。程序如下:

在 (command "-insert" llwj pl 1 1 "0"))程序段中,command是Autolisp调用AutoCAD命令时使用的指令,insert为AutoCAD的块插入命令,变量llwj表示为LL节距文件的路径,pl表示块插入的坐标,后面的常数表示为1:1插入块,旋转角度为0°,当需要旋转出上型块图形时,旋转角度设置为180°。

为了能明确看到节距的顺序,程序在每个节距的上方都添加了节距的名称,如图7所示。程序如下:

图7 带有节距号的节距排列图

(setq plp (list jl -12))

(if (= bu "ss")(command "text" "j" "c" plp 8.0 0 "SS"))

(if (= bu "sm")(command "text" "j" "c" plp 8.0 0 "SM"))

在(command "text" "j" "c" plp 8.0 0 "SM"))的程序段中,“text”表示AutoCAD中调用单行文字命令,“j”“c”表示对正样式为中心对正,变量plp表示插入点的坐标,和变量pl相比在Y的负方向偏移12 mm,8.0表示字高,旋转角度为0°,“SS”为输入的字符串。

半钢非关联节距排图,半钢多关联节距排图和全钢双节距排图与半钢左关联节距排图程序的编写类似。

3 结论

花纹节距的参数化设计实现了半钢、全钢花纹节距的自动排列,工作效率提高了10倍,且工作出错率大为减少。

[1] 郭秀娟. AutoLISP语言程序设计 [M] .北京:化学工业出版社,2008.

[2]周乐来. AutoCAD2008Vsisual LISP二次开发入门到精通[M]. 北京:机械工业出版社,2008.

[3] 张智,杜以波. 轮胎花纹与汽车使用性能 [J] .山东:山东交通科学研究所,2003.

[4]胡海明,张浩.基于VB的双节距花纹块电加工分度表生成软件的设计与实现 [J] .模具设计,2012(5):52~55.

[5] 胡海明,李鹤,孙伟,等. 压铸模分析计算报价系统的设计与研究 [J].模具工业,2008,34(5):20~23.

TQ336.1 TQ330.493

1009-797X(2016)03-0062-04

B

10.13520/j.cnki.rpte.2016.03.016

胡海明,男,青岛科技大学教授。

2015-05-04

猜你喜欢

节距花纹对话框
基于CATIA/CAA的轮胎花纹跨节距设计及自动整周拼合
基于CATIA/CAA的轮胎花纹设计及自动节距排列
正常恢复虚拟机
涂颜色
Bootlace Worms’Secret etc.
What Is Beauty?
冰雪路面轿车轮胎
公交车专用载重汽车轮胎胎面花纹
基于焊点形态分析的小节距BGA焊盘尺寸设计
浅谈VB的通用对话框《CommonDialog》控件的使用