Macro WireXYZ/fr: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
mNo edit summary
Line 1: Line 1:
{{Macro/fr|Icon=Text-x-python|Name=WireXYZ|Name/fr=WireXYZ|Description=Creates a wire with coordinate x y z.|Author=Mario52}}
{{Macro/fr|Icon=Text-x-python|Name=WireXYZ|Name/fr=WireXYZ|Description=Crée un wire avec les coordonnées x y z. d'un fichier|Author=Mario52|Version=0.1}}


===Description===
===Description===

Revision as of 08:13, 6 September 2016

File:Text-x-python WireXYZ

Description
Crée un wire avec les coordonnées x y z. d'un fichier

Version macro : 0.1
Auteur: Mario52
Auteur
Mario52
Téléchargement
None
Liens
Version Macro
0.1
Dernière modification
None
Version(s) FreeCAD
None
Raccourci clavier
None
Voir aussi
None

Description

This macro creates a wire (or points) with the coordinates extracted from a file. The coordinates X Y Z are separated by a space.

Use

The file must have three coordinates X Y Z in ascii format without header

Ex:

0 240.42686 0

20 243.83054 0

40 247.33677 0

60 250.94702 0

80 254.66283 0

100 258.48575 0

...

Modify your path and name of file, save and load the macro and run.

fichier = "C:\yourPath\cloud.asc"                          # path and name of file.txt

If you want a close wire modify this line (closed=False):

Draft.makeWire(wire,closed=False,face=False,support=None)   # create the wire

and replace with (closed=True):

Draft.makeWire(wire,closed=True,face=False,support=None)   # create the wire

same for the face, False or True (closed=True).

Script

Macro_WireXYZ.FCMacro

# -*- coding: utf-8 -*-
# created a wire with coordinate x y z unseparated (in the file)
#EX:
#0 0 0
#10 10 10
#15 20 25
#. . . .

from __future__ import unicode_literals
from FreeCAD import Base
import Draft, Part

fichier = "C:\yourPath\cloud.asc"                          # path and name of file.txt

file = open(fichier, "r")                                  # open the file read
wire = []
X=Y=Z = 0.0

for ligne in file:
    coordinates = ligne.split()
    X,Y,Z = coordinates                                     # separate the coordinates
#    Draft.makePoint(float(X),float(Y),float(Z))            # create points (uncomment for use)
    print X," ",Y," ",Z
    wire.append(FreeCAD.Vector(float(X),float(Y),float(Z))) # append the coordinates

file.close()
Draft.makeWire(wire,closed=False,face=False,support=None)   # create the wire open
#Draft.makeWire(wire,closed=True,face=False,support=None)   # create the wire closed (uncomment for use)

Links

The discussion How do I transform a point cloud to a line?

Other languages: