π
<-

[W.I.P] Make3D pour TI-Nspire

Pour TI-Nspire OS 3.0 ou ultérieur.

Re: [W.I.P] Make3D pour Nspire CAS

Unread postby Levak » 03 Mar 2009, 18:48

Mic wrote:C'est beau.........


Tu l'as testé ? c'est si magnifique que ça ? :):






ou tu est resté bouche bé devant le gif animé ? :|:
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [W.I.P] Make3D pour Nspire CAS

Unread postby Levak » 07 Mar 2009, 16:28

Je suis en train de concocter un script d'export en python pour blender pour enregistrer en fichier texte les matrices de points et de faces d'un modèle 3D.

Pour l'instant je n'en suis que aux points, j'ai eu du mal à démarrer, ça ne faisait seulement que 3 jours que je venais de commencer python xD

 
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Select all
import Blender
print "nn"

 #############################################################
# Fonction prise sur le net permettant d'arrondir un resultat #
 #############################################################

Round = lambda x, n: eval('"%.' + str(int(n)) + 'f" % ' + repr(x))

 #############################
# On initialise les variables #
 #############################

lobjet = Blender.Object.GetSelected()[0]
lemesh = lobjet.getData ()
print "Il y a ", len(lemesh.verts), " vertices dans l'objet"
debut = "cube := "
resultat = ""
matrice = [0,0,0,0]
mat_x = mat_y = mat_z = mat_h = []

 ##########################################################
# Boucle pour lister tous les verticles et leurs positions #
 ##########################################################

for vertice in lemesh.verts:
   mat_x = mat_x + [Round(vertice.co[0], 1)]
   mat_y = mat_y + [Round(vertice.co[1], 1)]
   mat_z = mat_z + [Round(vertice.co[2], 1)]
   mat_h = mat_h + [1]

matrice[0], matrice[1], matrice[2], matrice[3] = mat_x, mat_y, mat_z, mat_h
resultat = debut+str(matrice)
resultat = resultat.replace("'","")
print "n",resultat


 ##################################
# On stock le tout dans un fichier #
 ##################################

logfile = open('test.txt', 'w')
logfile.write(resultat)
logfile.close()


Qui donne dans la console de blender:
 
Show/Hide spoilerAfficher/Masquer le spoiler
Il y a 8 vertices dans l'objet

cube := [[1.0, 1.0, -1.0, -1.0, 1.0, 1.0, -1.0, -1.0], [1.0, -1.0, -1.0, 1.0, 1.
0, -1.0, -1.0, 1.0], [-1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0], [1, 1, 1, 1,
1, 1, 1, 1]]


et enfin le fichier test.txt (nommé pour l'instant comme ça) contenant :

cube := [[1.0, 1.0, -1.0, -1.0, 1.0, 1.0, -1.0, -1.0], [1.0, -1.0, -1.0, 1.0, 1.0, -1.0, -1.0, 1.0], [-1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0], [1, 1, 1, 1, 1, 1, 1, 1]]

@+ ^^

edit:

finit la partie pour les faces :#wahoo#:
 
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Select all
import Blender
print "nn"

 #############################################################
# Fonction prise sur le net permettant d'arrondir un resultat #
 #############################################################

Round = lambda x, n: eval('"%.' + str(int(n)) + 'f" % ' + repr(x))

 #############################
# On initialise les variables #
 #############################

lobjet = Blender.Object.GetSelected()[0]
lemesh = lobjet.getData ()
print "Il y a ", len(lemesh.verts), " vertices dans l'objet"
obj_name = "cube"
assign_p = ":="
resultat = ""
matrice = [0,0,0,0]
mat_x = mat_y = mat_z = mat_h = []
numverts=0

 ##########################################################
# Boucle pour lister tous les verticles et leurs positions #
 ##########################################################

for vertice in lemesh.verts:
   mat_x = mat_x + [Round(vertice.co[0], 1)]
   mat_y = mat_y + [Round(vertice.co[1], 1)]
   mat_z = mat_z + [Round(vertice.co[2], 1)]
   mat_h = mat_h + [1]
   numverts+=numverts
matrice[0], matrice[1], matrice[2], matrice[3] = mat_x, mat_y, mat_z, mat_h
resultat = obj_name+assign_p+str(matrice)
resultat = resultat.replace("'","")
print "n",resultat

 ##########################################################
# Boucle pour lister toutes les faces et leurs références  #
 ##########################################################

mat_f = []
for face in lemesh.faces:
   mat_fa = []
   for vert in face.v:
      fa = ( ' %i' % (vert.index + 1) )
      mat_fa.append(fa)
   mat_f.append(mat_fa)
resultat2 = obj_name+"_edge"+assign_p+str(mat_f)
resultat2 = resultat2.replace("'","")
print "n",resultat2


 ##################################
# On stock le tout dans un fichier #
 ##################################

logfile = open('test.txt', 'w')
logfile.write(resultat+":"+resultat2)
logfile.close()


Bon, j'avoue, je me suis aidé d'internet...

hop hop hop

cube:=[[1.0, 1.0, -1.0, -2.0, 2.0, 1.0, -1.0, 0.0], [3.0, 1.0, 1.0, 3.0, 2.0, -0.0, 1.0, 4.0], [0.0, 0.0, 0.0, 1.0, 1.0, 2.0, 2.0, 2.0], [1, 1, 1, 1, 1, 1, 1, 1]]:cube_edge:=[[ 1, 2, 3, 4], [ 5, 8, 7, 6], [ 1, 5, 6, 2], [ 2, 6, 7, 3], [ 3, 7, 8, 4], [ 5, 1, 4, 8]]
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [W.I.P] Make3D pour Nspire CAS

Unread postby Levak » 09 Mar 2009, 19:59

NOUVELLE VERSION ! :#gol#:

http://levak.ifrance.com/prgm/files/Make3D_v4.tns

quoi de neuf ? :

- Script python enfin finit et bouclé
- Mode Solid/Wire enfin résolu mais pas fixé (seulement pour des objets convexes)
- Inverse les normales (relatif au mode Solid)
- Optimisation générale (round() au lieu de approx())

Voilà un pitit tuto :

1) Obtenir Blender v2.48 et Python v2.5 ou v2.6 (attention, pas la v3.01 je ne garanti pas que ça marche !)
http://www.blender.org/download/get-blender/
http://www.python.org/download/

2) Lancer Blender :
Une console s'ouvre (n'y touchez pas) puis Blender de lance :

Image


3) Importer un modèle :


Vous avez à disposition des menus comme sur d'autres logiciels, voici comment importer.
File Import
Là vous trouverez votre bonheur parmi les multiples formats gérés, après rien de plus simple.

Image

Ce tuto ne fait pas l'objet de l'apprentissage de Blender. Si vous voulez vous y intéresser il y a de bonnes bases ici :
http://blenderclan.tuxfamily.org/html/m ... x.php?id=3

/! Attention /!
Sélectionner l'objet (un seul) que vous voulez exporter avec CLIC DROIT
S'il est en plusieurs morceaux, sélectionnez les tous avec [MAJ] +CLIC DROIT puis [CTRL] + [J] + [Enter]

4) Ouvrir le script "exporter.py"
Mon script est disponible ici :
http://levak.ifrance.com/sessions/exporter.py (clic droit enregistrer la cible sous..)

On va faire simple : Mode Text
Cliquez sur l'icône à gauche symbolisé par une grille, puis passez en mode Text

Image

Puis Text Open

Image

Et on va chercher à l'endroit où on a enregistré le fichier pour obtenir ceci :

Image

moi j'ai des couleurs :#langue#:

5) Lancer le script
(mettez votre curseur sur la partie texte)
Pour lancer un script Python sur Blender, il faut utiliser le raccourcis [ALT] + [P]

et on obtient ceci :

Image

- "Nom" correspond au nom de l'objet 3D sur la calculatrice, mais pas forcément le nom du fichier.
- "Arrondir à" permet d'optimiser la matrice de points. Il correspond au nombre de chiffres après la virgule.
- "Mode d'export" vous invite à choisir la dimension de la matrice des faces. Un quadrilatère est formé de 4 points, donc 4 colonnes. On peu faire rentrer un Triangle dans cette matrice en dupliquant le dernier point. Un Triangle est composé de 3 points donc 3 colonnes. On peut faire rentrer un Quadrilatère dans cette matrice en divisant ce dernier.
Si vous estimez avoir plus de quads que de tri, préférez un export en Quadrilatères, sinon en Triangles.

Après avoir remplis les champs, appuyez sur "Exportez sous...." et le script vous invite à enregistrer le fichier d'export qui sera au format *.TXT, sinon appuyez sur "Annuler".

Voilà un exemple de fichier généré :

Code: Select all
Cube:=[[1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,-1.0],[1.0,-1.0,-1.0,1.0,1.0,-1.0,-1.0,1.0],[-1.0,-1.0,-1.0,-1.0,1.0,1.0,1.0,1.0],[1,1,1,1,1,1,1,1]]:Cube_edge:=[[1,2,3,4],[5,8,7,6],[1,5,6,2],[2,6,7,3],[3,7,8,4],[5,1,4,8]]


Il se décompose en plusieurs parties :

Cube:=[
[1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,-1.0],
[1.0,-1.0,-1.0,1.0,1.0,-1.0,-1.0,1.0],
[-1.0,-1.0,-1.0,-1.0,1.0,1.0,1.0,1.0],
[1,1,1,1,1,1,1,1]
]
:
Cube_edge:=[
[1,2,3,4],
[5,8,7,6],
[1,5,6,2],
[2,6,7,3],
[3,7,8,4],
[5,1,4,8]
]

Vous pouvez noter que la syntaxe est prête à être directement générée sur la calculatrice !

Cube est une matrice de points, elle comprend sur la première ligne les coordonnées x des points, sur la secondes les coordonnées Y et enfin sur la troisième les coordonnées Z. La dernière ligne permet de faire des transformations non linéaires telles que la translation, donc elle doit systématiquement rester à la valeur "1"

Cube_edge est la matrice des faces. L'ordre est dans le sens trigonométrique. elle informe la référence de chaque faces du point auquel il est rattaché.

6) Exporter et envoyer le fichier sur la calculatrice

Vous avez tous d'abord besoin de Nspire Text Editor disponible ici:
http://tiplanet.org/index.php?mod=ar ... voirid=397

Puis de TI Nspire Comuter Link disponible ici :
http://education.ti.com/educationportal ... rlink.html

Commençons :

- On copie colle le contenu du fichier d'export vers la fenêtre Nspire Text Editor :

Image

J'ai remarqué que lorsque l'on met tel quel le texte, ça va beaucoup plus vite ! Donc ne mettez pas le texte en mode "Expression Maths"

- On enregistre, on exporte au format *.tns

Image

- Envoyer le fichier *.tns vers la TI avec TI Computer Link
- Envoyer également Make3D.tns

Image

7) Sur Calculatrice

- Ouvrir le classeur contenant les matrices, sélectionnez tout avec [CTRL] + [A], copier le tout avec [CTRL] + [C]

Image

- Sortez du classeur et ouvrez Make3D.tns
Lisez de préférence le readme puis allez à la fenêtre 1.3 (page de calcul)

- Coller les matrices avec [CTRL] + [V] puis [Enter]

- Pour éviter les reboots de la calto car surcharge des buffers, effacez l'historique avec [Menu] + [5]

Image

- Enfin lancez le programme avec make3d( " cube " )
/! Attention ! /! L'argument doit être une chaîne de caractère, donc mettez le nom de la variable entre guillemets.

Image

- Enfin, admirer le joli Cube sur la page 1.2 !!

Image



Fin du tutoriel.
Toute réutilisation de ce tutoriel est interdite sans mon autorisation préalable.

Levak

__________________________

Est-ce qu'il y a quelqu'un de volontaire pour faire une version Word ou Open Office ? (j'ai un peu la flemme ^^)
Allez à vos com's
@+
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [W.I.P] Make3D pour Nspire CAS

Unread postby Emyl » 09 Mar 2009, 20:48

allez en format pdf, et tu l'ajoutes dans
"-----l'encyclopédie CSF-----
Calculatrices Sans Frontières"
de Critor ^^
Voila ce que moi avoir dit à vous
User avatar
Emyl
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 88.3%
 
Posts: 219
Joined: 21 Dec 2008, 00:00
Location: Sur sa chaise (électrique)
Gender: Male
Calculator(s):
MyCalcs profile
Class: Terminal S ^^

Re: [W.I.P] Make3D pour Nspire CAS

Unread postby Levak » 10 Mar 2009, 00:42

Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [W.I.P] Make3D pour Nspire CAS

Unread postby critor » 10 Mar 2009, 00:53

Super! :):
Qu'attends-tu pour nous le mettre sur le portail?

Tu vas exploser les téléchargements et les votes...
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 54.1%
 
Posts: 42451
Images: 17259
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: [W.I.P] Make3D pour Nspire CAS

Unread postby Levak » 10 Mar 2009, 09:05

critor2000 wrote:Super! :):
Qu'attends-tu pour nous le mettre sur le portail?

Tu vas exploser les téléchargements et les votes...


J'attends de voir s'il ya des remarques sur le prog lui même pour occasionnellement faire des modifs de dernière minutes (bug, prcticité, astuces, optimisations...)

@+ :hehe:
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [W.I.P] Make3D pour Nspire CAS

Unread postby Emyl » 10 Mar 2009, 11:12

GG :p
au fait tu peux poser encore des captures d'écran, pour ce qui n'ont pas (hélas) n-spire stp ?

c'est super beau, champion ^^
Voila ce que moi avoir dit à vous
User avatar
Emyl
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 88.3%
 
Posts: 219
Joined: 21 Dec 2008, 00:00
Location: Sur sa chaise (électrique)
Gender: Male
Calculator(s):
MyCalcs profile
Class: Terminal S ^^

Re: [W.I.P] Make3D pour Nspire CAS

Unread postby Levak » 11 Mar 2009, 19:23

Le tuto en vidéo.
La vidéo est faite à l'ava vite donc pas de retouche textuelle au fur et à mesure des actions, faut déjà avoir dans la tête tout le processus ^^

1ere vidéo ici (cliquer sur la liste à gauche)
http://mc_fps5.servhome.org/TPE_site/TP ... 1/vid.html
(6 minutes 16)

Vous verrez les longs moments de calcul....

@+
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [W.I.P] Make3D pour Nspire CAS

Unread postby Levak » 11 Mar 2009, 21:38

Bonsoir all
Bon, j'ai deux idées qui vont faire un ptit peu retarder la sortie de la version stable, pour éviter de retracer x fois la même ligne, vu que pour chaque faces, il y a des arêtes juxtaposées, donc à ne pas retracer...

- Stocker les couples de points dans une liste au fur et mesure et tracer ou non la ligne si le couple existe déjà (demande des ressources)
- Gérer une nouvelle matrice contenant cette fois si les couples des points pour tracer directement les lignes, tout en vérifiant leur normale avec la matrice des faces (des fichiers plus gros mémoire)

Deux solutions qui ont un point fort mais aussi un point faible (mis entre parenthèses)

voilà voilà... c'est l'un ou l'autre, je ne sais pas trancher

@+
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

PreviousNext

Return to Nspire-Lua

Who is online

Users browsing this forum: ClaudeBot [spider] and 97 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2715 utilisateurs:
>2705 invités
>3 membres
>7 robots
Record simultané (sur 6 mois):
29271 utilisateurs (le 11/07/2025)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)