Difference between revisions of "Macro WireXYZ/fr"

From FreeCAD Documentation
Jump to navigation Jump to search
m
(Created page with "00.03 16/10/2020 : conversion pour Python 3, ajout d'info pour le chemin du fichier dans "Windows" remplacer le slatch "\" par "\\" ou "/" voir [https://forum.freecadweb.org...")
 
(16 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
<languages/>
 
<languages/>
{{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|Date=2016-09-06}}
+
{{Macro/fr
 +
|Name=WireXYZ
 +
|Icon=Macro_WireXYZ.png
 +
|Description=Crée un wire avec les coordonnées x y z séparées par un espace. Les données sont extraites d'un fichier.<br/>{{ColoredText|(Ligne de commande, collez cette macro complète dans la console Python)}}.
 +
|Author=Mario52
 +
|Version=0.3
 +
|Date=2020-10-16
 +
|FCVersion=All
 +
|SeeAlso=[[Macro_Dxf_To_Shape|Macro_Dxf_To_Shape]] [[Image:Macro_Dxf_To_Shape.png|24px]]
 +
|Download=[https://www.freecadweb.org/wiki/images/0/0a/Macro_WireXYZ.png ToolBar Icon]
 +
}}
  
 
==Description==
 
==Description==
Line 11: Line 21:
 
Le fichier doit avoir les coordonnées X Y Z au ASCII sans entête.
 
Le fichier doit avoir les coordonnées X Y Z au ASCII sans entête.
  
<div class="mw-translate-fuzzy">
+
==Script==
===Script===
+
 
</div>
+
ToolBar Icon [[Image:Macro_WireXYZ.png]]
  
 
'''Macro_WireXYZ.FCMacro'''
 
'''Macro_WireXYZ.FCMacro'''
  
{{Code|code=
+
{{MacroCode|code=
 
# -*- coding: utf-8 -*-
 
# -*- coding: utf-8 -*-
# created a wire with coordinate x y z separated (in the file)
+
from __future__ import unicode_literals
 +
# created a wire with coordinate x y z separated (in the file without coma)
 +
__title__= "Macro_WireXYZ"
 +
__author__= "Mario52"
 +
__date__= "2020/10/16"
 +
__version__= "00.03"
 +
##
 
#EX:
 
#EX:
 
#0 0 0
 
#0 0 0
Line 26: Line 42:
 
#. . . .
 
#. . . .
  
from __future__ import unicode_literals
 
 
from FreeCAD import Base
 
from FreeCAD import Base
 
import Draft, Part
 
import Draft, Part
  
fichier = "C:\yourPath\cloud.asc"                          # path and name of file.txt
+
## path for Windows    : C:\yourPath\cloud.asc (create one error in Python (cause, the "\" is a command syntax in Python)
 +
## replace "\" by "/"  result : C:/yourPath/cloud.asc
 +
## or replace the "\" by "\\" result : C:\\yourPath\\cloud.asc
 +
 
 +
fichier = "C:\\yourPath\\cloud.asc"                          # path and name of file.txt
  
 
file = open(fichier, "r")                                  # open the file read
 
file = open(fichier, "r")                                  # open the file read
Line 38: Line 57:
 
for ligne in file:
 
for ligne in file:
 
     coordinates = ligne.split()
 
     coordinates = ligne.split()
     X,Y,Z = coordinates                                    # separate the coordinates
+
     try:                                                        # for format PCD ignore the header
#   Draft.makePoint(float(X),float(Y),float(Z))            # create points (uncomment for use)
+
        X,Y,Z = coordinates                                    # separate the coordinates
    print X," ",Y," ",Z
+
#       Draft.makePoint(float(X),float(Y),float(Z))            # create points (uncomment for use)
    wire.append(FreeCAD.Vector(float(X),float(Y),float(Z))) # append the coordinates
+
        print(X," ",Y," ",Z)
 
+
        wire.append(FreeCAD.Vector(float(X),float(Y),float(Z))) # append the coordinates
 +
    except Exception:
 +
        None
 
file.close()
 
file.close()
 
Draft.makeWire(wire,closed=False,face=False,support=None)  # create the wire open
 
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)
 
#Draft.makeWire(wire,closed=True,face=False,support=None)  # create the wire closed (uncomment for use)
 +
 +
#Draft.makeBSpline(wire,closed=False,face=False,support=None)# create the BSpline open (uncomment for use)
 +
#Draft.makeBSpline(wire,closed=True,face=False,support=None)# create the BSpline open (uncomment for use)
 +
 +
App.ActiveDocument.recompute()
  
 
}}
 
}}
  
<div class="mw-translate-fuzzy">
+
 
=== Exemples ===
+
== Exemples ==
</div>
 
  
 
{{Code|code=
 
{{Code|code=
Line 72: Line 97:
 
{{Code|code=
 
{{Code|code=
 
fichier = "C:\yourPath\cloud.asc"                          # path and name of file.txt
 
fichier = "C:\yourPath\cloud.asc"                          # path and name of file.txt
 +
 +
## path for Windows    : C:\yourPath\cloud.asc (create one error in Python (cause, the "\" is a command syntax in Python)
 +
## replace "\" by "/"  result : C:/yourPath/cloud.asc
 +
## or replace the "\" by "\\" result : C:\\yourPath\\cloud.asc
 +
 
}}
 
}}
  
Line 90: Line 120:
  
  
<div class="mw-translate-fuzzy">
+
==Liens==
===Liens===
 
 
La discussion sur le forum [http://forum.freecadweb.org/viewtopic.php?f=3&t=7828 How do I transform a point cloud to a line?]
 
La discussion sur le forum [http://forum.freecadweb.org/viewtopic.php?f=3&t=7828 How do I transform a point cloud to a line?]
</div>
+
 
 +
==Version==
 +
 
 +
00.03 16/10/2020 : conversion pour Python 3, ajout d'info pour le chemin du  fichier dans "Windows" remplacer le slatch  "\" par "\\" ou "/" voir [https://forum.freecadweb.org/viewtopic.php?f=3&t=7828 How do I transform a point cloud to a line?]
 +
 
 +
00.02 02/07/2019 :
 +
 
 +
00.01 21/02/2015

Latest revision as of 10:28, 16 October 2020

Other languages:
English • ‎français • ‎italiano

Macro WireXYZ.png WireXYZ

Description
Crée un wire avec les coordonnées x y z séparées par un espace. Les données sont extraites d'un fichier.
(Ligne de commande, collez cette macro complète dans la console Python).

Version macro : 0.3
Date dernière modification : 2020-10-16
Version FreeCAD : All
Téléchargement : ToolBar Icon
Auteur: Mario52
Auteur
Mario52
Téléchargement
ToolBar Icon
Liens
Version Macro
0.3
Dernière modification
2020-10-16
Version(s) FreeCAD
All
Raccourci clavier
None
Voir aussi
Macro_Dxf_To_Shape Macro Dxf To Shape.png

Description

Cette macro crée un wire (ou points) avec les coordonnées XYZ extraites d'un fichier. Les coordonnées X Y Z sont séparées par un espace.

Utilisation

Le fichier doit avoir les coordonnées X Y Z au ASCII sans entête.

Script

ToolBar Icon Macro WireXYZ.png

Macro_WireXYZ.FCMacro

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
# created a wire with coordinate x y z separated (in the file without coma)
__title__= "Macro_WireXYZ"
__author__= "Mario52"
__date__= "2020/10/16"
__version__= "00.03"
##
#EX:
#0 0 0
#10 10 10
#15 20 25
#. . . .

from FreeCAD import Base
import Draft, Part

## path for Windows    : C:\yourPath\cloud.asc (create one error in Python (cause, the "\" is a command syntax in Python)
## replace "\" by "/"  result : C:/yourPath/cloud.asc 
## or replace the "\" by "\\" result : C:\\yourPath\\cloud.asc 

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()
    try:                                                        # for format PCD ignore the header
        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
    except Exception:
        None
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)

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

App.ActiveDocument.recompute()


Exemples

0 240.42686 0

20 243.83054 0

40 247.33677 0

60 250.94702 0

80 254.66283 0

100 258.48575 0

...

Modifiez le chemin et nom du fichier, sauvez la macro, rechargez la macro et lancez la.

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

## path for Windows    : C:\yourPath\cloud.asc (create one error in Python (cause, the "\" is a command syntax in Python)
## replace "\" by "/"  result : C:/yourPath/cloud.asc 
## or replace the "\" by "\\" result : C:\\yourPath\\cloud.asc

Si vous voulez un wire fermé, modifiez le code (closed=False):

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


et remplacez le par (closed=True)

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

même procédure pour la face, False ou True (face=True).


Liens

La discussion sur le forum How do I transform a point cloud to a line?

Version

00.03 16/10/2020 : conversion pour Python 3, ajout d'info pour le chemin du fichier dans "Windows" remplacer le slatch "\" par "\\" ou "/" voir How do I transform a point cloud to a line?

00.02 02/07/2019 :

00.01 21/02/2015