![]() |
|
#1
|
|||
|
|||
I'm not sure if it's clear on what I'm trying to do. The first attached picture contains two coordinate axis drawn on the screw. The first one replicates the coordinate system that is created in inspector with axis colored red, green and blue. The second coordinate system shares its origin with the first, but is drawn to represent the global x,y,z coordinate system.
The basis for the first coordinate system is from the matrix created from the command: Code:
<node3d>.getMatrix(viz.ABS_GLOBAL, node='Inst-1430') [ 0.000000, -0.004384, -0.008988, 0.000000, -0.000000, 0.008988, -0.004384, 0.000000, 0.010000, 0.000000, 0.000000, 0.000000, -0.381762, -0.560596, -2.557960, 1.000000 ] Code:
[-0.381762 + 0.0, -0.560596 + (-0.004384), -2.557960 + (-0.008988)] I made the assumption that using the command Code:
moveaction = vizact.moveTo(y_trans, mode = viz.ABS_GLOBAL) <node3d>.addAction(moveaction) Here is the complete code I am using to draw those axis: Code:
def draw_line(p, axis, color): viz.startLayer(viz.LINES) viz.lineWidth(3) viz.vertexColor(color) viz.vertex(p) viz.vertex(axis) viz.endLayer() def debug_script(): #Data is a helper class that creates a global object to share all of our object data between scripts part = Data.getData().parts_list[0] global screw screw = part.getChildren()[0] point = [-0.381762, -0.560596, -2.557960] x_axis = [ 0.000000, -0.004384, -0.008988] y_axis = [ -0.000000, 0.008988, -0.004384] z_axis = [ -0.01, -0.00, 0.00] x_global = [1.0, 0.0, 0.0] y_global = [0.0, 1.0, 0.0] z_global = [0.0, 0.0, 1.0] global x_trans x_trans = [point[i] + x_axis[i]*30 for i in range(3)] global y_trans y_trans = [point[i] + y_axis[i]*30 for i in range(3)] global z_trans z_trans = [point[i] + z_axis[i]*30 for i in range(3)] draw_line(point, x_trans, [1,0,0]) draw_line(point, y_trans, [0,1,0]) draw_line(point, z_trans, [0,0,1]) x_global_axis = [point[i] + x_global[i] for i in range(3)] y_global_axis = [point[i] + y_global[i] for i in range(3)] z_global_axis = [point[i] + z_global[i] for i in range(3)] draw_line(point, x_global_axis, [1,1,0]) draw_line(point, y_global_axis, [1,0,1]) draw_line(point, z_global_axis, [0,1,1])
__________________
![]() |
#2
|
|||
|
|||
There is not enough information for me to say what the problem is. My guess is you are applying the transformation at the wrong hierarchy in the scene. node.getChildren will not return anything unless you previously called node.getChild or parented a node to the object. So it's not clear to me exactly which node you are operating on.
Click on the screw you want to translate in Inspector, then post a screenshot of the node path bar at the top, showing the full hierarchy of the screw. This should provide me with enough information to post some sample code for you. |
#3
|
|||
|
|||
Here is the screen cap you requested.
__________________
![]() |
#4
|
|||
|
|||
Thanks. The following code should translate the screw object along its local Y-axis:
Code:
screw = model.insertGroupBelow('Inst-1430') screw.setPosition([0,0.1,0]) Make sure you only call insertGroupBelow once per sub-node, since each call will insert a new node. |
![]() |
Thread Tools | |
Display Modes | Rate This Thread |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Haptic touch texture coordinates | yth | Vizard | 0 | 06-02-2012 03:40 AM |
How do coordinates in IS900 thransform into coordinates in vizard's world | jacky | Vizard | 1 | 08-11-2011 10:44 AM |
child-objects in VRML-file all have the same coordinates | Sven | Vizard | 4 | 06-09-2010 02:07 AM |
viz.vertex coordinates | lilio | Vizard | 6 | 05-16-2009 04:36 PM |
Object rotating around world axis, not own axis | tacbob | Vizard | 1 | 02-15-2007 09:12 AM |