Kirjautuminen

Haku

Tehtävät

Kilpailu

Putka Open 2025
Kilpailu on päättynyt.

Keskustelu: Yleinen keskustelu: DXF laskuri

Lettumixu [31.12.2025 11:52:56]

#

Moi

Oisko kellään kiinnostusta auttaa tekemään tällainen pieni laskuri jolla saisi dxf tiedostoista irti geometrian viivanpituuden ja suljettujen profiilien lukumäärän? Windows pohjainen exe sovellus oli ajatuksen drag ja drop toiminnolla.

Alla tekoälyn tekemä ohjelman pätkä pyhthon kielellä mutta itse en tästä saa mitään aikaan.

Olisin erittäin kiitollinen jos joku voisi auttaa tekemään tälle testiohjelman niin voisi testata onko tästä hyötyä.

import ezdxf
import sys
import os

def laske_dxf(tiedostopolku):
    try:
        doc = ezdxf.readfile(tiedostopolku)
        msp = doc.modelspace()

        kokonaispituus = 0.0
        suljetut_count = 0

        for e in msp:
            if e.dxftype() == 'LINE':
                kokonaispituus += e.dxf.start.distance(e.dxf.end)
            elif e.dxftype() == 'CIRCLE':
                kokonaispituus += 2 * 3.14159 * e.dxf.radius
                suljetut_count += 1
            elif e.dxftype() == 'LWPOLYLINE' or e.dxftype() == 'POLYLINE':
                # ezdxf:n flattening laskee myös kaaret oikein
                path = list(e.flattening(distance=0.01))
                pituus = sum(p1.distance(p2) for p1, p2 in zip(path, path[1:]))
                kokonaispituus += pituus
                if e.is_closed:
                    suljetut_count += 1

        print(f"Tiedosto: {os.path.basename(tiedostopolku)}")
        print(f"Viivojen kokonaispituus: {kokonaispituus:.2f} yksikköä")
        print(f"Suljettujen profiilien määrä: {suljetut_count}")
    except Exception as e:
        print(f"Virhe käsiteltäessä tiedostoa: {e}")

if __name__ == "__main__":
    # Jos tiedosto pudotetaan exe:n päälle, se löytyy sys.argv[1] kohdasta
    if len(sys.argv) > 1:
        for polku in sys.argv[1:]:
            laske_dxf(polku)
    else:
        print("Pudota DXF-tiedosto tämän ohjelman päälle.")

    input("\nPaina Enter sulkeaksesi...")

jalski [31.12.2025 13:56:40]

#

Kerrotko vähän enemmän käyttötarkoituksesta? QCAD:in mukana tulee komentorivipohjaiset apuohjelmat, joiden avulla saat tiedot kätevästi ulos CSV-muodossa. Itse käytin näitä apuna muodostaessani node -ja edge-listat graafia varten lyhimmän reitin hakua varten pohjakuvassa.

Lettumixu [31.12.2025 14:33:46]

#

jalski kirjoitti:

Kerrotko vähän enemmän käyttötarkoituksesta? QCAD:in mukana tulee komentorivipohjaiset apuohjelmat, joiden avulla saat tiedot kätevästi ulos CSV-muodossa. Itse käytin näitä apuna muodostaessani node -ja edge-listat graafia varten lyhimmän reitin hakua varten pohjakuvassa.

Tarkoitus on saada selville mahdollisimman helposti ja nopeasti dxf kuvista nuo viivapituudet ja suljettujen profiilien lukumäräät.

Vastaus

Muista lukea kirjoitusohjeet.
Tietoa sivustosta