找回密码
 注册
关于网站域名变更的通知
查看: 671|回复: 0
打印 上一主题 下一主题

[skill]-Share skill

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-5-23 11:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
I have skill for align.
axlCmdRegister(
        "align_sym"
        'align_sym
        )

procedure( align_sym( )
(prog ()
when( axlOKToProceed()
_ASInitVar()
_ASCreateFormFile()
_ASInitPARMForm()
while( fini == nil
        _ASsetsymmaster()
        if( _ASFormData->group == t && fini == nil then
                _ASselectGrp()
                if( _ASFormData->horizontal == t then
                        _ASMoveHorzComp( cmpgrp)
                else
                        _ASMoveVertComp( cmpgrp)
                )
               
        )
        if( _ASFormData->tolerance == t && fini == nil then
                if( _ASFormData->horizontal == t then
                        _ASHorzSelTol()
                        _ASMoveHorzComp( cmpgrp)
                else
                        _ASVertSelTol()
                        _ASMoveVertComp( cmpgrp)
                )
        )
        if( _ASFormData->window == t && fini == nil then
                _ASWindSel()
                if( _ASFormData->horizontal == t then
                        _ASMoveHorzComp( cmpgrp)
                else
                        _ASMoveVertComp( cmpgrp)
                )
        )
        cmpgrp = nil
);end-while
axlUIPopupSet( nil)
);endwhen
);end-prog
);endprocedure

;-----------------------define master component location-------------------

(defun _ASsetsymmaster ( )
(prog ()
        _ASPopUpA()
        setq( efound  nil)
while( (efound == nil) && (fini == nil)
        axlMsgPut("Select Key Component.")
        good = nil
        mpinl = nil
        pnloc = nil
        axlSetFindFilter( ?enabled (list "symbols" )
                          ?onButtons (list "symbols"))
        axlOpenFindFilter()
        if( fini ==  nil && axlSingleSelectPoint( ) then
                elem = axlGetSelSet()
                axlMsgPut( "Key Component %L Selected." car(elem)->refdes)
        else
                 if( fini == nil then axlMsgPut( "Nothing Found, Select Again."))
        );end-if
        if( fini == nil then
                axlHighlightObject( elem)
                if(_ASFormData->top == t && (car elem)->isMirrored == nil then
                        good = t
                );endif
                if(_ASFormData->bottom == t && (car elem)->isMirrored == t then
                        good = t
                );endif
               
                if(_ASFormData->both == t then good = t)
                if(good == t then
                        ;---------stor current data
                        setq(locat (car elem)->xy)
                        setq(cmpid (car elem)->refdes)
                        setq(cmpname (car elem)->name)
                        setq(cmptype (car elem)->type)
                        setq(cmprot (car elem)->rotation)
                        setq(cmpmir (car elem)->isMirrored)
                        efound = t
                        if( _ASFormData->pin == t then
                                r = 1
                                setq( mpinl car(elem)->pins)
                                while( nthelem( r mpinl) != nil
                                        if( nthelem( r mpinl)->number == "1" then
                                                setq( pnloc nthelem( r mpinl)->xy)
                                        )
                                ++r
                                )
                                if( pnloc == nil then
                                        efound == nil
                                        axlMsgPut("Component Selected Has No Pin 1.")
                                        axlMsgPut("Reset Parameters And Try Again.")
                                )
                        )
                                       
                else
                        axlDehighlightObject( elem)
                        axlMsgPut( "Selected Component is not on Selected Layer.")
                        axlSubSelectAll()
                );endif
        );endif
);end-while
axlCancelEnteRFun()
);end-prog
);end-defun
;-------------------select components by group-----------------------
(defun  _ASselectGrp ()
(prog ()
if( efound == t && cmpgrp == nil then
        grsel = nil
              _ASPopUpB()
               axlSetFindFilter( ?enabled (list "symbols" )
                                 ?onButtons (list "symbols"))
              axlOpenFindFilter()
        while( (grsel == nil && efound == t)
                       axlMsgPut("Select Component to be Aligned.")
                       good = nil
               
                if( grsel == nil then
                               if( axlSingleSelectPoint( ) then
                                       setq( gelem axlGetSelSet())
                                       axlMsgPut( "Component %L Group Selected." car(gelem)->refdes)
                               else
                                       if( grsel == nil then axlMsgPut( "Nothing Found, Select Again."))
                               );end-if
                       );end-if
                       if(_ASFormData->top == t && (car gelem)->isMirrored == nil then
                                good = t
                       );endif
                       if(_ASFormData->bottom == t && (car gelem)->isMirrored == t then
                                good = t
                       );endif
                       if(_ASFormData->both == t then good = t)
                if( grsel == nil then
                               if(good == t then
                                if( (car gelem)->type == "PACKAGE" then
                                        cmpgrp=cons( nthelem( 1 gelem) cmpgrp)
                                        axlHighlightObject( cons( car(elem) cmpgrp))
                                else
                                        axlMsgPut( "Component Not A PACKAGE Type")
                                        axlDehighlightObject( gelem)
                                );end-if

                         else       
                                axlMsgPut( "Component Is Not On Appropriate Layer")
                                axlDehighlightObject( gelem)
                        );endif
                );endif
        );end-while
        return( cmpgrp)
);end-if
axlCancelEnterFun()
);end-prog
);end-defun
;-------------------select by vertical orientation------------------
(defun _ASVertSelTol ()
(prog ()
if( efound == t then
        i = 1
        good = nil
        if( _ASFormData->pin == t then
                mlocat = pnloc
        else
                mlocat = locat
        )
        setq(allsym axlDBGetDesign()->symbols)
        setq(allcmp axlDBGetDesign()->components)
        while( nthelem( i allsym) != nil
                if( nthelem( i allsym)->type == "PACKAGE" && nthelem( i allsym)->refdes != car(elem)->refdes then
                        if( _ASFormData->pin == t then
                                r = 1
                                setq( tpinl nthelem( i allsym)->pins)
                                while( nthelem( r tpinl) != nil
                                        if( nthelem( r tpinl)->number == "1" then
                                                setq( tlocat nthelem( r tpinl)->xy)
                                        )
                                        ++r
                                )
                        else
                                setq( tlocat (nthelem(i allsym)->xy))
                        )
                        if( (car tlocat) <= ( car mlocat)+_ASFormData->tol && (car tlocat) >= ( car mlocat)-_ASFormData->tol then
                                        if(_ASFormData->top == t && (car gelem)->isMirrored == nil then
                                                good = t
                                        );endif
                                        if(_ASFormData->bottom == t && (car gelem)->isMirrored == t then
                                                        good = t
                                        );endif
                                        if(_ASFormData->both == t then good = t)
                                setq( srefdes (nthelem(i allsym)->refdes))
                                h = 1
                                while( nthelem( h allcmp) != nil
                                        if( (nthelem( h allcmp)->name) == srefdes && good == t then
                                                if( _ASFormData->class == "Any" || nthelem( h allcmp)->class == _ASFormData->class then
                                                        cmpgrp=cons(nthelem( i allsym) cmpgrp)
                                                        axlHighlightObject( cons( car(elem) cmpgrp))
                                                        axlMsgPut( "Component %L Selected." srefdes)
                                                );end-if
                                        );endif
                                        ++h       
                                );end-while
                        );end-if
                        good = nil
                );end-if
                ++i
        );endwhile
        efound = nil
        fini = nil
);end-if
return( cmpgrp)
);end-prog
);end-defun
;-------------------select by horizontal orientation------------------
(defun _ASHorzSelTol ()
(prog ()
        i = 1
        good = nil
        if( _ASFormData->pin == t then
                mlocat = pnloc
        else
                mlocat = locat
        )
        setq(allsym axlDBGetDesign()->symbols)
        setq(allcmp axlDBGetDesign()->components)
        while( nthelem( i allsym) != nil
                if( nthelem( i allsym)->type == "PACKAGE" then
                        if( _ASFormData->pin == t then
                                r = 1
                                setq( tpinl nthelem( i allsym)->pins)
                                while( nthelem( r tpinl) != nil
                                        if( nthelem( r tpinl)->number == "1" then
                                                setq( tlocat nthelem( r tpinl)->xy)
                                        )
                                        ++r
                                )
                        else
                                setq( tlocat (nthelem(i allsym)->xy))
                        )
                        if((cadr tlocat) <= ( cadr locat)+_ASFormData->tol && (cadr tlocat) >= ( cadr locat)-_ASFormData->tol then
                                        if(_ASFormData->top == t && (car gelem)->isMirrored == nil then
                                                good = t
                                        );endif
                                        if(_ASFormData->bottom == t && (car gelem)->isMirrored == t then
                                                        good = t
                                        );endif
                                        if(_ASFormData->both == t then good = t)
                                setq( srefdes (nthelem(i allsym)->refdes))
                                h = 1
                                while( nthelem( h allcmp) != nil
                                        if( ( nthelem( h allcmp)->name) == srefdes && good == t then
                                                if( _ASFormData->class == "Any" || nthelem( h allcmp)->class == _ASFormData->class then
                                                        cmpgrp=cons(nthelem( i allsym) cmpgrp)
                                                        axlHighlightObject( cons( car(elem) cmpgrp))
                                                        axlMsgPut( "Component %L Selected" srefdes)
                                                );end-if
                                        );end-if
                                ++h       
                                );end-while
                        );end-if
                );end-if
                ++i
        );end-while
        efound = nil
        fini = nil
        return( cmpgrp)
);end-prog
);end-defun
;-------------------select by window ---------------------------------
(defun _ASWindSel ()
(prog ()
if( efound == t then
        i = 1
        good = nil
        axlSetFindFilter( ?enabled (list "symbols" )
                          ?onButtons (list "symbols"))
        axlOpenFindFilter()
        axlSingleSelectBox()
        allsym = axlGetSelSet()
        if( allsym == nil then axlMsgPut( "No Elements Found."))
        setq(allcmp axlDBGetDesign()->components)
        while( nthelem( i allsym) != nil
                if( nthelem( i allsym)->type == "PACKAGE" then
                                if(_ASFormData->top == t && (car gelem)->isMirrored == nil then
                                       good = t
                                );endif
                                if(_ASFormData->bottom == t && (car gelem)->isMirrored == t then
                                                good = t
                                );endif
                                if(_ASFormData->both == t then good = t)
                        setq( srefdes (nthelem(i allsym)->refdes))
                        h = 1
                        while( nthelem( h allcmp) != nil
                                if( ( nthelem( h allcmp)->name) == srefdes && good == t then
                                        if( _ASFormData->class == "Any" || nthelem( h allcmp)->class == _ASFormData->class then
                                                cmpgrp=cons(nthelem( i allsym) cmpgrp)
                                                axlHighlightObject( nthelem( i allsym))
                                                axlMsgPut( "Component %L Window Selected." srefdes)
                                        );end-if
                                );end-if
                        ++h       
                        );end-while
                );end-if
                good = nil
        ++i       
        );end-while
);endif
        efound = nil
        return( cmpgrp)
);end-prog
);end-defun
;-------------------relocate vertical position -----------------------
       
(defun _ASMoveVertComp (cmpgrp)
(prog ()
        i = 1
        tmpnew= nil
        ocmpdata=nil
        ocmpmir=nil
        ocmprot=nil
        olocat=nil
        while( nthelem( i cmpgrp) != nil
                if( nthelem( i cmpgrp)->refdes != cmpid then
                        cmpdata=nil
                        tlocat = nil
                        setq(tlocat nthelem( i cmpgrp)->xy)
                        setq(tcmpid nthelem( i cmpgrp)->refdes)
                        setq(tcmpname nthelem( i cmpgrp)->name)
                        setq(tcmptype nthelem( i cmpgrp)->type)
                        setq(tcmprot nthelem( i cmpgrp)->rotation)
                        setq(tcmpmir nthelem( i cmpgrp)->isMirrored)
                        cmpdata=cons(tcmpid cmpdata)
                        cmpdata=cons(tcmptype cmpdata)
                        cmpdata=cons(tcmpname cmpdata)
                        ocmpdata = cons( cmpdata ocmpdata)
                        ocmpmir = cons( tcmpmir ocmpmir)
                        olocat = cons( tlocat olocat)
                        ocmprot = cons( tcmprot ocmprot)
                        nlocat=nil
                        plocat = nil
                        npinl = nil
                        axlMsgPut("%L " npinl)
                        ;-------------define the new vertical orientation
                        if( _ASFormData->pin == t then
                                r = 1
                                npinl=nthelem( i cmpgrp)->pins
                                while( nthelem( r npinl) != nil
                                        if( nthelem( r npinl)->number == "1" then
                                                plocat= nthelem( r npinl)->xy
                                                nlocat=cons(nthelem( 2 tlocat) nlocat)
                                                voffs = (nthelem( 1 tlocat) - nthelem(1 plocat))
                                                nlocat=cons(( car(pnloc) + voffs) nlocat)
                                        )
                                        ++r
                                )
                        else;
                                nlocat=cons(nthelem( 2 tlocat) nlocat)
                                nlocat=cons(nthelem( 1 locat) nlocat)
                        )
                        ;-------------delete present stuff
                        z = 1
                        setq( pindat nthelem( i cmpgrp)->pins)
                        while( nthelem( z pindat) != nil
                                h=1
                                setq(pinsel nthelem( z pindat)->branch->children)
                                while( nthelem( h pinsel) != nil
                                        if( nthelem( h pinsel)->objType == "via" then
                                                dellst = cons( nthelem( h pinsel) dellst)
                                        )
                                        if( nthelem( h pinsel)->objType == "path" then
                                        dellst = cons( nthelem( h pinsel) dellst)
                                        )
                                        ++h
                                );endwhile
                                axlDeleteObject(dellst)
                                dellst = nil
                                ++z
                        );endwhile
                        axlDehighlightObject(nthelem( i cmpgrp))
                        axlDeleteObject(nthelem( i cmpgrp))
                        if( _ASFormData->pin == t then
                                r = 1
                                while( nthelem( r npinl) != nil
                                        axlDBRefreshId( nthelem( r npinl))
                                        ++r
                                );end-while
                        )
                        ;-------------add newer symbol
                        tmpnew = cons( car(axlDBCreateSymbol( cmpdata nlocat tcmpmir tcmprot)) tmpnew)
                );endif
                ++i
        );endwhile
        axlDehighlightObject( elem)
        setq( elem nil)
        setq( grsel nil)
        setq( cmpgrp nil)
);end-prog
);end-defun
;-------------------relocate Hoizontal position ----------------------
       
(defun _ASMoveHorzComp (cmpgrp)
(prog ()
        i = 1
        tmpnew= nil
        ocmpdata=nil
        ocmpmir=nil
        ocmprot=nil
        olocat=nil
        while( nthelem( i cmpgrp) != nil
                if( nthelem( i cmpgrp)->refdes != cmpid then
                        cmpdata=nil
                        setq(tlocat nthelem( i cmpgrp)->xy)
                        setq(tcmpid nthelem( i cmpgrp)->refdes)
                        setq(tcmpname nthelem( i cmpgrp)->name)
                        setq(tcmptype nthelem( i cmpgrp)->type)
                        setq(tcmprot nthelem( i cmpgrp)->rotation)
                        setq(tcmpmir nthelem( i cmpgrp)->isMirrored)
                        cmpdata=cons(tcmpid cmpdata)
                        cmpdata=cons(tcmptype cmpdata)
                        cmpdata=cons(tcmpname cmpdata)
                        ocmpdata = cons( cmpdata ocmpdata)
                        ocmpmir = cons( tcmpmir ocmpmir)
                        olocat = cons( tlocat olocat)
                        ocmprot = cons( tcmprot ocmprot)
                        nlocat=nil
                        ;-------------define the new horizontal orientation
                        if( _ASFormData->pin == t then
                                r = 1
                                setq( npinl nthelem( i cmpgrp)->pins)
                                while( nthelem( r npinl) != nil
                                        if( nthelem( r npinl)->number == "1" then
                                                setq( plocat nthelem( r npinl)->xy)
                                                voffs= nthelem( 2 tlocat) - nthelem(2 plocat)
                                                nlocat=cons( ( cadr(pnloc) + voffs ) nlocat)
                                                nlocat=cons( nthelem( 1 tlocat) nlocat)
                                        );endif
                                        ++r
                                );endwhile
                        else
                                nlocat=cons(nthelem( 2 locat) nlocat)
                                nlocat=cons(nthelem( 1 tlocat) nlocat)
                        );endif
                        ;-------------delete present stuff
                        z = 1
                        setq( pindat nthelem( i cmpgrp)->pins)
                        while( nthelem( z pindat) != nil
                                h=1
                                setq(pinsel nthelem( z pindat)->branch->children)
                                while( nthelem( h pinsel) != nil
                                        if( nthelem( h pinsel)->objType == "via" then
                                                dellst = cons( nthelem( h pinsel) dellst)
                                        )
                                        if( nthelem( h pinsel)->objType == "path" then
                                                dellst = cons( nthelem( h pinsel) dellst)
                                        )
                                        ++h
                                )
                                axlDeleteObject(dellst)
                                dellst = nil
                                ++z
                        )
                        axlDehighlightObject(nthelem( i cmpgrp))
                        axlDeleteObject(nthelem( i cmpgrp))
                        if( _ASFormData->pin == t then
                                r = 1
                                while( nthelem( r npinl) != nil
                                        axlDBRefreshId( nthelem( r npinl))
                                        ++r
                                );end-while
                        )
                        ;-------------add newer symbol
                        tmpnew = cons( car(axlDBCreateSymbol( cmpdata nlocat tcmpmir tcmprot)) tmpnew)
                );endif
                ++i
        );endwhile
        axlDehighlightObject( elem)
        setq( elem nil)
        setq( grsel nil)
);end-prog
);end-defun

;-------------------Parameter form data ------------------
defun( _ASInitParmForm  () ;
(prog ()
(let ( form)
        form = axlFormCreate( (gensym) "align_sym.form" '(se outer) '_ASParmCallBk t )
        _ASFormPtr = form
        if( ( _ASFormData == nil ) then
                setq( _ASFormData  t)
                (axlFormBuildPopup form "class" '(("Any" "Any") ("IC" "IC") ("IO" "IO") ("DISCRETE" "DISCRETE")))
                (axlFormSetField form "class" "Any")
                putprop( _ASFormData  "Any" 'class)
                (axlFormSetField form "horizontal" t)
                putprop( _ASFormData t 'horizontal)
                (axlFormSetField form "vertical" nil)
                putprop( _ASFormData nil 'vertical)
                (axlFormSetField form "pin" nil)
                putprop( _ASFormData nil 'pin)
                (axlFormSetField form "origin" t)
                putprop( _ASFormData t 'origin)
                (axlFormSetField form "top" t)
                putprop( _ASFormData t 'top)
                (axlFormSetField form "bottom" nil)
                putprop( _ASFormData nil 'bottom)
                (axlFormSetField form "both" nil)
                putprop( _ASFormData nil 'both)
                (axlFormSetField form "group" t)
                putprop( _ASFormData t 'group)
                (axlFormSetField form "window" nil)
                putprop( _ASFormData nil 'window)
                (axlFormSetField form "tolerance" nil)
                putprop( _ASFormData nil 'tolerance)
                (axlFormSetField form "tol" 250.000 )
                putprop( _ASFormData 250.000 'tol)
        axlFormDisplay( form)
        );end-if
);end-let
);end-prog
);end-defun

;---------------Form Call Back-----------------------------------------------
defun( _ASParmCallBk (form)
case( get(_ASFormPtr 'curField)
        ( "class" putprop( _ASFormData get(_ASFormPtr 'curValue) 'class))
        ( "horizontal" putprop( _ASFormData get(_ASFormPtr 'curValue) 'horizontal))       
        ( "vertical" putprop( _ASFormData get(_ASFormPtr 'curValue) 'vertical))       
        ( "pin" putprop( _ASFormData get(_ASFormPtr 'curValue) 'pin))       
        ( "origin" putprop( _ASFormData get(_ASFormPtr 'curValue) 'origin))       
        ( "top" putprop( _ASFormData get(_ASFormPtr 'curValue) 'top))       
        ( "bottom" putprop( _ASFormData get(_ASFormPtr 'curValue) 'bottom))       
        ( "both" putprop( _ASFormData get(_ASFormPtr 'curValue) 'both))       
        ( "group" putprop( _ASFormData get(_ASFormPtr 'curValue) 'group))       
        ( "window" putprop( _ASFormData get(_ASFormPtr 'curValue) 'window))       
        ( "tolerance" putprop( _ASFormData get(_ASFormPtr 'curValue) 'tolerance))       
        ( "tol" putprop( _ASFormData get(_ASFormPtr 'curValue) 'tol))       
        ( "done" _ASDone() )
        ( "cancel"  _ASCancel() )
);case
);end-defun
;--------------- Pop up while selecting but not by group --------------------
defun( _ASPopUpA ()
        popupA = axlUIPopupDefine( nil
                        (list (list "Done" '_ASDone)
                                (list "Oops" '_ASoops)
                                (list "Cancel" '_ASCancel)))
        axlUIPopupSet( popupA )
);end-defun
;--------------- Pop up for group selection --------------------------------
defun( _ASPopUpB ()
        popupB = axlUIPopupDefine( nil
                (list (list "Complete" '_AScomplete)
                        (list "Oops" '_ASoops)
                        (list "Cancel" '_ASCancel)))
        axlUIPopupSet( popupB )
);end-defun
;--------------- Cancel Call--------------------------------
defun( _ASCancel ()
(prog ()
        i=1
        pindat = nil
        pinsel = nil
        dellst = nil
        while( nthelem( i tmpnew) != nil
                z = 1
                setq( pindat nthelem( i tmpnew)->pins)
                while( nthelem( z pindat) != nil
                        h=1
                        setq(pinsel nthelem( z pindat)->branch->children)
                        while( nthelem( h pinsel) != nil
                                if( nthelem( h pinsel)->objType == "via" then
                                        dellst = cons( nthelem( h pinsel) dellst)
                                )
                                if( nthelem( h pinsel)->objType == "path" then
                                        dellst = cons( nthelem( h pinsel) dellst)
                                )
                                ++h
                        )
                        axlDeleteObject(dellst)
                        dellst = nil
                        ++z
                );endwhile
                axlDeleteObject(nthelem( i tmpnew))
                if( _ASFormData->pin == t then
                        r = 1
                        while( nthelem( r npinl) != nil
                                axlDBRefreshId( nthelem( r npinl))
                                ++r
                        );end-while
                )
                ++i
        );end-while
        i = 1
        while( nthelem( i ocmpdata) != nil
                        axlDBCreateSymbol(
                        nthelem(i ocmpdata)
                        nthelem(i olocat)
                        nthelem(i ocmpmir)
                        nthelem(i ocmprot)
                        )
                        ++i
        );end-while
        elem = nil
        cmpgrp = nil
        _ASDone()
);end-prog
);endfun
;----------------- DONE Call--------------------------------
defun( _ASDone ()
(prog ()
        setq( grsel t)
        if( elem != nil then axlDehighlightObject( elem))
        if( cmpgrp != nil then axlDehighlightObject( cmpgrp))
        setq( grsel t)
        setq( fini t)
        if(isFile("align_sym.form") then
                deleteFile("align_sym.form")
        )
        setq( elem nil)
        setq( cmpgrp nil)
        axlFormClose(_ASFormPtr)
        axlCancelEnterFun()
        axlClearSelSet()
        axlCloseFindFilter()
        axlUIPopupSet( nil)
)
);end-fun
;--------------- Complete Picks ----------------------------
defun( _AScomplete ()
(prog ()
        setq( grsel t)
        axlCancelEnterFun()
        _ASPopUpA()
        setq( efound nil)
)
);end-defun
;--------------- Oops command-------------------------------
defun( _ASoops ()
(prog ()
        if( cmpgrp != nil then
                axlDehighlightObject( car( cmpgrp))
                cmpgrp = cdr(cmpgrp)
                good = nil
                gelem = nil
        else
                axlDehighlightObject( elem)
                elem = nil
                efound = nil
        );end-if
        if( elem == nil then axlMsgPut( "Nothing In Buffer To Oops."))
        axlCancelEnterFun()
        return( cmpgrp)
);endprog
);end-defun               
;--------------- initialize variables -------------------
defun( _ASInitVar ()
(prog ()
elem = nil
mpinl = nil
pnloc = nil
plocat = nil
mlocat = nil
gelem = nil
dellst = nil
pindat = nil
pinsel = nil
tmpnew = nil
ocmpdata=nil
ocmpmir=nil
ocmprot=nil
olocat=nil
_ASFormData = nil
_ASFormPtr = nil
fini = nil
tol = 0
axlUIPopupSet( nil)
fini = nil
cmpgrp = nil
);end-prog
);end-defun
;-----------------create form file -------------
defun( _ASCreateFormFile ()
       
        frmfle = outfile("align_sym.form")
        fprintf( frmfle "FILE_TYPE=FORM_DEFN VERSION=2\nFORM\nFIXED\n")
        fprintf( frmfle "PORT 67 13\nHEADER \"Component Alignment Form\"\n")
        fprintf( frmfle "POPUP <CURSPOP>\"Any\"\"1\",\"IC\"\"2\",\"IO\"\"3\",\"DISCRETE\"\"4\".\n")
        fprintf( frmfle "POPUP <PRINTP>\"to File\"\"0\",\"to Printer\"\"1\",\"to Script\"\"2\".\n")
        fprintf( frmfle "\nTILE\n\n")
        fprintf( frmfle "TEXT \"Class:\"\nTLOC 32 18\nTGROUP \"Select Mode\"\nENDTEXT\n")

        fprintf( frmfle "FIELD top\nFLOC 3 12\n FGROUP\"Alignment Layer\"\nCHECKLIST\"Top\" \"alg\"\n ENDFIELD\n\n")
        fprintf( frmfle "FIELD bottom\nFLOC 3 14\nFGROUP \"Alignment Layer\"\nCHECKLIST \"Bottom\" \"alg\"\nENDFIELD\n\n")
        fprintf( frmfle "FIELD both\nFLOC 3 16\nFGROUP \"Alignment Layer\"\nCHECKLIST \"Both\" \"alg\"\nENDFIELD\n\n")
        fprintf( frmfle "FIELD horizontal\nFLOC 3 5\nFGROUP \"Direction\"\nCHECKLIST \"Horizontal\" \"dirg\"\nENDFIELD\n\n")
        fprintf( frmfle "FIELD vertical\nFLOC 3 7\nFGROUP \"Direction\"\nCHECKLIST \"Vertical\" \"dirg\"\nENDFIELD\n\n")
        fprintf( frmfle "FIELD origin\nFLOC  35 7\nFGROUP \"Alignment Point\" \nCHECKLIST \"Origin\" \"alpg\"\nENDFIELD\n\n")
        fprintf( frmfle "FIELD pin\nFLOC  35 5\nFGROUP \"Alignment Point\" \nCHECKLIST \"Pin 1\" \"alpg\"\nENDFIELD\n\n")
        fprintf( frmfle "FIELD group\nFLOC  25 12\nFGROUP \"Select Mode\"\nCHECKLIST \"Group\" \"slmg\"\nENDFIELD\n\n")
        fprintf( frmfle "FIELD window\nFLOC  25 14\nFGROUP \"Select Mode\"\nCHECKLIST \"Window\" \"slmg\"\nENDFIELD\n\n")
        fprintf( frmfle "FIELD tolerance\nFLOC  25 16\nFGROUP \"Select Mode\"\nCHECKLIST \"Tolerance\" \"slmg\"\nENDFIELD\n\n")
        fprintf( frmfle "FIELD tol\nFLOC  40 16\nFGROUP \"Select Mode\"\nREALFILLIN 10 10\n DECIMAL 4\nENDFIELD\n\n")
        fprintf( frmfle "FIELD class\nFLOC 40 18\nFGROUP \"Select Mode\"\nENUMSET 12\nPOP \"CURSPOP\"\nENDFIELD\n\n")
        fprintf( frmfle "FIELD done\nFLOC 2 22\n MENUBUTTON \"Done\" 9 3\nENDFIELD\n\n")
        fprintf( frmfle "FIELD print\nFLOC 28 22\n MENUBUTTON \"Print\" 9 3\n POP \"PRINTP\"\nENDFIELD\n\n")
        fprintf( frmfle "FIELD cancel\nFLOC 55 22\n MENUBUTTON \"Cancel\" 9 3\nENDFIELD\n\n")

        fprintf( frmfle "GROUP \"Alignment Layer\"\nGLOC 2 10\nGSIZE 20 11\nENDGROUP\n\n")
        fprintf( frmfle "GROUP \"Direction\"\nGLOC 2 2\nGSIZE 30 8\nENDGROUP\n\n")
        fprintf( frmfle "GROUP \"Alignment Point\"\nGLOC 34 2\nGSIZE 30  8\nENDGROUP\n")
        fprintf( frmfle "GROUP \"Select Mode\"\nGLOC 24 10\nGSIZE 40 11\nENDGROUP\n\n")
        fprintf( frmfle "\nENDTILE\n\nENDFORM\n")
        close(frmfle)
);end-defun


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

本版积分规则

关闭

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

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-9 14:07 , Processed in 0.093750 second(s), 24 queries , Gzip On.

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

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

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