diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..53bc39b
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,26 @@
+# For more information, please refer to https://aka.ms/vscode-docker-python
+FROM python:3.8-slim-buster
+
+
+EXPOSE 5003
+
+# Keeps Python from generating .pyc files in the container
+ENV PYTHONDONTWRITEBYTECODE=1
+
+# Turns off buffering for easier container logging
+ENV PYTHONUNBUFFERED=1
+
+# Install pip requirements
+COPY requirements.txt .
+RUN pip install --no-cache-dir -r requirements.txt
+
+WORKDIR /app
+COPY . /app
+
+# Creates a non-root user with an explicit UID and adds permission to access the /app folder
+# For more info, please refer to https://aka.ms/vscode-docker-python-configure-containers
+RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
+USER appuser
+
+# During debugging, this entry point will be overridden. For more information, please refer to https://aka.ms/vscode-docker-python-debug
+CMD ["python", "test.py"]
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/body.xlsx:Zone.Identifier b/body.xlsx:Zone.Identifier
new file mode 100644
index 0000000..8b7e01e
--- /dev/null
+++ b/body.xlsx:Zone.Identifier
@@ -0,0 +1,4 @@
+[ZoneTransfer]
+ZoneId=3
+ReferrerUrl=https://brana.imtts.cz/webmail/
+HostUrl=https://brana.imtts.cz/webmail/api/download/attachment/imtts.cz/navratil/3582c3e0-1797-492e-b6b6-60c6039c7e90/6369/0-1/body.xlsx?version=38476&sid=60d37f31d4a485d454612aa752d8d91778d4e5b1ac4adddae508fdef42317af8&mode=view
diff --git a/body_advanced.xlsx b/body_advanced.xlsx
new file mode 100644
index 0000000..8897be3
Binary files /dev/null and b/body_advanced.xlsx differ
diff --git a/body_easy.xlsx b/body_easy.xlsx
new file mode 100644
index 0000000..61f3e02
Binary files /dev/null and b/body_easy.xlsx differ
diff --git a/compose.debug.yaml b/compose.debug.yaml
new file mode 100644
index 0000000..40f8a20
--- /dev/null
+++ b/compose.debug.yaml
@@ -0,0 +1,12 @@
+services:
+ test:
+ image: test2
+ build:
+ context: .
+ dockerfile: ./Dockerfile
+ command: ["sh", "-c", "pip install debugpy -t /tmp && python /tmp/debugpy --wait-for-client --listen 0.0.0.0:5678 -m flask run --no-debugger --no-reload --host 0.0.0.0 --port 5002"]
+ ports:
+ - 5002:5002
+ - 5678:5678
+ environment:
+ - FLASK_APP=test.py
diff --git a/compose.yaml b/compose.yaml
new file mode 100644
index 0000000..cd50ce1
--- /dev/null
+++ b/compose.yaml
@@ -0,0 +1,8 @@
+services:
+ test:
+ image: test2
+ build:
+ context: .
+ dockerfile: ./Dockerfile
+ ports:
+ - 5003:5003
\ No newline at end of file
diff --git a/excel_to_dxf_bez_zrcadleni.py b/excel_to_dxf_bez_zrcadleni.py
new file mode 100644
index 0000000..eb11945
--- /dev/null
+++ b/excel_to_dxf_bez_zrcadleni.py
@@ -0,0 +1,52 @@
+import ezdxf
+import openpyxl
+import os
+import sys
+
+def nacti_data_z_excelu(soubor, listname="List1"):
+ wb = openpyxl.load_workbook(soubor, data_only=True)
+ sheet = wb[listname]
+ body = []
+
+ for row in sheet.iter_rows(min_row=2, values_only=True):
+ if row[0] and row[1] is not None and row[2] is not None:
+ label = str(row[0])
+ try:
+ x = float(row[1])
+ y = float(row[2])
+ z = float(row[3]) if len(row) > 3 and row[3] is not None else 0
+ body.append((label, x, y, z))
+ except ValueError:
+ continue
+ return body
+
+def exportuj_do_dxf(body, vystup):
+ doc = ezdxf.new()
+ msp = doc.modelspace()
+
+ doc.layers.new(name="BODY", dxfattribs={"color": 7})
+ doc.layers.new(name="POPISKY", dxfattribs={"color": 1})
+
+ for label, x, y, z in body:
+ msp.add_point((x, y, z), dxfattribs={"layer": "BODY"})
+ msp.add_text(
+ label,
+ dxfattribs={"layer": "POPISKY"}).set_pos((x + 2, y + 2), align="LEFT") # Posun textu od bodu
+
+ doc.saveas(vystup)
+
+if __name__ == "__main__":
+ if len(sys.argv) != 3:
+ print("Použití: python excel_to_dxf_hotovy.py vstup.xlsx vystup.dxf")
+ sys.exit(1)
+
+ excel_soubor = sys.argv[1]
+ vystup_nazev = sys.argv[2]
+
+ slozka = os.path.dirname(os.path.abspath(__file__))
+ excel_cesta = os.path.join(slozka, excel_soubor)
+ vystup_cesta = os.path.join(slozka, vystup_nazev)
+
+ body = nacti_data_z_excelu(excel_cesta)
+ exportuj_do_dxf(body, vystup_cesta)
+ print(f"Soubor {vystup_nazev} byl úspěšně vytvořen ve složce: {slozka}")
\ No newline at end of file
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..0cea55a
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,14 @@
+blinker==1.8.2
+click==8.1.8
+et-xmlfile==2.0.0
+ezdxf==0.17
+flask==3.0.3
+importlib-metadata==8.5.0
+itsdangerous==2.2.0
+jinja2==3.1.6
+markupsafe==2.1.5
+openpyxl==3.1.5
+pyparsing==3.1.4
+typing-extensions==4.13.2
+werkzeug==3.0.6
+zipp==3.20.2
diff --git a/templates/upload_form.html b/templates/upload_form.html
new file mode 100644
index 0000000..e174582
--- /dev/null
+++ b/templates/upload_form.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+ converter
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test.dxf b/test.dxf
new file mode 100644
index 0000000..afe6598
--- /dev/null
+++ b/test.dxf
@@ -0,0 +1,4684 @@
+ 0
+SECTION
+ 2
+HEADER
+ 9
+$ACADVER
+ 1
+AC1027
+ 9
+$ACADMAINTVER
+ 70
+105
+ 9
+$DWGCODEPAGE
+ 3
+ANSI_1252
+ 9
+$LASTSAVEDBY
+ 1
+ezdxf
+ 9
+$REQUIREDVERSIONS
+160
+0
+ 9
+$INSBASE
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$EXTMIN
+ 10
+1e+20
+ 20
+1e+20
+ 30
+1e+20
+ 9
+$EXTMAX
+ 10
+-1e+20
+ 20
+-1e+20
+ 30
+-1e+20
+ 9
+$LIMMIN
+ 10
+0.0
+ 20
+0.0
+ 9
+$LIMMAX
+ 10
+420.0
+ 20
+297.0
+ 9
+$ORTHOMODE
+ 70
+0
+ 9
+$REGENMODE
+ 70
+1
+ 9
+$FILLMODE
+ 70
+1
+ 9
+$QTEXTMODE
+ 70
+0
+ 9
+$MIRRTEXT
+ 70
+1
+ 9
+$LTSCALE
+ 40
+1.0
+ 9
+$ATTMODE
+ 70
+1
+ 9
+$TEXTSIZE
+ 40
+2.5
+ 9
+$TRACEWID
+ 40
+1.0
+ 9
+$TEXTSTYLE
+ 7
+Standard
+ 9
+$CLAYER
+ 8
+0
+ 9
+$CELTYPE
+ 6
+ByLayer
+ 9
+$CECOLOR
+ 62
+256
+ 9
+$CELTSCALE
+ 40
+1.0
+ 9
+$DISPSILH
+ 70
+0
+ 9
+$DIMSCALE
+ 40
+1.0
+ 9
+$DIMASZ
+ 40
+2.5
+ 9
+$DIMEXO
+ 40
+0.625
+ 9
+$DIMDLI
+ 40
+3.75
+ 9
+$DIMRND
+ 40
+0.0
+ 9
+$DIMDLE
+ 40
+0.0
+ 9
+$DIMEXE
+ 40
+1.25
+ 9
+$DIMTP
+ 40
+0.0
+ 9
+$DIMTM
+ 40
+0.0
+ 9
+$DIMTXT
+ 40
+2.5
+ 9
+$DIMCEN
+ 40
+2.5
+ 9
+$DIMTSZ
+ 40
+0.0
+ 9
+$DIMTOL
+ 70
+0
+ 9
+$DIMLIM
+ 70
+0
+ 9
+$DIMTIH
+ 70
+0
+ 9
+$DIMTOH
+ 70
+0
+ 9
+$DIMSE1
+ 70
+0
+ 9
+$DIMSE2
+ 70
+0
+ 9
+$DIMTAD
+ 70
+1
+ 9
+$DIMZIN
+ 70
+8
+ 9
+$DIMBLK
+ 1
+
+ 9
+$DIMASO
+ 70
+1
+ 9
+$DIMSHO
+ 70
+1
+ 9
+$DIMPOST
+ 1
+
+ 9
+$DIMAPOST
+ 1
+
+ 9
+$DIMALT
+ 70
+0
+ 9
+$DIMALTD
+ 70
+3
+ 9
+$DIMALTF
+ 40
+0.03937007874
+ 9
+$DIMLFAC
+ 40
+1.0
+ 9
+$DIMTOFL
+ 70
+1
+ 9
+$DIMTVP
+ 40
+0.0
+ 9
+$DIMTIX
+ 70
+0
+ 9
+$DIMSOXD
+ 70
+0
+ 9
+$DIMSAH
+ 70
+0
+ 9
+$DIMBLK1
+ 1
+
+ 9
+$DIMBLK2
+ 1
+
+ 9
+$DIMSTYLE
+ 2
+ISO-25
+ 9
+$DIMCLRD
+ 70
+0
+ 9
+$DIMCLRE
+ 70
+0
+ 9
+$DIMCLRT
+ 70
+0
+ 9
+$DIMTFAC
+ 40
+1.0
+ 9
+$DIMGAP
+ 40
+0.625
+ 9
+$DIMJUST
+ 70
+0
+ 9
+$DIMSD1
+ 70
+0
+ 9
+$DIMSD2
+ 70
+0
+ 9
+$DIMTOLJ
+ 70
+0
+ 9
+$DIMTZIN
+ 70
+8
+ 9
+$DIMALTZ
+ 70
+0
+ 9
+$DIMALTTZ
+ 70
+0
+ 9
+$DIMUPT
+ 70
+0
+ 9
+$DIMDEC
+ 70
+2
+ 9
+$DIMTDEC
+ 70
+2
+ 9
+$DIMALTU
+ 70
+2
+ 9
+$DIMALTTD
+ 70
+3
+ 9
+$DIMTXSTY
+ 7
+Standard
+ 9
+$DIMAUNIT
+ 70
+0
+ 9
+$DIMADEC
+ 70
+0
+ 9
+$DIMALTRND
+ 40
+0.0
+ 9
+$DIMAZIN
+ 70
+0
+ 9
+$DIMDSEP
+ 70
+44
+ 9
+$DIMATFIT
+ 70
+3
+ 9
+$DIMFRAC
+ 70
+0
+ 9
+$DIMLDRBLK
+ 1
+
+ 9
+$DIMLUNIT
+ 70
+2
+ 9
+$DIMLWD
+ 70
+-2
+ 9
+$DIMLWE
+ 70
+-2
+ 9
+$DIMTMOVE
+ 70
+0
+ 9
+$DIMFXL
+ 40
+1.0
+ 9
+$DIMFXLON
+ 70
+0
+ 9
+$DIMJOGANG
+ 40
+0.785398163397
+ 9
+$DIMTFILL
+ 70
+0
+ 9
+$DIMTFILLCLR
+ 70
+0
+ 9
+$DIMARCSYM
+ 70
+0
+ 9
+$DIMLTYPE
+ 6
+
+ 9
+$DIMLTEX1
+ 6
+
+ 9
+$DIMLTEX2
+ 6
+
+ 9
+$DIMTXTDIRECTION
+ 70
+0
+ 9
+$LUNITS
+ 70
+2
+ 9
+$LUPREC
+ 70
+4
+ 9
+$SKETCHINC
+ 40
+1.0
+ 9
+$FILLETRAD
+ 40
+10.0
+ 9
+$AUNITS
+ 70
+0
+ 9
+$AUPREC
+ 70
+2
+ 9
+$MENU
+ 1
+.
+ 9
+$ELEVATION
+ 40
+0.0
+ 9
+$PELEVATION
+ 40
+0.0
+ 9
+$THICKNESS
+ 40
+0.0
+ 9
+$LIMCHECK
+ 70
+0
+ 9
+$CHAMFERA
+ 40
+0.0
+ 9
+$CHAMFERB
+ 40
+0.0
+ 9
+$CHAMFERC
+ 40
+0.0
+ 9
+$CHAMFERD
+ 40
+0.0
+ 9
+$SKPOLY
+ 70
+0
+ 9
+$TDCREATE
+ 40
+2460882.440787037
+ 9
+$TDUCREATE
+ 40
+2458532.153996898
+ 9
+$TDUPDATE
+ 40
+2460882.440787037
+ 9
+$TDUUPDATE
+ 40
+2458532.1544311
+ 9
+$TDINDWG
+ 40
+0.0
+ 9
+$TDUSRTIMER
+ 40
+0.0
+ 9
+$USRTIMER
+ 70
+1
+ 9
+$ANGBASE
+ 50
+0.0
+ 9
+$ANGDIR
+ 70
+0
+ 9
+$PDMODE
+ 70
+0
+ 9
+$PDSIZE
+ 40
+0.0
+ 9
+$PLINEWID
+ 40
+0.0
+ 9
+$SPLFRAME
+ 70
+0
+ 9
+$SPLINETYPE
+ 70
+6
+ 9
+$SPLINESEGS
+ 70
+8
+ 9
+$HANDSEED
+ 5
+76
+ 9
+$SURFTAB1
+ 70
+6
+ 9
+$SURFTAB2
+ 70
+6
+ 9
+$SURFTYPE
+ 70
+6
+ 9
+$SURFU
+ 70
+6
+ 9
+$SURFV
+ 70
+6
+ 9
+$UCSBASE
+ 2
+
+ 9
+$UCSNAME
+ 2
+
+ 9
+$UCSORG
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSXDIR
+ 10
+1.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSYDIR
+ 10
+0.0
+ 20
+1.0
+ 30
+0.0
+ 9
+$UCSORTHOREF
+ 2
+
+ 9
+$UCSORTHOVIEW
+ 70
+0
+ 9
+$UCSORGTOP
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGBOTTOM
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGLEFT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGRIGHT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGFRONT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGBACK
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSBASE
+ 2
+
+ 9
+$PUCSNAME
+ 2
+
+ 9
+$PUCSORG
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSXDIR
+ 10
+1.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSYDIR
+ 10
+0.0
+ 20
+1.0
+ 30
+0.0
+ 9
+$PUCSORTHOREF
+ 2
+
+ 9
+$PUCSORTHOVIEW
+ 70
+0
+ 9
+$PUCSORGTOP
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGBOTTOM
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGLEFT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGRIGHT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGFRONT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGBACK
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$USERI1
+ 70
+0
+ 9
+$USERI2
+ 70
+0
+ 9
+$USERI3
+ 70
+0
+ 9
+$USERI4
+ 70
+0
+ 9
+$USERI5
+ 70
+0
+ 9
+$USERR1
+ 40
+0.0
+ 9
+$USERR2
+ 40
+0.0
+ 9
+$USERR3
+ 40
+0.0
+ 9
+$USERR4
+ 40
+0.0
+ 9
+$USERR5
+ 40
+0.0
+ 9
+$WORLDVIEW
+ 70
+1
+ 9
+$SHADEDGE
+ 70
+3
+ 9
+$SHADEDIF
+ 70
+70
+ 9
+$TILEMODE
+ 70
+1
+ 9
+$MAXACTVP
+ 70
+64
+ 9
+$PINSBASE
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PLIMCHECK
+ 70
+0
+ 9
+$PEXTMIN
+ 10
+1e+20
+ 20
+1e+20
+ 30
+1e+20
+ 9
+$PEXTMAX
+ 10
+-1e+20
+ 20
+-1e+20
+ 30
+-1e+20
+ 9
+$PLIMMIN
+ 10
+0.0
+ 20
+0.0
+ 9
+$PLIMMAX
+ 10
+420.0
+ 20
+297.0
+ 9
+$UNITMODE
+ 70
+0
+ 9
+$VISRETAIN
+ 70
+1
+ 9
+$PLINEGEN
+ 70
+0
+ 9
+$PSLTSCALE
+ 70
+1
+ 9
+$TREEDEPTH
+ 70
+3020
+ 9
+$CMLSTYLE
+ 2
+Standard
+ 9
+$CMLJUST
+ 70
+0
+ 9
+$CMLSCALE
+ 40
+20.0
+ 9
+$PROXYGRAPHICS
+ 70
+1
+ 9
+$MEASUREMENT
+ 70
+1
+ 9
+$CELWEIGHT
+370
+-1
+ 9
+$ENDCAPS
+280
+0
+ 9
+$JOINSTYLE
+280
+0
+ 9
+$LWDISPLAY
+290
+0
+ 9
+$INSUNITS
+ 70
+6
+ 9
+$HYPERLINKBASE
+ 1
+
+ 9
+$STYLESHEET
+ 1
+
+ 9
+$XEDIT
+290
+1
+ 9
+$CEPSNTYPE
+380
+0
+ 9
+$PSTYLEMODE
+290
+1
+ 9
+$FINGERPRINTGUID
+ 2
+{D7D6EFDA-684F-49DE-B7CE-25E9CC3ABC9D}
+ 9
+$VERSIONGUID
+ 2
+{68A46382-6260-4FC7-B2CC-2903141065E9}
+ 9
+$EXTNAMES
+290
+1
+ 9
+$PSVPSCALE
+ 40
+0.0
+ 9
+$OLESTARTUP
+290
+0
+ 9
+$SORTENTS
+280
+127
+ 9
+$INDEXCTL
+280
+0
+ 9
+$HIDETEXT
+280
+1
+ 9
+$XCLIPFRAME
+280
+0
+ 9
+$HALOGAP
+280
+0
+ 9
+$OBSCOLOR
+ 70
+257
+ 9
+$OBSLTYPE
+280
+0
+ 9
+$INTERSECTIONDISPLAY
+280
+0
+ 9
+$INTERSECTIONCOLOR
+ 70
+257
+ 9
+$DIMASSOC
+280
+2
+ 9
+$PROJECTNAME
+ 1
+
+ 9
+$CAMERADISPLAY
+290
+0
+ 9
+$LENSLENGTH
+ 40
+50.0
+ 9
+$CAMERAHEIGHT
+ 40
+0.0
+ 9
+$STEPSPERSEC
+ 40
+24.0
+ 9
+$STEPSIZE
+ 40
+100.0
+ 9
+$3DDWFPREC
+ 40
+2.0
+ 9
+$PSOLWIDTH
+ 40
+0.005
+ 9
+$PSOLHEIGHT
+ 40
+0.08
+ 9
+$LOFTANG1
+ 40
+1.570796326795
+ 9
+$LOFTANG2
+ 40
+1.570796326795
+ 9
+$LOFTMAG1
+ 40
+0.0
+ 9
+$LOFTMAG2
+ 40
+0.0
+ 9
+$LOFTPARAM
+ 70
+7
+ 9
+$LOFTNORMALS
+280
+1
+ 9
+$LATITUDE
+ 40
+37.795
+ 9
+$LONGITUDE
+ 40
+-122.394
+ 9
+$NORTHDIRECTION
+ 40
+0.0
+ 9
+$TIMEZONE
+ 70
+-8000
+ 9
+$LIGHTGLYPHDISPLAY
+280
+1
+ 9
+$TILEMODELIGHTSYNCH
+280
+1
+ 9
+$CMATERIAL
+347
+20
+ 9
+$SOLIDHIST
+280
+0
+ 9
+$SHOWHIST
+280
+1
+ 9
+$DWFFRAME
+280
+2
+ 9
+$DGNFRAME
+280
+2
+ 9
+$REALWORLDSCALE
+290
+1
+ 9
+$INTERFERECOLOR
+ 62
+256
+ 9
+$CSHADOW
+280
+0
+ 9
+$SHADOWPLANELOCATION
+ 40
+0.0
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+CLASSES
+ 0
+CLASS
+ 1
+ACDBDICTIONARYWDFLT
+ 2
+AcDbDictionaryWithDefault
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+SUN
+ 2
+AcDbSun
+ 3
+SCENEOE
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+VISUALSTYLE
+ 2
+AcDbVisualStyle
+ 3
+ObjectDBX Classes
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MATERIAL
+ 2
+AcDbMaterial
+ 3
+ObjectDBX Classes
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+SCALE
+ 2
+AcDbScale
+ 3
+ObjectDBX Classes
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+TABLESTYLE
+ 2
+AcDbTableStyle
+ 3
+ObjectDBX Classes
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MLEADERSTYLE
+ 2
+AcDbMLeaderStyle
+ 3
+ACDB_MLEADERSTYLE_CLASS
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+DICTIONARYVAR
+ 2
+AcDbDictionaryVar
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+CELLSTYLEMAP
+ 2
+AcDbCellStyleMap
+ 3
+ObjectDBX Classes
+ 90
+1152
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MENTALRAYRENDERSETTINGS
+ 2
+AcDbMentalRayRenderSettings
+ 3
+SCENEOE
+ 90
+1024
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBDETAILVIEWSTYLE
+ 2
+AcDbDetailViewStyle
+ 3
+ObjectDBX Classes
+ 90
+1025
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBSECTIONVIEWSTYLE
+ 2
+AcDbSectionViewStyle
+ 3
+ObjectDBX Classes
+ 90
+1025
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+RASTERVARIABLES
+ 2
+AcDbRasterVariables
+ 3
+ISM
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBPLACEHOLDER
+ 2
+AcDbPlaceHolder
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+LAYOUT
+ 2
+AcDbLayout
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+TABLES
+ 0
+TABLE
+ 2
+VPORT
+ 5
+8
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+ 0
+VPORT
+ 5
+23
+330
+8
+100
+AcDbSymbolTableRecord
+100
+AcDbViewportTableRecord
+ 2
+*Active
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 11
+1.0
+ 21
+1.0
+ 12
+344.2
+ 22
+148.5
+ 13
+0.0
+ 23
+0.0
+ 14
+0.5
+ 24
+0.5
+ 15
+0.5
+ 25
+0.5
+ 16
+0.0
+ 26
+0.0
+ 36
+1.0
+ 17
+0.0
+ 27
+0.0
+ 37
+0.0
+ 40
+297.0
+ 41
+1.34
+ 42
+50.0
+ 43
+0.0
+ 44
+0.0
+ 50
+0.0
+ 51
+0.0
+ 71
+0
+ 72
+1000
+ 73
+1
+ 74
+3
+ 75
+0
+ 76
+0
+ 77
+0
+ 78
+0
+281
+0
+ 65
+0
+146
+0.0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+LTYPE
+ 5
+2
+330
+0
+100
+AcDbSymbolTable
+ 70
+3
+ 0
+LTYPE
+ 5
+24
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+ByBlock
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+LTYPE
+ 5
+25
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+ByLayer
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+LTYPE
+ 5
+26
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+Continuous
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+LAYER
+ 5
+1
+330
+0
+100
+AcDbSymbolTable
+ 70
+4
+ 0
+LAYER
+ 5
+27
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+0
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+-3
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+28
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+Defpoints
+ 70
+0
+ 62
+7
+ 6
+Continuous
+290
+0
+370
+-3
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+2F
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+BODY
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+-3
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+30
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+POPISKY
+ 70
+0
+ 62
+1
+ 6
+Continuous
+370
+-3
+390
+13
+347
+21
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+STYLE
+ 5
+5
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+ 0
+STYLE
+ 5
+29
+330
+5
+100
+AcDbSymbolTableRecord
+100
+AcDbTextStyleTableRecord
+ 2
+Standard
+ 70
+0
+ 40
+0.0
+ 41
+1.0
+ 50
+0.0
+ 71
+0
+ 42
+2.5
+ 3
+txt
+ 4
+
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+VIEW
+ 5
+7
+330
+0
+100
+AcDbSymbolTable
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+UCS
+ 5
+6
+330
+0
+100
+AcDbSymbolTable
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+APPID
+ 5
+3
+330
+0
+100
+AcDbSymbolTable
+ 70
+3
+ 0
+APPID
+ 5
+2A
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+ACAD
+ 70
+0
+ 0
+APPID
+ 5
+73
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+HATCHBACKGROUNDCOLOR
+ 70
+0
+ 0
+APPID
+ 5
+74
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+EZDXF
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+DIMSTYLE
+ 5
+4
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+100
+AcDbDimStyleTable
+ 0
+DIMSTYLE
+105
+2B
+330
+4
+100
+AcDbSymbolTableRecord
+100
+AcDbDimStyleTableRecord
+ 2
+Standard
+ 70
+0
+ 40
+1.0
+ 41
+2.5
+ 42
+0.625
+ 43
+3.75
+ 44
+1.25
+ 45
+0.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+2.5
+140
+2.5
+141
+2.5
+142
+0.0
+143
+0.03937007874
+144
+1.0
+145
+0.0
+146
+1.0
+147
+0.625
+148
+0.0
+ 69
+0
+ 70
+0
+ 71
+0
+ 72
+0
+ 73
+0
+ 74
+0
+ 75
+0
+ 76
+0
+ 77
+1
+ 78
+8
+ 79
+0
+170
+0
+171
+3
+172
+1
+173
+0
+174
+0
+175
+0
+176
+0
+177
+0
+178
+0
+179
+0
+271
+0
+272
+2
+273
+2
+274
+3
+275
+0
+276
+0
+277
+2
+278
+44
+279
+0
+280
+0
+281
+0
+282
+0
+283
+0
+284
+8
+285
+0
+286
+0
+288
+0
+289
+3
+290
+0
+371
+-2
+372
+-2
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+BLOCK_RECORD
+ 5
+9
+330
+0
+100
+AcDbSymbolTable
+ 70
+2
+ 0
+BLOCK_RECORD
+ 5
+17
+330
+9
+100
+AcDbSymbolTableRecord
+100
+AcDbBlockTableRecord
+ 2
+*Model_Space
+340
+1A
+ 70
+0
+280
+1
+281
+0
+ 0
+BLOCK_RECORD
+ 5
+1B
+330
+9
+100
+AcDbSymbolTableRecord
+100
+AcDbBlockTableRecord
+ 2
+*Paper_Space
+340
+1E
+ 70
+0
+280
+1
+281
+0
+ 0
+ENDTAB
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+BLOCKS
+ 0
+BLOCK
+ 5
+18
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockBegin
+ 2
+*Model_Space
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 3
+*Model_Space
+ 1
+
+ 0
+ENDBLK
+ 5
+19
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockEnd
+ 0
+BLOCK
+ 5
+1C
+330
+1B
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockBegin
+ 2
+*Paper_Space
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 3
+*Paper_Space
+ 1
+
+ 0
+ENDBLK
+ 5
+1D
+330
+1B
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockEnd
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+ENTITIES
+ 0
+POINT
+ 5
+31
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 0
+TEXT
+ 5
+32
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+2.0
+ 20
+2.0
+ 30
+0.0
+ 40
+2.5
+ 1
+POCATEK
+ 11
+2.0
+ 21
+2.0
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+33
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+174.0
+ 20
+164.7
+ 30
+0.0
+ 0
+TEXT
+ 5
+34
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+176.0
+ 20
+166.7
+ 30
+0.0
+ 40
+2.5
+ 1
+X62101
+ 11
+176.0
+ 21
+166.7
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+35
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+174.0
+ 20
+108.2
+ 30
+0.0
+ 0
+TEXT
+ 5
+36
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+176.0
+ 20
+110.2
+ 30
+0.0
+ 40
+2.5
+ 1
+X62201
+ 11
+176.0
+ 21
+110.2
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+37
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+174.0
+ 20
+51.7
+ 30
+0.0
+ 0
+TEXT
+ 5
+38
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+176.0
+ 20
+53.7
+ 30
+0.0
+ 40
+2.5
+ 1
+X62301
+ 11
+176.0
+ 21
+53.7
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+39
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+174.0
+ 20
+200.7
+ 30
+0.0
+ 0
+TEXT
+ 5
+3A
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+176.0
+ 20
+202.7
+ 30
+0.0
+ 40
+2.5
+ 1
+X62001
+ 11
+176.0
+ 21
+202.7
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+3B
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+-13.345
+ 20
+15.95
+ 30
+0.0
+ 0
+TEXT
+ 5
+3C
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+-11.345
+ 20
+17.95
+ 30
+0.0
+ 40
+2.5
+ 1
+X71001
+ 11
+-11.345
+ 21
+17.95
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+3D
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+-13.128
+ 20
+42.0
+ 30
+0.0
+ 0
+TEXT
+ 5
+3E
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+-11.128
+ 20
+44.0
+ 30
+0.0
+ 40
+2.5
+ 1
+X71000
+ 11
+-11.128
+ 21
+44.0
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+3F
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+-13.345
+ 20
+233.45
+ 30
+0.0
+ 0
+TEXT
+ 5
+40
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+-11.345
+ 20
+235.45
+ 30
+0.0
+ 40
+2.5
+ 1
+X72001
+ 11
+-11.345
+ 21
+235.45
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+41
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+-13.128
+ 20
+207.65
+ 30
+0.0
+ 0
+TEXT
+ 5
+42
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+-11.128
+ 20
+209.65
+ 30
+0.0
+ 40
+2.5
+ 1
+X72000
+ 11
+-11.128
+ 21
+209.65
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+43
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+174.0
+ 20
+164.7
+ 30
+0.0
+ 0
+TEXT
+ 5
+44
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+176.0
+ 20
+166.7
+ 30
+0.0
+ 40
+2.5
+ 1
+X62101
+ 11
+176.0
+ 21
+166.7
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+45
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+174.0
+ 20
+108.2
+ 30
+0.0
+ 0
+TEXT
+ 5
+46
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+176.0
+ 20
+110.2
+ 30
+0.0
+ 40
+2.5
+ 1
+X62201
+ 11
+176.0
+ 21
+110.2
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+47
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+174.0
+ 20
+51.7
+ 30
+0.0
+ 0
+TEXT
+ 5
+48
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+176.0
+ 20
+53.7
+ 30
+0.0
+ 40
+2.5
+ 1
+X62301
+ 11
+176.0
+ 21
+53.7
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+49
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+174.0
+ 20
+200.7
+ 30
+0.0
+ 0
+TEXT
+ 5
+4A
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+176.0
+ 20
+202.7
+ 30
+0.0
+ 40
+2.5
+ 1
+X62001
+ 11
+176.0
+ 21
+202.7
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+4B
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+-13.345
+ 20
+15.95
+ 30
+0.0
+ 0
+TEXT
+ 5
+4C
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+-11.345
+ 20
+17.95
+ 30
+0.0
+ 40
+2.5
+ 1
+X71001
+ 11
+-11.345
+ 21
+17.95
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+4D
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+-13.128
+ 20
+42.0
+ 30
+0.0
+ 0
+TEXT
+ 5
+4E
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+-11.128
+ 20
+44.0
+ 30
+0.0
+ 40
+2.5
+ 1
+X71000
+ 11
+-11.128
+ 21
+44.0
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+4F
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+-13.345
+ 20
+233.45
+ 30
+0.0
+ 0
+TEXT
+ 5
+50
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+-11.345
+ 20
+235.45
+ 30
+0.0
+ 40
+2.5
+ 1
+X72001
+ 11
+-11.345
+ 21
+235.45
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+51
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+-13.128
+ 20
+207.65
+ 30
+0.0
+ 0
+TEXT
+ 5
+52
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+-11.128
+ 20
+209.65
+ 30
+0.0
+ 40
+2.5
+ 1
+X72000
+ 11
+-11.128
+ 21
+209.65
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+53
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+-13.345
+ 20
+15.95
+ 30
+0.0
+ 0
+TEXT
+ 5
+54
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+-11.345
+ 20
+17.95
+ 30
+0.0
+ 40
+2.5
+ 1
+X71001
+ 11
+-11.345
+ 21
+17.95
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+55
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+-13.128
+ 20
+42.0
+ 30
+0.0
+ 0
+TEXT
+ 5
+56
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+-11.128
+ 20
+44.0
+ 30
+0.0
+ 40
+2.5
+ 1
+X71000
+ 11
+-11.128
+ 21
+44.0
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+57
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+-13.345
+ 20
+233.45
+ 30
+0.0
+ 0
+TEXT
+ 5
+58
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+-11.345
+ 20
+235.45
+ 30
+0.0
+ 40
+2.5
+ 1
+X72001
+ 11
+-11.345
+ 21
+235.45
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+59
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+-13.128
+ 20
+207.65
+ 30
+0.0
+ 0
+TEXT
+ 5
+5A
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+-11.128
+ 20
+209.65
+ 30
+0.0
+ 40
+2.5
+ 1
+X72000
+ 11
+-11.128
+ 21
+209.65
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+5B
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+174.0
+ 20
+164.7
+ 30
+0.0
+ 0
+TEXT
+ 5
+5C
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+176.0
+ 20
+166.7
+ 30
+0.0
+ 40
+2.5
+ 1
+X62101
+ 11
+176.0
+ 21
+166.7
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+5D
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+174.0
+ 20
+108.2
+ 30
+0.0
+ 0
+TEXT
+ 5
+5E
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+176.0
+ 20
+110.2
+ 30
+0.0
+ 40
+2.5
+ 1
+X62201
+ 11
+176.0
+ 21
+110.2
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+5F
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+174.0
+ 20
+51.7
+ 30
+0.0
+ 0
+TEXT
+ 5
+60
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+176.0
+ 20
+53.7
+ 30
+0.0
+ 40
+2.5
+ 1
+X62301
+ 11
+176.0
+ 21
+53.7
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+61
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+174.0
+ 20
+200.7
+ 30
+0.0
+ 0
+TEXT
+ 5
+62
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+176.0
+ 20
+202.7
+ 30
+0.0
+ 40
+2.5
+ 1
+X62001
+ 11
+176.0
+ 21
+202.7
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+63
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+-13.345
+ 20
+15.95
+ 30
+0.0
+ 0
+TEXT
+ 5
+64
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+-11.345
+ 20
+17.95
+ 30
+0.0
+ 40
+2.5
+ 1
+X71001
+ 11
+-11.345
+ 21
+17.95
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+65
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+-13.128
+ 20
+42.0
+ 30
+0.0
+ 0
+TEXT
+ 5
+66
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+-11.128
+ 20
+44.0
+ 30
+0.0
+ 40
+2.5
+ 1
+X71000
+ 11
+-11.128
+ 21
+44.0
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+67
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+-13.345
+ 20
+233.45
+ 30
+0.0
+ 0
+TEXT
+ 5
+68
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+-11.345
+ 20
+235.45
+ 30
+0.0
+ 40
+2.5
+ 1
+X72001
+ 11
+-11.345
+ 21
+235.45
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+69
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+-13.128
+ 20
+207.65
+ 30
+0.0
+ 0
+TEXT
+ 5
+6A
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+-11.128
+ 20
+209.65
+ 30
+0.0
+ 40
+2.5
+ 1
+X72000
+ 11
+-11.128
+ 21
+209.65
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+6B
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+-13.345
+ 20
+15.95
+ 30
+0.0
+ 0
+TEXT
+ 5
+6C
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+-11.345
+ 20
+17.95
+ 30
+0.0
+ 40
+2.5
+ 1
+X71001
+ 11
+-11.345
+ 21
+17.95
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+6D
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+-13.128
+ 20
+42.0
+ 30
+0.0
+ 0
+TEXT
+ 5
+6E
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+-11.128
+ 20
+44.0
+ 30
+0.0
+ 40
+2.5
+ 1
+X71000
+ 11
+-11.128
+ 21
+44.0
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+6F
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+-13.345
+ 20
+233.45
+ 30
+0.0
+ 0
+TEXT
+ 5
+70
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+-11.345
+ 20
+235.45
+ 30
+0.0
+ 40
+2.5
+ 1
+X72001
+ 11
+-11.345
+ 21
+235.45
+ 31
+0.0
+100
+AcDbText
+ 0
+POINT
+ 5
+71
+330
+17
+100
+AcDbEntity
+ 8
+BODY
+100
+AcDbPoint
+ 10
+-13.128
+ 20
+207.65
+ 30
+0.0
+ 0
+TEXT
+ 5
+72
+330
+17
+100
+AcDbEntity
+ 8
+POPISKY
+100
+AcDbText
+ 10
+-11.128
+ 20
+209.65
+ 30
+0.0
+ 40
+2.5
+ 1
+X72000
+ 11
+-11.128
+ 21
+209.65
+ 31
+0.0
+100
+AcDbText
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+OBJECTS
+ 0
+DICTIONARY
+ 5
+A
+330
+0
+100
+AcDbDictionary
+281
+1
+ 3
+ACAD_COLOR
+350
+B
+ 3
+ACAD_GROUP
+350
+C
+ 3
+ACAD_LAYOUT
+350
+D
+ 3
+ACAD_MATERIAL
+350
+E
+ 3
+ACAD_MLEADERSTYLE
+350
+F
+ 3
+ACAD_MLINESTYLE
+350
+10
+ 3
+ACAD_PLOTSETTINGS
+350
+11
+ 3
+ACAD_PLOTSTYLENAME
+350
+12
+ 3
+ACAD_SCALELIST
+350
+14
+ 3
+ACAD_TABLESTYLE
+350
+15
+ 3
+ACAD_VISUALSTYLE
+350
+16
+ 3
+EZDXF_META
+350
+2D
+ 0
+DICTIONARY
+ 5
+B
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+C
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+D
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Model
+350
+1A
+ 3
+Layout1
+350
+1E
+ 0
+DICTIONARY
+ 5
+E
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+ByBlock
+350
+1F
+ 3
+ByLayer
+350
+20
+ 3
+Global
+350
+21
+ 0
+DICTIONARY
+ 5
+F
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Standard
+350
+2C
+ 0
+DICTIONARY
+ 5
+10
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Standard
+350
+22
+ 0
+DICTIONARY
+ 5
+11
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+ACDBDICTIONARYWDFLT
+ 5
+12
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Normal
+350
+13
+100
+AcDbDictionaryWithDefault
+340
+13
+ 0
+ACDBPLACEHOLDER
+ 5
+13
+330
+12
+ 0
+DICTIONARY
+ 5
+14
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+15
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+16
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+LAYOUT
+ 5
+1A
+330
+D
+100
+AcDbPlotSettings
+ 1
+
+ 2
+Adobe PDF
+ 4
+A3
+ 6
+
+ 40
+7.5
+ 41
+20.0
+ 42
+7.5
+ 43
+20.0
+ 44
+420.0
+ 45
+297.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+0.0
+140
+0.0
+141
+0.0
+142
+1.0
+143
+1.0
+ 70
+1024
+ 72
+1
+ 73
+1
+ 74
+5
+ 7
+
+ 75
+16
+ 76
+0
+ 77
+2
+ 78
+300
+147
+1.0
+148
+0.0
+149
+0.0
+100
+AcDbLayout
+ 1
+Model
+ 70
+1
+ 71
+0
+ 10
+0.0
+ 20
+0.0
+ 11
+420.0
+ 21
+297.0
+ 12
+0.0
+ 22
+0.0
+ 32
+0.0
+ 14
+1e+20
+ 24
+1e+20
+ 34
+1e+20
+ 15
+-1e+20
+ 25
+-1e+20
+ 35
+-1e+20
+146
+0.0
+ 13
+0.0
+ 23
+0.0
+ 33
+0.0
+ 16
+1.0
+ 26
+0.0
+ 36
+0.0
+ 17
+0.0
+ 27
+1.0
+ 37
+0.0
+ 76
+1
+330
+17
+ 0
+LAYOUT
+ 5
+1E
+330
+D
+100
+AcDbPlotSettings
+ 1
+
+ 2
+Adobe PDF
+ 4
+A3
+ 6
+
+ 40
+7.5
+ 41
+20.0
+ 42
+7.5
+ 43
+20.0
+ 44
+420.0
+ 45
+297.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+0.0
+140
+0.0
+141
+0.0
+142
+1.0
+143
+1.0
+ 70
+0
+ 72
+1
+ 73
+1
+ 74
+5
+ 7
+
+ 75
+16
+ 76
+0
+ 77
+2
+ 78
+300
+147
+1.0
+148
+0.0
+149
+0.0
+100
+AcDbLayout
+ 1
+Layout1
+ 70
+1
+ 71
+1
+ 10
+0.0
+ 20
+0.0
+ 11
+420.0
+ 21
+297.0
+ 12
+0.0
+ 22
+0.0
+ 32
+0.0
+ 14
+1e+20
+ 24
+1e+20
+ 34
+1e+20
+ 15
+-1e+20
+ 25
+-1e+20
+ 35
+-1e+20
+146
+0.0
+ 13
+0.0
+ 23
+0.0
+ 33
+0.0
+ 16
+1.0
+ 26
+0.0
+ 36
+0.0
+ 17
+0.0
+ 27
+1.0
+ 37
+0.0
+ 76
+1
+330
+1B
+ 0
+MATERIAL
+ 5
+1F
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+ByBlock
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MATERIAL
+ 5
+20
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+ByLayer
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MATERIAL
+ 5
+21
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+Global
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MLINESTYLE
+ 5
+22
+102
+{ACAD_REACTORS
+330
+10
+102
+}
+330
+10
+100
+AcDbMlineStyle
+ 2
+Standard
+ 70
+0
+ 3
+
+ 62
+256
+ 51
+90.0
+ 52
+90.0
+ 71
+2
+ 49
+0.5
+ 62
+256
+ 6
+BYLAYER
+ 49
+-0.5
+ 62
+256
+ 6
+BYLAYER
+ 0
+MLEADERSTYLE
+ 5
+2C
+102
+{ACAD_REACTORS
+330
+F
+102
+}
+330
+F
+100
+AcDbMLeaderStyle
+179
+2
+170
+2
+171
+1
+172
+0
+ 90
+2
+ 40
+0.0
+ 41
+0.0
+173
+1
+ 91
+-1056964608
+ 92
+-2
+290
+1
+ 42
+2.0
+291
+1
+ 43
+8.0
+ 3
+Standard
+ 44
+4.0
+300
+
+342
+29
+174
+1
+175
+1
+176
+0
+178
+1
+ 93
+-1056964608
+ 45
+4.0
+292
+0
+297
+0
+ 46
+4.0
+ 94
+-1056964608
+ 47
+1.0
+ 49
+1.0
+140
+1.0
+294
+1
+141
+0.0
+177
+0
+142
+1.0
+295
+0
+296
+0
+143
+3.75
+271
+0
+272
+9
+273
+9
+ 0
+DICTIONARY
+ 5
+2D
+330
+A
+100
+AcDbDictionary
+280
+1
+281
+1
+ 3
+CREATED_BY_EZDXF
+350
+2E
+ 3
+WRITTEN_BY_EZDXF
+350
+75
+ 0
+DICTIONARYVAR
+ 5
+2E
+330
+2D
+100
+DictionaryVariables
+280
+0
+ 1
+0.17 @ 2025-07-25T08:34:44.830355+00:00
+ 0
+DICTIONARYVAR
+ 5
+75
+330
+2D
+100
+DictionaryVariables
+280
+0
+ 1
+0.17 @ 2025-07-25T08:34:44.831226+00:00
+ 0
+ENDSEC
+ 0
+EOF
diff --git a/test.py b/test.py
new file mode 100644
index 0000000..69245cd
--- /dev/null
+++ b/test.py
@@ -0,0 +1,78 @@
+from flask import Flask, request, render_template, send_file
+from io import BytesIO, StringIO
+import ezdxf
+import openpyxl
+import os
+import sys
+
+app = Flask(__name__)
+
+@app.route('/', methods=['GET', 'POST'])
+def upload_file():
+ if request.method == 'POST':
+ file = request.files['file']
+ if file.filename.endswith('.xls') or file.filename.endswith('.csv') or file.filename.endswith('.xlsx'):
+ # Create a text file with the uploaded file name
+
+ velikost = request.form['range']
+ print(velikost)
+
+ body = nacti_data_z_excelu(file)
+ #print(body)
+
+ dxf_file = exportuj_do_dxf(body, velikost)
+ dxf_file.seek(0)
+ return send_file(
+ path_or_file=dxf_file,
+ as_attachment=True,
+ download_name='hotovy.dxf',
+ mimetype='application/octet-stream'
+ )
+ else:
+ return render_template('upload_form.html', no_file=True)
+ return render_template('upload_form.html')
+
+def nacti_data_z_excelu(soubor, listname="List1"):
+ wb = openpyxl.load_workbook(soubor, data_only=True)
+ sheet = wb[listname]
+ body = []
+
+ for row in sheet.iter_rows(min_row=2, values_only=True):
+ if row[0] and row[1] is not None and row[2] is not None:
+ label = str(row[0])
+ try:
+ x = float(row[1])
+ y = float(row[2])
+ z = float(row[3]) if len(row) > 3 and row[3] is not None else 0
+ body.append((label, x, y, z))
+ except ValueError:
+ continue
+ return body
+
+def exportuj_do_dxf(body, velikost) -> BytesIO:
+ doc = ezdxf.new()
+ msp = doc.modelspace()
+
+ doc.layers.new(name="BODY", dxfattribs={"color": 7})
+ doc.layers.new(name="POPISKY", dxfattribs={"color": 1})
+
+ for label, x, y, z in body:
+ msp.add_point((x, y, z), dxfattribs={"layer": "BODY"})
+ msp.add_text(
+ label + "*"*(body.count((label, x, y, z))-1),
+
+ dxfattribs={"layer": "POPISKY", "height": float(velikost)}).set_pos((x + 2, y + 2), align="LEFT") # Posun textu od bodu
+
+ my_file = StringIO()
+ out_file = BytesIO()
+ doc.write(my_file, fmt="asc")
+ print(my_file)
+ out_file.write(my_file.getvalue().encode('utf-8'))
+
+ return out_file
+
+
+
+
+if __name__ == '__main__':
+ app.run(debug=False, port=5003, host='0.0.0.0')
\ No newline at end of file