Salut Méandre,
j'essaye de répondre à tes questions..;
CNC_Fontaine peux-tu m'envoyer un exemple très simple ? Je vais rajouter la sortie DXF à Filengrène --> alors voici comment j'ai procédé:
il y a un début pour les fichiers dxf qui crée les paramètres du fichier (enfin c'est que je pense...) (ce bout de fichier est pour mon cas toujours le même)
Puis il faut récupérer les données x,y de chaque point issu du fichier txt exporter par filengrene.
avec ces coordonnées je crée des "splines" c'est à dire des genre de lignes qui se dessinent l'une au bout de l'autre gràce aux coordonnées d'un seul point. (pour cela comme le décrit très bien gourky il faut déclarer une polyligne puis des VERTEX pour les splines )
chaque spline est écrite dans un fichier exemple.dxf suivant la trame du fichier dxf.
En résumé ...
1) ECRIRE UN PAVE GENERIQUE DXF dans un fichier exemple.dxf
2) ECRIRE A LA SUITE DANS CE FICHIER UNE DECLARATION DE POLYLIGNE
3) CREER DES "VERTEX" (spline) en prenant comme point de fin le point N+1 (la spline sera déssinée du point N au point N+1)
Alors Voilà ce que ça donne pour le fichier dxf:
_________" PAVE GENERIQUE QU'ON RETROUVERA A CHAQUE FICHIER "je sais pas trop ce que ca veut dire tout ça ... _____________________________________________
0
SECTION
2
HEADER
9
$ACADVER
1
AC1009
9
$EXTMAX
10
32.6826362609863
20
20.9247894287109
30
0.0
9
$EXTMIN
10
-74.9159622192383
20
-65.1676940917969
30
0.0
9
$INSUNITS
70
4
9
$LUNITS
70
2
9
$LUPREC
70
4
9
$MEASUREMENT
70
1
0
ENDSEC
0
SECTION
2
TABLES
0
TABLE
2
LAYER
70
1
0
LAYER
2
0
70
0
62
7
6
Continuous
0
ENDTAB
0
TABLE
2
APPID
70
1
0
APPID
2
ACAD
70
0
0
ENDTAB
0
ENDSEC
0
SECTION
2
ENTITIES
0
_________" LA ON DECLARE UNE POLYLIGNE (avec plein de petites splines qui vont la constituer " _____________________________________________
POLYLINE
8
0
66
1
10
0.0
20
0.0
30
0.0
70
0
0
_________ET C'EST MAINTENANT QUE LES DONNEES SERONT SPECIFIQUES A CHAQUE FICHIER: on donne les coordonnées x,y (voire Z si on veux) des différents VERTEX, en fait des splines reliées les unes aux autres...)
______________
VERTEX
8
0
5
2
10
15.9097359343342 --> X (abcisse de fin, et qui sera implicitement l'abcisse de début du VERTEX suivant )
20
-2.91399315644024 --> Y (ordonnée de fin, et qui sera implicitement l'ordonnée de début du suivant)
30
0.0 --> Z
70
32
0
VERTEX
8
0
5
3
10
15.8603485777202 (abcisse de fin, et qui sera implicitement l'abcisse de début du VERTEX suivant )
20
-2.8222579487431 Y (ordonnée de fin, et qui sera implicitement l'ordonnée de début du suivant)
30
0.0
70
32
0
________AH OUI IL Y A AUSSI UN BLOC A ECRIRE EN FIN DE FICHIER :
______________
SEQEND
0
ENDSEC
0
EOF
(voilà,l'explication confuse est terminée, bravo à ceux qui ont compris ...)
Concernant ton programme je ne peux pas l'analyser là maintenant mais tout de même je suis étonné qu'il n'y ait plus de correction de profil (G41-G42)
Oui en fait une fois le dxf crée, on peut utiliser n'importe quel soft qui génère du GCODE, pour moi c'était desckam qui lui crée le fichier gcode en fonction du diamètre de la fraise.
Comment tu fais ? Tu pilotes le centre de l'outil ?
donc non c'est le programme qui adapte le fichier à l'outil.
Bon ...ben bonne lecture ...si tu as le courage de d'engager dans l'export de dxf pour filengrène je suis prêt à te renseigner sur des point plus précis car là je m'enfonce un peu dans le détail alors que je ne maitrise pas trop la programation ni le standard dxf ... mais ça fonctionne..
@ plus.
AH OUI COMPLEMENT, VOILA 2 FONCTIONS DANS MA MACRO excel VBA:
Sub DxfPoly_DEBUT() ' FONCTION QUI DECLARE LA POLYLIGNE (1 seule fois dans le fichier)
Print #1, "POLYLINE"
Print #1, " 8"
Print #1, "0"
Print #1, " 5"
Print #1, "0"
Print #1, " 66"
Print #1, " 1"
Print #1, " 10"
Print #1, "0.0"
Print #1, " 20"
Print #1, "0.0"
Print #1, " 30"
Print #1, "0.0"
Print #1, " 70"
Print #1, " 8"
Print #1, " 0"
End Sub
Sub DxfPoly(x, y, size)' FONCTION CREATION DES VERTEX, itération de celle-ci en fonction du nombre total de point x,y
Print #1, "VERTEX"
Print #1, " 8"
Print #1, " 0"
Print #1, " 5"
Print #1, Hex(size - 9) 'merci turbo
Print #1, "10"
Print #1, x
Print #1, "20"
Print #1, y
Print #1, "30"
Print #1, "0.0"
Print #1, " 70"
Print #1, "32"
Print #1, "0"
End Sub