Closed Ellana17 closed 2 months ago
Lors de l'import d'un fichier (quel format) il est possible de specifier un point d'origine et les vecteur de bases ?
J'utilise cloudcompare pour afficher plusieurs nuages de points avec la vibration comme valeurs pour l'échelle de couleur. Comme il n'est pas possible de définir une échelle globale (define a color scale #113 ) j'ai ajouté dans mon script python un calcul des valeurs min/max "générales" et j'ai ajouté à la fin de chaque fichier 2 lignes avec le min et le max aux coordonnées (0,0,0). Il y a donc p=2x"nb de nuages" points (0,0,0) qui se retrouvent "tout seuls" et j'aimerai rajouter des vecteurs X,Y,Z sur ces points pour qu'on comprennent qu'il ne s'agit pas d'usinage mais de l'origine de la pièce (les coordonnées des nuages de points étant selon la "position origine pièce").
La solution serait donc d'importer (ou de créer directement en python) le fichier csv suivant :
Mais comment faire pour que lors de l'import/ l'utilisation des données dans python Nx,Ny et Nz soient considérés comme des vecteurs :
et si possible que la case "Draw" soit cochée automatiquement
Importé "à la main", le fichier donne ça (avec une modification de "length"):
import numpy as np
import pycc
cc = pycc.GetInstance()
x = np.array([0, 0, 0])
y = np.array([0, 0, 0])
z = np.array([0, 0, 0])
normals = np.array([[0, 0, 1], [0, 1, 0], [1, 0, 0]])
print(normals[:, 0], normals[:, 1], normals[:, 2])
pc = pycc.ccPointCloud(x, y, z)
pc.reserveTheNormsTable()
pc.addNormals(normals[:, 0], normals[:, 1], normals[:, 2])
pc.setName("origin")
# pc.showNormalsAsLines(True) # Not yet possible
cc.addToDB(pc)
cc.updateUI()
Ce bout de code va creer un point cloud qui va creer un point a l'origine avec les normals comme vecteurs de base, avec la case draw coche. Mais le normales ne sont visible que l'lorsque l'on bouge la vue 🤔
Est ce que ca s'approche de ce qui est voulu ?
Désolé de répondre si tard, j'étais en vacances. J'ai testé le programme et j'ai un problème : la case draw ne s'est pas cochée automatiquement. De plus j'aimerai modifier le "length" pour que les vecteurs soient plus visibles. Peut-on le faire directement en python ? Le problème des vecteurs qui n'apparaissent que quand on tourne la vue peut être due au "Near clipping depth" (ctrl+molette) qu'il faut ramener à 0.
Le nouvelle version comprise dans l'installeur contient la fonction pour avoir la case draw
choché en faisant pc.showNormalsAsLines(True)
Par contre je ne sais pas comment augmenter la talle des vecteurs
Bonjour,
Je souhaiterai créer en python un petit programme qui affiche le point (0,0,0) ainsi que les vecteurs x,y et z partant de ce point. Dans CloudCompare, lors de l'import d'un fichier, Nx, Ny et Nz sont des "types de données" qui peuvent être choisit. Comment les choisir en python ?
Merci d'avance