Macro WireXYZ/fr: Difference between revisions
mNo edit summary |
(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...") |
||
(6 intermediate revisions by 3 users not shown) | |||
Line 5: | Line 5: | ||
|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)}}. |
|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 |
|Author=Mario52 |
||
|Version=0. |
|Version=0.3 |
||
|Date= |
|Date=2020-10-16 |
||
|FCVersion= |
|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] |
|Download=[https://www.freecadweb.org/wiki/images/0/0a/Macro_WireXYZ.png ToolBar Icon] |
||
}} |
}} |
||
Line 21: | Line 22: | ||
==Script== |
==Script== |
||
ToolBar Icon [[Image:Macro_WireXYZ.png]] |
|||
'''Macro_WireXYZ.FCMacro''' |
'''Macro_WireXYZ.FCMacro''' |
||
{{ |
{{MacroCode|code= |
||
# -*- coding: utf-8 -*- |
# -*- coding: utf-8 -*- |
||
from __future__ import unicode_literals |
from __future__ import unicode_literals |
||
Line 30: | Line 33: | ||
__title__= "Macro_WireXYZ" |
__title__= "Macro_WireXYZ" |
||
__author__= "Mario52" |
__author__= "Mario52" |
||
__date__= " |
__date__= "2020/10/16" |
||
__version__= "00. |
__version__= "00.03" |
||
## |
## |
||
#EX: |
#EX: |
||
Line 42: | Line 45: | ||
import Draft, Part |
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 |
file = open(fichier, "r") # open the file read |
||
wire = [] |
wire = [] |
||
Line 49: | Line 57: | ||
for ligne in file: |
for ligne in file: |
||
coordinates = ligne.split() |
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) |
# Draft.makePoint(float(X),float(Y),float(Z)) # create points (uncomment for use) |
||
print(X," ",Y," ",Z) |
print(X," ",Y," ",Z) |
||
wire.append(FreeCAD.Vector(float(X),float(Y),float(Z))) # append the coordinates |
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) |
|||
⚫ | |||
}} |
}} |
||
== Exemples == |
== Exemples == |
||
Line 83: | 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 105: | Line 124: | ||
==Version== |
==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.02 02/07/2019 : |
Latest revision as of 10:28, 16 October 2020
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 |
Page des macros Comment installer une macro Comment créer une barre d'outils |
Version Macro |
0.3 |
Dernière modification |
2020-10-16 |
Version(s) FreeCAD |
All |
Raccourci clavier |
None |
Voir aussi |
Macro_Dxf_To_Shape |
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
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