Home > Community > Forums > PCB SKILL > Axlairgap help?

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 Axlairgap help? 

Last post Tue, Feb 11 2014 11:10 PM by luanvn81. 2 replies.
Started by luanvn81 11 Feb 2014 06:19 PM. Topic has 2 replies and 1836 views
Page 1 of 1 (3 items)
Sort Posts:
  • Tue, Feb 11 2014 6:19 PM

    • luanvn81
    • Top 150 Contributor
    • Joined on Fri, Sep 18 2009
    • dnai, Vietnam
    • Posts 62
    • Points 925
    Axlairgap help? Reply

     Hi all.

      I try to get air gap between a route keepout shape with a shape's void by using axl airgap and the result  always return nil. And I don't know where is wrong in my code, I have measured them in layout and airgap is exist.

     The code is posted below,  please help me repair it.

    ;#### Main Process ####
    foreach(void AllVoids    ; voids in shapes on ETCH/BOTTOM LAYER
    void_bBox = void->bBox
    void_bBox_x1 = xCoord(car(void_bBox))
    void_bBox_y1 = yCoord(car(void_bBox))
    void_bBox_x2 = xCoord(lastelem(void_bBox))
    void_bBox_y2 = yCoord(lastelem(void_bBox))
    void_xy = axlDBAltOrigin('center void)

    void_size_x = max(void_bBox_x1, void_bBox_x2) - min(void_bBox_x1, void_bBox_x2)
    void_size_y = max(void_bBox_y1, void_bBox_y2) - min(void_bBox_y1, void_bBox_y2)

    if(void_size_x > minimum_size_shape || void_size_y > minimum_size_shape then

    check_area = list(axlMXYSub(car(void_bBox) add_value_list) axlMXYAdd(lastelem(void_bBox) add_value_list))

    axlVisibleDesign(nil)
    axlVisibleLayer(keepout_layer t) ; ROUTE KEEPOUT/BOTTOM layer
    axlShell("redisplay")
    axlSetFindFilter(?enabled '(noall Shapes ) ?onButtons '(noall Shapes))
    data_in_box = axlGetSelSet(axlSingleSelectBox(check_area))
    axlClearSelSet()

    if(length(data_in_box) > 0 then
        foreach(item data_in_box
            air_gap = axlAirGap(void item nil 'anyLayer)
            ;if(air_gap < airgap_value then
                ;axlDeleteObject(item)    
                fprintf(writeOutFile "%L %L\n", air_gap, void_xy)
            ;);end if
        );end foreach
    );end if
    );end if

    );end foreach

    Tks,

    Luan

     

    • Post Points: 20
  • Tue, Feb 11 2014 9:11 PM

    • edaMac
    • Not Ranked
    • Joined on Fri, Jan 18 2013
    • Olongapo City, Philippines
    • Posts 6
    • Points 360
    Re: Axlairgap help? Reply
    I think you cannot use objType void for axlAirGap, even in manual measure you cannot use void as input. But you can use other segs or even create a temporary shape for the void for the purpose of axlAirGap. Hope this helps.
    • Post Points: 20
  • Tue, Feb 11 2014 11:10 PM

    • luanvn81
    • Top 150 Contributor
    • Joined on Fri, Sep 18 2009
    • dnai, Vietnam
    • Posts 62
    • Points 925
    Re: Axlairgap help? Reply

    Hi edaMac!

      Thank for your reply, as your advice, I convert void dbid into r_path by function axlDB2Path, and then create shape with that r_path. After that, I can use axlairgap as usual.

    Tks,

    Luan.

    • Post Points: 5
Page 1 of 1 (3 items)
Sort Posts:
Started by luanvn81 at 11 Feb 2014 06:19 PM. Topic has 2 replies.