Olivier Eckmann
Membres-
Compteur de contenus
2 348 -
Inscription
-
Dernière visite
-
Jours gagnés
119
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Olivier Eckmann
-
Salut, Ce n'est pas moi qui suis le gestionnaire du compte, mais normalement j'avais été ajouté pour pouvoir faire tout ce qui était téléchargement. Visiblement non, je vais vérifier. Est-ce que tu as pu tester ça ou pas? Quid de la partie 3D? Sinon je vais attendre la 2015, mais vu que la 2014 ne fonctionne pas trop mal, je vais pas tenter le diable avec une toute nouvelle version. Olivier
-
Bonjour, J'ai vu passer sur 2 blogs (un italien et un tcheque), la mise à disposition pour les clients sous souscription d'un connecteur FDO Pour PostGIS en version 2.0. Or à partir de mon portail de souscription je n'ai pas accès à la partie "Amélioration du logiciel", mais seulement à la partie "Mettre à jour vos logiciels". Est-ce que quelqu'un a pu récupérer/tester ce fournisseur ? Merci Olivier
-
Régénération automatique
Olivier Eckmann a répondu à un(e) sujet de salvanorigatore dans AutoCAD 2014
REGNAUTO actif Olivier -
Jonidre des polylignes 3D par reconaissance des contacts
Olivier Eckmann a répondu à un(e) sujet de thierry.garré dans AutoCAD 2008
Bonjour, Personnellement, quand j'ai des soucis d'arrondi infime de coordonnées, je fait un wbloc des objets à arrondir, puis un export (enregistrer sous) DXF et dans les options je spécifie X décimales (par ex 6) ainsi toutes les coordonnées sont arrondies à 6 décimales. On ferme le DXF, puis on le ré-ouvre et je ré-importe dans mon dessin. Et hop tout fonctionne. Olivier -
Merci pour le code d'exemple, c'est très clair. En fait dans ton exemple, le réacteur sur une polyligne met à jour un autre objet et son handle ne change pas, ce qui te permet de créer un réacteur par objet et de tout faire dans le call-back puisque l'objet ayant réagit n'est pas modifié, juste interrogé. Dans mon cas, le réacteur sur l'objet reconstruit des enfants à partir de l'objet ayant réagit. Pour ne pas avoir à toucher l'objet dans le call-back, il faudrait que les handle des enfants créés soit mis à jour dans un xrecord et que le parent pointe toujours sur le même xrecord. Par contre le problème c'est que si le copie/wbloc mes objets, le xrecord ne le sera pas et je vais perdre mon associativité. Ca m'oblige donc a réagir dans le command-ended et donc de connaître le réacteur => construction d'un seul réacteur nommé et ajout de tous les objets dedans. Ca fonctionne mais c'est quand même un peu compliqué; je vas voir si je ne peux pas avoir un enfant principal qui connait les autres objets et l'objet de base ne connaîtra que cet enfant dont je ne ferais que mettre à jour la géométrie (sans changer son Handle). J'avais une autre question sur ton code. Tu gères l’événement vlr-unerased. A part dans le cas d'un UNDO qui devrait tout rétablir, dans quel cas cet événement se déclenche et qu'est-ce que tu fais dans le call-back? Y a-t-il quelque chose de particulier à rétablir? Dans mon code je ne l'ai pas géré et ça semble fonctionner correctement dans la commande Annuler. Olivier
-
Merci Gilles, je vais éplucher ça Olivier
-
Ca y est c'est réglé. En fait en balayant la liste des objets ayant un réacteur à restaurer, je créais le réacteur sur le 1er, puis j'ajoutais un par un les objets à mon réacteur (vlr-owner-add), ce qui déclenchait le réacteur sur les objets déjà présents dans le réacteur => boucle infinie + plantage. En créant le réacteur avec la liste de tous les objets en une fois, ça ne plante plus. Ceci dit, si quelqu'un a la réponse sur le réacteur :vlr-dwgFileOpened pour savoir quel dessin est notifié, je suis preneur de l'info. Olivier
-
Bon je progresse, mes réacteurs (sur Command-ended) fonctionnent bien sur la modification d'un objet, sa copie, son effacement... Par contre j'ai un souci à l'ouverture du dessin, le but étant que le chargement de mon VLX restaure les réacteurs (non persistants). Pour cela, je stocke en XData 2 types d'infos: - Application enregistrée : "ReacteurPerso" valeur 1000 "ReacteurPersoType1" - App enreg : "ReacteurPersoType1" valeur ... (toutes les infos nécessaire à mon réacteur : handle "enfant" + paramètres) mon appli lit la base DWG en filtrant sur l'appli ReacteurPerso : (ssget "x" (list (cons -3 (list (list "ReacteurPerso"))))) et s'il y en a, je reconstruis les réacteurs sur les objets "parents" Si j'ouvre mon dessin, puis que je lance ma fonction pas de souci tout fonctionne Si j'inclue cette fonction dans mon VLX et que je fais charger mon VLX au démarrage, alors j'ai un plantage scandr.cpp@2313:eLockViolation comme si le VLX se chargeait avant que le dessin ne soit dispo pour en faire quoique ce soit. J'ai essayé de voir si je pouvais mettre en place un réacteur sur l'évènement :vlr-dwgFileOpened mais ça ne fonctionne pas (en tout cas je ne reçois pas la notification dans le dessin qui vient de s'ouvrir) d'ailleurs quel dessin est censé recevoir la notification, est-ce lui même, ou bien le dessin courant précédent, ou bien l'éditeur? Si quelqu'un (Gile) a une piste de recherche je suis preneur? Merci Olivier
-
Salut, Effectivement, je vais essayer mais je suis un peu perplexe. J'ai commencé à mettre en place les réacteurs comme dans le tutoriel VLisp. Ca a l'air de fonctionner, mais c'est pas simple à gérer (et à débugger) avec les Undo aussi. Je vais continuer à chercher. Merci Olivier
-
Bonjour, J'essaie de jouer avec les réacteurs (non persistent) sur des polylignes. J'ajoute un réacteur sur mon objet et je réagis sur l’événement ObjectClosed => :vlr-objectClosed Dans la fonction appelé par le callback, j'essaie de : 1. Lire les Xdatas sur l'objet modifié pour retrouver les handle des objets "enfants" =>OK 2. Supprimer les objets "enfants" => OK 3. Décaler l'objet de base => PB, donc lecture de la géométrie, dessin d'une poly temporaire, décalage de la poly temporaire, suppression de la poly temporaire 4. Dessin d'autres objets "enfants" 5. Ajout en XData des Handle des objets "enfants" sur l'objet de base => PB Donc a priori, je n'ai pas accès à l'objet en mode modification alors que je réagis sur l'événement ObjectClosed, donc l'objet devrait être fermé par AutoCAD et accessible par ma fonction. A moins que je n'ai pas le droit de modifier l'objet ayant provoqué le réacteur. En ARX on a un réacteur BeginQuietentSate qui dit qu'AutoCAD ne fait plus rien, mais je n'ai pas trouvé d'équivalent en VLisp. Est-ce qu'il y a moyen d'ajouter des xdatas sur un objet ayant provoqué un événement? Dans le tutoriel VLisp, la réaction sur l'objet modifié crée une variable, et c'est le réacteur sur le Command-ended qui provoque le redessin des entités. Est-ce qu'il faut absolument faire comme ça ou bien y a-t-l possibilité de dessiner directement dans le call-back sur l'objet lui-même. Merci Olivier
-
autocad map 2014, mapimport ne fonctionne pas avec SHP
Olivier Eckmann a répondu à un(e) sujet de indigos dans Autodesk Map
Bonjour, ci-joint le lien vers le correctif pour MAP 2014 Olivier -
Bonjour, Je suis à la recherche d'un bon revendeur (pas un pousseur de carton) de traceur HP sur la région parisienne si possible, compétent sur le hard et la connexion avec AutoCAD. Merci Olivier
-
Palette de normalisation de plan
Olivier Eckmann a répondu à un(e) sujet de Olivier Eckmann dans ObjectARX/DBX, C++, .NET, RealDWG
Il me semble que WPF nécessite au minimum le framework 3.0 et avec mes 2007 et 2008 qui ne supportent que le framework 2.0 ça ne devrait pas passer. Merci pour les liens permettant d'intercepter le clic dans un webrowser, je pense que je vais m'orienter là-dessus. Olivier -
Palette de normalisation de plan
Olivier Eckmann a posté un sujet dans ObjectARX/DBX, C++, .NET, RealDWG
Bonjour, Dans la perspective de normaliser la production de plan selon les donneurs d'ordre, j'envisage de proposer une(des) palettes qui reprennent les étapes de dessin/contrôle des plans. J'ai envisagé plusieurs solutions mais chacune a ses limites: 1. Palette AutoCAD, fichier XTP sur un dossier partagé du réseau, mais cela oblige chaque utilisateur à importer la palette XTP créée. De plus je ne suis pas sûr qu'il mette à jour la dernière version systématiquement. 2. Palettes communes et partagées pour tout le monde sur le réseau. Le problème c'est que les utilisateurs ont des AutoCAD 2007 à 2014, et d'après ce que j'ai lu les palettes ne sont pas directement partageables entre les différentes versions d'AutoCAD. De plus le défaut des palettes, c'est que ce n'est pas forcément très explicite : icône ou texte J'envisage donc une 3ème solution qui consisterait à créer ma palette dans laquelle j'affiche une Winform qui encapsule un contrôle CHM, RTF, Html??? Dans ce contrôle je pourrais afficher un descriptif des étapes, des avertissements et des conseils et un bouton/lien pour lancer la commande correspondante dans AutoCAD. La question, est-ce que je peux lancer une commande AutoCAD à partir d'un texte?Hyperlien?image? dans un contrôle RTF, HTML, CHM? Le développement de l'interface se ferait en C#, les commandes à lancer étant C# ou lisp ou AutoCAD native. Merci Olivier -
Bonjour, menu Outils / Norme CAO / convertisseur de calque Associer le calque à purger avec le calque 0 (à créer à droite) puis faire Convertir. Dans 95% des cas ça fonctionne. Olivier
-
NVIDIA Quadro K600 --- CA RAME
Olivier Eckmann a répondu à un(e) sujet de ben1980 dans AutoCAD LT 2014
Bonjour, Il me semble que l'on est dans un forum AutoCAD LT et que faire tourner un model 3D de 20Mo à 60fps avec texture réaliste ne corresponde pas au besoin initial. C'est sûr que "qui peut le plus, peut le moins", mais pour travailler sur du plan 2D filaire, la quadro 600 devrait faire l'affaire, même si il y a mieux pour moins chère (y compris en 2D). Je ne suis pas sûr que le problème soit dû à la carte vidéo. Olivier -
Bonjour, J'utilise FileHamster en version free. Tu lui spécifies un dossier à surveiller, tu peux inclure ou exclure des fichiers/extensions/dossiers et tu lui indiques un dossier (librairie) où stocker les versions. A chaque fois qu'un fichier surveillé est modifié, il est copié automatiquement (et horodaté) dans le dossier de sauvegarde. Tu peux ensuite revenir n'importe quel fichier. Il y a une fonction de purge pour nettoyer les versions anciennes une fois un dossier fini par ex. Je ne l'utilise personnellement que pour surveiller mes sources de développement (lisp et C#). Je n'ai jamais testé sur les DWG. L'espace disque consommé risque d'être assez conséquent. Olivier
-
Bonsoir, je n'ai pas tout à fait les mêmes tarifs pour du MAP 3D Souscription : 825HT sans remise possible MAP3D (full) négociable à 3500HT Çà ne fait plus que 4-5 ans pour devenir rentable. Et en plus quand tu rachètes une nouvelle licence, l'ancienne est tout à fait utilisable sur un PC un peu plus vieux, donc ça fait un poste de plus si nécessaire. Olivier
-
Bonjour, en ligne de commande, tu fais -PURGER R * N et ton fichier passe de 1.3Mo à 155Ko (ne pas oublier le signe "moins" devant Purger) Olivier
-
Visibilité des poignées des attributs dans les blocs
Olivier Eckmann a répondu à un(e) sujet de salvanorigatore dans AutoCAD 2013
Bonjour, mettre les blocs en PositionZ = 0 au lieu de 1.0E+99 et les poignées réapparaissent Olivier -
Coordonnées dernier point dans fichier texte
Olivier Eckmann a répondu à un(e) sujet de laurentpo dans Débuter en LISP
Alors il faut remplacer (ssname points(1-(sslength points))) par (ssname points 0) -
Autopiste: Courbes supplémentaires
Olivier Eckmann a répondu à un(e) sujet de La Lozère dans Autopiste
Pourquoi ne pas utiliser un PRL dans lequel les courbes fossé on une couleur 255,255,255 Olivier -
Bonjour, Ne connaissant pas Mensura, je ne m'avancerais pas trop, et ayant arrêté d'utiliser Civil depuis 2 ans, mes impressions datent de Civil 2012, mais pour moi le produit Civil3D n'est pas concurrent frontal d'un Covadis/Autopiste ou d'un Mensura. Même s'ils permettent de faire la même chose, le recouvrement de leur champ d'application respectif (domaines dans lesquels ils sont performants) est assez restreint. Civil est un très bon produit de "démo", ce n'est pas péjoratif, mais il est très "visuel" : changement de style en 1 clic, regard d'assainissement 3D, détection de clash visuel. Il est très rapide pour des études de variantes, des analyses rapides. Mais lorsque l'on rentre dans le détail, ça se corse rapidement. Comme rappelé précédemment, c'est un produit américain qui a été adapté au marché français, donc certaines normes, règles, méthodes ne sont pas applicables. Par ex les calculs de cubatures sur un projet de route se calcule en France par "surface au droit du profil" multiplié par 1/2 longueur d'application avant et arrière. Dans Civil, c'est "surface au droit du profil" multiplié par la longueur depuis le profil précédent. Donc le 1er profil a toujours un volume de cubature égal à 0. Ça ne change rien sur le calcul total, mais si tu présentes ça à un CG "qui tient la route techniquement" tu te fais jeter. En assainissement, le blindage, le CCTG de 70... ne sont pas intégrés ni gérés, par contre les regards et les tranchées se dessinent en 3D. Le module terrassement, n'est pas une plate-forme au sens "français" du terme, c'est du simple talutage : pas de structure... Impossible dans un même DWG d'avoir 2 profils en long ayant des échelles horizontales différentes. Si un profil en long est coté dans les bandeaux avec 2 décimales et qu'il faut passer à 3 décimales, soit le style a été créé dans le gabarit et ça se fait en 1 clic, soit il faut créer le style et ça prendra 10 minutes si tu sais faire, ou 1 jour (voir plus) si tu ne l'as jamais fait. Une fois dessiné ton profil TN, lorsque tu crées ta courbe projet, c'est à toi à renseigner les bandeaux à la main et à choisir dans une liste déroulante la bonne courbe pour la cotation. Les métrés (QTO) c'est franchement pas terrible. Imprimer un cahier de profil en travers, c'est pas simple non plus. ... Et comme indiqué par Lovecraft, trouver quelqu'un de compétent sur Civil pour avoir du support, ça ne court pas les rues. Tous ces points "négatifs" sont par contre les points forts des produits Covadis/autopiste ou Mensura. Dans les points positifs de Civil, l'interaction avec 3DSMax à travers Civil View est vraiment un plus pour la visu 3D, mais là encore on est dans de la maquette qui en jette visuellement, mais pas forcément très rigoureuse. On se fout de la longueur ou du paramètre de la clothoïde. On regardera que les jolies voitures qui roulent sur la route. Pour moi, Civil est aussi complexe à appréhender qu'un MX, mais moins puissant. Cela nécessite un ingé ou un très bon projeteur, rigoureux, appliqué, curieux et persévérant. Il faut appliquer des méthodes qui ne sont pas forcément dans la logique "française" et contrôler, contrôler et re-contrôler son paramétrage, et si on veut l'exploiter correctement, il faudra forcément mettre les mains dans le cambouis à un moment ou un autre. A la question initiale "Qui utilise Civil 3D", très peu de personnes pour faire de l'exe à ma connaissance, un peu plus pour des fonctions d'analyse de MNT, Cubature, APS simple. Olivier
-
[Résolu] Grread Matrice et VIEWTWIST
Olivier Eckmann a répondu à un(e) sujet de Olivier Eckmann dans Routines LISP
Merci Gilles, Effectivement ça m'a travaillé une partie de la nuit et ce matin je me suis aperçu que j'avais appliqué la rotation à mes vecteurs temporaires au lieu de l'appliquer à mon point de décalage. J'avais fait plus compliqué (cos et sin) que le passage par la fonction trans. Je vais regarder plus en détail cette fonction. En tout cas ça fonctionne. Merci Olivier -
Bonjour, j'essaie de mettre en oeuvre le lisp suivant trouvé sur ce site ;; Grread+osnap+GRVECS ;; Rewritten by Fools @ TheSwamp.org ;; ;; Use (grread) to get original point ;; Use (osnap) to calculate accurate point ;; Use (GRVECS) to show AutoSnapMarker ;; No return , just show the method (DEFUN c:tmp (/ AUTOSNAPMARKERCOLOR AUTOSNAPMARKERSIZE DRAG GHOSTPT LST_OSMODE STR_OSMODE TIME DistPerPixel Bold Draftobj VecsLst get_osmode sparser YPY_VecsList YPY_GetGrvecs YPY_DrawVecs ) ;; CAB 10/5/2006 ;; Fools change a little about "," (3/3/2007) ;; ;; Function to return the current osmode setting in the form of a string ;; If (getvar "osmode") = 175 ;; (get_osmode) returns "_end,_mid,_cen,_nod,_int,_per" (DEFUN get_osmode (/ cur_mode mode$) (SETQ mode$ "") (IF (< 0 (SETQ cur_mode (GETVAR "osmode")) 16383) (MAPCAR (FUNCTION (LAMBDA (x) (IF (NOT (ZEROP (LOGAND cur_mode (CAR x)))) (IF (ZEROP (STRLEN mode$)) (SETQ mode$ (CADR x)) (SETQ mode$ (STRCAT mode$ "," (CADR x))) ) ) ) ) '((1 "_end") (2 "_mid") (4 "_cen") (8 "_nod") (16 "_qua") (32 "_int") (64 "_ins") (128 "_per") (256 "_tan") (512 "_nea") (1024 "_qui") (2048 "_app") (4096 "_ext") (8192 "_par") ) ) ) mode$ ) ;; This one uses pointers ;; written by CAB @ TheSwamp.org (DEFUN sparser (str delim / ptr lst stp) (SETQ stp 1) (WHILE (SETQ ptr (VL-STRING-SEARCH delim str (1- stp))) (SETQ lst (CONS (SUBSTR str stp (- (1+ ptr) stp)) lst)) (SETQ stp (+ ptr 2)) ) (REVERSE (CONS (SUBSTR str stp) lst)) ) ;;My functions ;;Initial Grvecs List (DEFUN YPY_VecsList (/ CIRCLE CROSS SQUARE LINE) (SETQ square '(((-1 1) (-1 -1) (1 -1) (1 1) (-1 1)))) (SETQ cross '(((-1 1) (1 -1)) ((-1 -1) (1 1)) ((1 0.859) (-0.859 -1)) ((-1 0.859) (0.859 -1)) ((0.859 1) (-1 -0.859)) ((-0.859 1) (1 -0.859)) ) ) (SETQ circle '(((0 1) (-0.707 0.707) (-1 0) (-0.707 -0.707) (0 -1) (0.707 -0.707) (1 0) (0.707 0.707) (0 1) ) ) ) (SETQ line '(((1 1) (-1 1)))) (LIST (CONS "_end" square) ;square '("_mid" ((0 1.414) (-1.225 -0.707) (1.225 -0.707) (0 1.414)) ) ;triangle (CONS "_cen" circle) ;circle (APPEND '("_nod") square cross) ;circle+cross '("_qua" ((0 1.414) (-1.414 0) (0 -1.414) (1.414 0) (0 1.414)) ) ;square rotate 45 (CONS "_int" cross) ;cross '("_ins" ((-1 1) (-1 -0.1) (0 -0.1) (0 -1.0) (1 -1) (1 0.1) (0 0.1) (0 1.0) (-1 1) ) ) ;two squares '("_per" ((-1 1) (-1 -1) (1 -1)) ((0 -1) (0 0)) ((0 0) (-1 0)) ) ;two half square (APPEND '("_tan") circle line) ;circle+line (APPEND '("_nea") '(((1 -1) (-1 -1))) line cross) ;two line+cross '("_qui") ; ??? (APPEND '("_app") square cross) ;square+cross '("_ext" ((0.1 0) (0.13 0)) ((0.2 0) (0.23 0)) ((0.3 0) (0.33 0)) ) ;three points '("_par" ((0 1) (-1 -1)) ((1 1) (0 -1))) ;two lines rotate 45 ) ) ;;Get Grvecs List (DEFUN YPY_GetGrvecs (pt dragpt lst vecs / KEY) (SETQ key T) (WHILE (AND key lst) (IF (EQUAL (OSNAP dragpt (CAR lst)) pt 1E-6) (SETQ key nil) (SETQ lst (CDR lst)) ) ) (CDR (ASSOC (CAR lst) vecs)) ) ;;Use GRVECS (DEFUN YPY_DrawVecs (Pt Vecs Size Color / lst matrix) ;;no Z axis (SETQ matrix (LIST (LIST Size 0.0 0.0 (CAR pt)) (LIST 0.0 Size 0.0 (CADR pt)) (LIST 0.0 0.0 1.0 0.0) (LIST 0.0 0.0 0.0 1.0) ) ) (GRVECS (APPLY (FUNCTION APPEND) (APPLY (FUNCTION APPEND) (MAPCAR (FUNCTION (LAMBDA (x) (IF (> (LENGTH x) 2) (MAPCAR (FUNCTION LIST) (MAPCAR (FUNCTION (LAMBDA (x) Color)) x) x (CDR x) ) (LIST (CONS Color x)) ) ) ) Vecs ) ) ) matrix ) ) ;;**************************** ;; Main Routine starts here ;;**************************** (VL-LOAD-COM) (SETQ time T) (SETQ VecsLst (YPY_VecsList)) (SETQ str_osmode (get_osmode)) (SETQ lst_osmode (sparser str_osmode ",")) (SETQ Draftobj (VLA-GET-DRAFTING (VLA-GET-PREFERENCES (VLAX-GET-ACAD-OBJECT)) ) ) (SETQ AutoSnapMarkerSize (VLA-GET-AUTOSNAPMARKERSIZE Draftobj)) (SETQ AutoSnapMarkerColor (VLA-GET-AUTOSNAPMARKERCOLOR Draftobj)) (WHILE time (GRREAD (SETQ drag (GRREAD T 1 1))) ;Can change like (grread T 15 2) (COND ((= (CAR drag) 5) (REDRAW) (SETQ drag (CADR drag)) (IF (OR (ZEROP (STRLEN str_osmode)) (NULL (SETQ ghostpt (OSNAP drag str_osmode))) ) (SETQ ghostpt drag) ;;Beacuse of mouse middle button scroll , calculate "DistPerPixel" every time (PROGN (SETQ DistPerPixel (/ (GETVAR "VIEWSIZE") (CADR (GETVAR "SCREENSIZE")))) ;;Bold (SETQ Bold (MAPCAR '* (LIST DistPerPixel DistPerPixel DistPerPixel) (LIST (+ AutoSnapMarkerSize 0.5) AutoSnapMarkerSize (- AutoSnapMarkerSize 0.5) ) ) ) (FOREACH item Bold (YPY_DrawVecs ghostpt (YPY_GetGrvecs ghostpt drag lst_osmode VecsLst) item AutoSnapMarkerColor ) ) ) ) ) ((= (CAR drag) 3) (IF (NULL (SETQ ghostpt (OSNAP (CADR drag) (get_osmode)))) (SETQ ghostpt (CADR drag)) ) (REDRAW) (SETQ time nil) ) ) ) (PRINC) ;can return ghostpt if u want ) Lorsque mon écran est plein nord (VIEWTWIST à 0) quelque soit le SCU ça fonctionne, par contre lorsque mon Nord est tourné, ça ne fonctionne plus Dans la fonction de dessin GRVECS, j'ai essayé d'introduire la rotation dans la matrice de transformation, mais ça ne fonctionne pas ;;Use GRVECS (DEFUN YPY_DrawVecs (Pt Vecs Size Color / lst matrix) ;;no Z axis ;; AJOUTER (setq dViewTwist (- (getvar "VIEWTWIST"))) (setq dR00 (* Size (cos dViewTwist) )) (setq dR01 (* Size (sin dViewTwist) )) (setq dR10 (* Size (- (sin dViewTwist)))) (setq dR11 (* Size (cos dViewTwist) )) ;; FIN DE L'AJOUT (SETQ matrix (LIST (LIST dR00 dR01 0.0 (CAR pt)) (LIST dR10 dR11 0.0 (CADR pt)) (LIST 0.0 0.0 1.0 0.0) (LIST 0.0 0.0 0.0 1.0) ) ) (GRVECS (APPLY (FUNCTION APPEND) Que mon VIEWTWIST Soit =0 ou pas les accrochages se dessinent toujours au même (mauvais) endroit => bonne position mais pas tourné. Par contre si je fait varier la variable SIZE c'est bien pris en compte. Comment introduire la rotation du viewtwist dans la matrice pour que les vecteurs temporaires se dessinent au bon endroit? Merci Olivier
