找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 510|回复: 2
打印 上一主题 下一主题

cot

[复制链接]

35

主题

293

帖子

2533

积分

认证会员B类

Rank: 25

积分
2533
跳转到指定楼层
1#
发表于 2015-5-26 17:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x

; Purpose:        This routine is a very simple utility that will create oblong thermal shape
;         
;  (btw: you can get some idea from Create_Thermal_Flash.il also)

/*---------------------------------
CreateOblThForm()
---------------------------------*/
defun( CreateOblThForm ()
        MainFormFile=axlTempFile()
        p = outfile(MainFormFile "w")
        f_FormBegin(p 35,20,"Create Oblong Thermal - RichardL." "TOOLWINDOW")
        f_Bitmap(p "cot" "cot" 0 0 14 14)
        ;f_Bitmap1()
        f_Text(p "Outer diameter(A):",15,0)  f_EditFloat(p "A",29,0,5,5,4)
        f_Text(p "Inner diameter(B):",15,3)  f_EditFloat(p "B",29,3,5,5,4)
        f_Text(p "Oblong length(D):", 15,6)  f_EditFloat(p "D",29,6,5,5,4)
        f_Text(p "Circle spoke(C):",  15,9)  f_EditFloat(p "C",29,9,5,5,4)
        f_Text(p "Oblong spoke(E):",  15,12) f_EditFloat(p "E",29,12,5,5,4)
        f_Group(p "Direction",2,14,32,4)
        f_CheckList(p "H", 4,16,"Horizontal","di")
        f_CheckList(p "V",18,16,"Vertical","di")
        f_Button(p "OK",2,19,10,3)
        f_Button(p "Cancel",20,19,10,3)
        f_FormEnd(p)
        close(p)
        MainFormFile
);func

/*---------------------------------
CheckCOTValue()
---------------------------------*/
defun( CheckCOTValue ()
prog( ()
let( ()
        if((ot->a>0 && ot->b>0 && ot->c>0 && ot->d>0 && ot->e>0) then
   if((ot->a>ot->b && ot->d>ot->e && ot->b>ot->c) return(t)
   axlMsgPut("Invalid Value between A,B,C,D,E")
                )
        );if
        axlMsgPut("Invalid Value, check your value carefully.")
        return(nil)
]

;global
defstruct( struOblTh a b c d e dirH)
ot=nil

defun( CreateOblongThermal ()
        MainFormFile=CreateOblThForm()       
        fw = axlFormCreate((gensym) MainFormFile '("NE" "msglines" 0) 'OblThCallback t nil)
        ot=make_struOblTh(?a 100 ?b 50 ?c 20 ?d 100 ?e 30 ?dirH t)
       
(axlFormSetField fw "A" ot->a)
(axlFormSetField fw "B" ot->b)
(axlFormSetField fw "C" ot->c)
(axlFormSetField fw "D" ot->d)
(axlFormSetField fw "E" ot->e)
(axlFormSetField fw "A" ot->a)
        (axlFormSetField fw "H" ot->dirH)
        (axlFormSetField fw "bmp" "cot")

axlFormDisplay(fw)
; return(fw)        ; return form handle to caller
)

defun( OblThCallback (fw)
        case(fw->curField
                ("H" ot->dirH=t)
                ("V" ot->dirH=nil)
                ("A" ot->a=fw->curValue)
                ("B" ot->b=fw->curValue)
                ("C" ot->c=fw->curValue)
                ("D" ot->d=fw->curValue)
                ("E" ot->e=fw->curValue)
        )

        if(fw->doneState==2 || fw->doneState==3 ;cancle & close
                then axlFormClose(fw) axlTempFileRemove(MainFormFile))
        case(fw->doneState
        (1 ;here is the real main thing!

        if(CheckCOTValue() then
        axlShell("done")
axlSetActiveLayer("etch/top")
        axlDBChangeDesignExtents( '((-1000 -1000) (1000 1000)))
       
        if(ot->dirH then
        path = axlPathStart( (list -ot->d/2:-ot->a/2))            
        axlPathLine(path,0,ot->d/2:-ot->a/2) axlPathArcAngle(path,0,ot->d/2t->a/2,  nil,180)            
        axlPathLine(path,0,-ot->d/2t->a/2) axlPathArcAngle(path,0,-ot->d/2:-ot->a/2,nil,180)            
        else
        path = axlPathStart( (list ot->a/2:-ot->d/2))            
        axlPathLine(path,0,ot->a/2t->d/2) axlPathArcAngle(path,0,-ot->a/2:ot->d/2,  nil,180)            
        axlPathLine(path,0,-ot->a/2:-ot->d/2) axlPathArcAngle(path,0,ot->a/2:-ot->d/2,nil,180)            
        )       
        shapeid=axlDBCreateShape(path t)
        o_poly = axlPolyFromDB(car(shapeid)) axlDeleteObject(car(shapeid))
        i_poly=axlPolyExpand(o_poly -(ot->a-ot->b)/2 'NONE)

        if(ot->dirH
        shapeid=axlDBCreateRectangle(list(-ot->d/2-ot->a/2:-ot->c/2 ot->d/2+ot->a/2:ot->c/2) t)       
        shapeid=axlDBCreateRectangle(list(-ot->c/2:-ot->d/2-ot->a/2 ot->c/2:ot->d/2+ot->a/2) t)       
        )
        i_poly=append(i_poly axlPolyFromDB(car(shapeid))) axlDeleteObject(car(shapeid))
       
        if(ot->dirH
        shapeid=axlDBCreateRectangle(list(-ot->e/2:-ot->a/2 ot->e/2:ot->a/2) t)       
        shapeid=axlDBCreateRectangle(list(-ot->a/2:-ot->e/2 ot->a/2:ot->e/2) t)       
        )
        i_poly = append(i_poly axlPolyFromDB(car(shapeid))) axlDeleteObject(car(shapeid))
       
        f_poly = axlPolyOperation(o_poly i_poly 'ANDNOT)

        foreach(onepoly f_poly axlDBCreateShape(onepoly t))
        axlWindowFit()
        )
        );CheckCOTValue
        );case
)

;CreateOblongThermal()
axlCmdRegister( "COT" `CreateOblongThermal)






;DESCRIPTION:           basic form operation with tmpfile support
;AUTHOR: Richard L.   fpmontreal@gmail.com
/*---------------------------------
f_FormBegin(p w h title form_opt)  TOOLWINDOW / AUTOGREYTEXT / FIXED_FONT / UNIXHGT
---------------------------------*/
defun( f_FormBegin (p w h @optional (form_title "by RichardL.") (form_opt "AUTOGREYTEXT"))
        sprintf(dest,"FILE_TYPE=FORM_DEFN VERSION=2\nFORM %s\nFIXED\nPORT %d %d\nHEADER \"%s\"\nTILE\n\n",form_opt,w,h,form_title)
        if(p fprintf(p,"%s",dest))
        dest
)

/*---------------------------------
f_FormEnd(p flexmode) StandButtons / EdgeGravity / EdgeGravityOne
---------------------------------*/
defun( f_FormEnd (p @optional flexmode)
        if(flexmode        sprintf(dest,"FLEXMODE %s\nENDTILE\nENDFORM\n",flexmode)
                sprintf(dest,"ENDTILE\nENDFORM\n")
        )
        if(p fprintf(p,"%s",dest))
        dest
)

/*---------------------------------
f_CheckList(field x y name group)
---------------------------------*/
defun( f_CheckList (p field x y name @optional (group nil))
        if(group==nil
                sprintf(dest,"FIELD %s\nFLOC %d %d\nCHECKLIST \"%s\" \nENDFIELD\n\n",field,x,y,name)
                sprintf(dest,"FIELD %s\nFLOC %d %d\nCHECKLIST \"%s\" \"%s\"\nENDFIELD\n\n",field,x,y,name,group)
        )
        if(p fprintf(p,"%s",dest))
        dest
)

/*---------------------------------
f_Group(field x y w h)
---------------------------------*/
defun( f_Group (p field x y w h)
        sprintf(dest,"GROUP \"%s\"\nFLOC %d %d\nFSIZE %d %d\nENDGROUP\n\n",field,x,y,w,h)
        if(p fprintf(p,"%s",dest))
        dest
)

/*---------------------------------
f_Text(field x y)
---------------------------------*/
defun( f_Text (p text x y)
        sprintf(dest,"TEXT \"%s\"\nFLOC %d %d\nENDTEXT\n\n",text,x,y)
        if(p fprintf(p,"%s",dest))
        dest
)

/*---------------------------------
f_EditFloat(field x y iw dw dec)    (iw-input width) (dw-data width)
---------------------------------*/
defun( f_EditFloat (p field x y iw dw dec)
        sprintf(dest,"FIELD %s\nFLOC %d %d\nREALFILLIN %d %d\nDECIMAL %d\nENDFIELD\n\n",field,x,y,iw,dw,dec)
        if(p fprintf(p,"%s",dest))
        dest
)

/*---------------------------------
f_Button(x y w h)
---------------------------------*/
defun( f_Button (p name x y w h)        ;close done/ok cancel help print
        sprintf(dest,"FIELD %s\nFLOC %d %d\nMENUBUTTON \"%s\" %d %d\nENDFIELD\n\n",name,x,y,name,w,h)
        if(p fprintf(p,"%s",dest))
        dest
)

/*---------------------------------
f_Bitmap(name x y w h @optional opt)
---------------------------------*/
defun( f_Bitmap (p field name x y w h @optional (opt nil))                ;[RIGHT | CENTER | BORDER | BOLD | UNDERLINE]
bmppath = axlGetVariable("BMPPATH")
    axlSetVariable("BMPPATH" "~/skill/")

        if(opt==nil
        sprintf(dest,"FIELD %s\nTHUMBNAIL %s\nFLOC %d %d\nFSIZE %d %d\nENDFIELD\n\n",field,name,x,y,w,h)
        sprintf(dest,"FIELD %s\nTHUMBNAIL %s\nOPTIONS %s\nFLOC %d %d\nFSIZE %d %d\nENDFIELD\n\n",field,name,opt,x,y,w,h)
        )
        if(p fprintf(p,"%s",dest))
        dest
        )

defun(f_Bitmap1 ()
       


axlSetVariable("BMPPATH" "~/skill/")
bmppath = axlGetVariable("BMPPATH")
printf("%s\n" bmppath)
;FIELD bmp
sprintf(P "FIELD bmp\n")
;THUMBNAIL logo.bmp
sprintf(P "THUMBNAIL cot.bmp\n")
;FLOC 1 3
sprintf(P "FLOC 0 0\n")
;FSIZE 23 5
sprintf(P "FSIZE 14 14\n")
;ENDFIELD
sprintf(P "ENDFIELD\n")

       
)

/*---------------------------------
f_TreeView(field x y w h)
---------------------------------*/
defun( f_TreeView (p field x y w h)
        sprintf(dest,"FIELD %s\nFLOC %d %d\nTREEVIEW %d %d\nENDFIELD\n\n",field,x,y,w,h)
        if(p fprintf(p,"%s",dest))
        dest
)


/*---------------------------------
example: CreateMainForm()
---------------------------------*/
/*
defun( CreateMainForm ()
        MainFormFile=axlTempFile()
        p = outfile(MainFormFile "w")
        f_FormBegin(p 80,20,"Batch Symbol Creater - Richard L.")
        f_Group(p "Select Level",2,2,20,8)
        f_CheckList(p "LevelMax",  4,4,"1 - Maximum","rg")
        f_CheckList(p "LevelMom",  4,6,"2 - Nominal","rg")
        f_CheckList(p "LevelLeast",4,8,"3 - Least",  "rg")
        f_Text(p "SolderMask Ext:",2,12) f_EditFloat(p "SolderMaskOffset",14,12,7,7,4)
        f_Text(p "Silk Gap:",      2,14) f_EditFloat(p "SilkGap",         14,14,7,7,4)
        f_Text(p "SilkWidth",      2,16) f_EditFloat(p "SilkWidth",       14,16,7,7,4)
        f_Text(p "Choice Symbol(s):",24,2)
        f_CheckList(p "AllSym",40,2,"Select All")
        f_TreeView(p "SymTree",24,4,56,12)
        f_Button(p "Run",2,20,10,3)
        f_FormEnd(p)
        close(p)
        MainFormFile
);func
*/


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
生,容易,活,容易,生活,难。

80

主题

1248

帖子

2921

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2921
2#
发表于 2015-5-26 17:52 | 只看该作者
什么情况?

35

主题

293

帖子

2533

积分

认证会员B类

Rank: 25

积分
2533
3#
 楼主| 发表于 2015-5-27 08:47 | 只看该作者
fllash skill
生,容易,活,容易,生活,难。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-27 00:17 , Processed in 0.057189 second(s), 32 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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