Macro WireXYZ: Difference between revisions
m (Description +) |
m (ver 02) |
||
Line 4: | Line 4: | ||
{{Macro |
{{Macro |
||
|Name=WireXYZ |
|Name=WireXYZ |
||
|Icon=Macro_WireXYZ.png |
|||
|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. |
|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.<br/>{{ColoredText|(Command line, paste this complete macro in the Python console)}}. |
||
|Author=Mario52 |
|Author=Mario52 |
||
|Version=0. |
|Version=0.2 |
||
|Date= |
|Date=2019-07-02 |
||
|FCVersion=All |
|||
|Download=[https://www.freecadweb.org/wiki/images/0/0a/Macro_WireXYZ.png ToolBar Icon] |
|||
}} |
}} |
||
Line 27: | Line 30: | ||
{{Code|code= |
{{Code|code= |
||
# -*- coding: utf-8 -*- |
# -*- coding: utf-8 -*- |
||
⚫ | |||
# created a wire with coordinate x y z separated (in the file) |
# created a wire with coordinate x y z separated (in the file without coma) |
||
__title__= "Macro_WireXYZ" |
|||
__author__= "Mario52" |
|||
__date__= "2019/07/02" |
|||
__version__= "00.02" |
|||
## |
|||
#EX: |
#EX: |
||
#0 0 0 |
#0 0 0 |
||
Line 34: | Line 43: | ||
#. . . . |
#. . . . |
||
⚫ | |||
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 |
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 48: | Line 55: | ||
X,Y,Z = coordinates # separate the coordinates |
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 |
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 |
||
Line 54: | Line 61: | ||
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) |
||
App.ActiveDocument.recompute() |
|||
}} |
}} |
||
Line 111: | Line 120: | ||
==Links== <!--T:18--> |
==Links== <!--T:18--> |
||
The discussion [http://forum.freecadweb.org/viewtopic.php?f=3&t=7828 How do I transform a point cloud to a line?] |
The discussion [http://forum.freecadweb.org/viewtopic.php?f=3&t=7828 How do I transform a point cloud to a line?] |
||
==Version== |
|||
00.02 02/07/2019 : |
|||
00.01 21/02/2015 |
|||
</translate> |
</translate> |
Revision as of 18:17, 2 July 2019
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. (Command line, paste this complete macro in the Python console). Macro version: 0.2 Last modified: 2019-07-02 FreeCAD version: All Download: ToolBar Icon Author: Mario52 |
Author |
Mario52 |
Download |
ToolBar Icon |
Links |
Macros recipes How to install macros How to customize toolbars |
Macro Version |
0.2 |
Date last modified |
2019-07-02 |
FreeCAD Version(s) |
All |
Default shortcut |
None |
See also |
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
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__= "2019/07/02"
__version__= "00.02"
##
#EX:
#0 0 0
#10 10 10
#15 20 25
#. . . .
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)
App.ActiveDocument.recompute()
Example
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 open
and replace with (closed=True):
Draft.makeWire(wire,closed=True,face=False,support=None) # create the wire closed
same for the face, False or True (face=True).
Links
The discussion How do I transform a point cloud to a line?
Version
00.02 02/07/2019 :
00.01 21/02/2015