# Active Bugs — FlatCAM Bugs 1 documentation

### Navigation

- index
- next |
- previous |
- FlatCAM Bugs 1 documentation »

# Active Bugs

## Drill number parsing

The screenshot below show the problematic file:

The file reads:

    G81
    M48
    METRIC
    T1C00.127
    T2C00.889
    T3C00.900
    T4C01.524
    T5C01.600
    T6C02.032
    T7C02.540
    %
    T002
    X03874Y08092
    X03874Y23333
    X06414Y08092
    X06414Y23333
    X08954Y08092
    ...
    T007
    X02664Y03518
    X02664Y41618
    X76324Y03518
    X76324Y41618
    ...

After scaling by 10.0:

The code involved is:

    def __init__(self):
        ...
        self.zeros = "T"
        ...

    def parse_number(self, number_str):

        if self.zeros == "L":
            match = self.leadingzeros_re.search(number_str)
            return float(number_str)/(10**(len(match.group(2))-2+len(match.group(1))))
        else:  # Trailing
            return float(number_str)/10000

The numbers are being divided by 10000. If “L” had been specified, the following regex would have applied:

    # Parse coordinates
    self.leadingzeros_re = re.compile(r'^(0*)(\d*)')

Then the number 02664 would have been divided by 10**(4-2+1) = 10**3 = 1000, which is what is desired.

Leading zeros weren’t specified, but www.excellon.com says:

> The CNC-7 uses leading zeros unless you specify otherwise through a part program or the console.

Note

The parser has been modified to default to leading zeros.

### Navigation

- index
- next |
- previous |
- FlatCAM Bugs 1 documentation »