Aller au contenu

(gile)

Moderateurs
  • Compteur de contenus

    12 247
  • Inscription

  • Dernière visite

  • Jours gagnés

    209

Tout ce qui a été posté par (gile)

  1. Salut, Je ne suis pas sûr d'avoir compris la question, mais si ton SCU est déjà enregistré, pouquoi n'utilises-tu pas la boite de dialogue du bouton SCU existants... ou la commande +GESTSCU ? En LISP : (command "_+ucsman" "" (while (not (zerop (getvar "cmdactive"))) (command pause) ) ) Et si tu veux afficher la vue dans le plan de ce SCU : (command "_plan" "_current") [Edité le 28/12/2005 par (gile)]
  2. (gile)

    Se prendre un plâtre

    Salut, Il existe des apprêts qui se passent avant la peinture, et qui empècheront le plâtre de boire de trop. Vois avec ton fournisseur de peinture.
  3. (gile)

    Fichier Excel

    Salut, Voici quelques lignes de code extraites de ce fichier, elles permettent de créer un nouveau fichier *xls ou d'en ouvrir un existant pour rajouter à la fin le contenu de la variable descr (dans cet exemple). Regarde dans l'aide les explications pour les fonctions open, close et getfiled. (setq file (open (getfiled "Créez ou sélectionnez un fichier" "" "xls" 33) "a" ) ) (princ descr file) (close file) [Edité le 26/12/2005 par (gile)]
  4. (gile)

    insertion d\'image

    As-tu essayé eTransmit ?
  5. (gile)

    insertion d\'image

    Salut, Je ne sais pas si çà répond à ta question,mais si tu insères une image et que tu la changes ensuite de répertoire (ou que tu la renommes), dans le dessin AutoCAD il n'y aura plus affiché que l'ancien chemin chemin de l'image (ou le chemin avec l'ancien nom).
  6. J'explique de manière plus détaillée ma méthode ici.
  7. (gile)

    Solides 3D en colimaçon

    Erratum : dans le LISP Helicoide, l'option par défaut à l'invite de : (setq sens (getkword "\nIndiquez le sens du pas [Droite/Gauche] [surligneur][/surligneur]: ")) a disparu au collage du message. On peut remplacer la ligne du LISP par celle ci-dessus.
  8. (gile)

    Solides 3D en colimaçon

    Merci Boris de faire le testeur. La version de M2S dont je donne le lien ci-dessus fonctionne, et en prime, nous cause en français.
  9. La question étant récurente, je me propose d'expliquer ici (je ne savais pas trop où poster çà) ma méthode pour créer des solides débillardés en colimaçon sur AutoCAD à l'aide de quelques LISP éparpillés çà et là sur le site. Mise à jour, dernières versions des LISP utilisés : M2S version 2007 : Version originale et Version sous-titrée en français En téléchargement : Helicoide et Res_hel Pour illustrer cette méthode, j'ai choisis l'exemple d'une main courante d'escalier en colimaçon autour d'un poteau. Pour une hauteur totale de 2880 mm, l'escalier comporte 16 marches de 180 mm de hauteur sur 360° (pas à droite), l'emmarchement est de 1000 mm, le poteau d'un diamètre de 200 mm, le limon et la main courante ont 60 mm de large. La première étape consiste, après avoir implanté l'escalier, à définir les arrêtes de la main courante (et du limon) à l'aide du LISP Helicoide. On ne trace qu'un segment de 1/16 de tour Commande: helicoide Entrez le nombre de segments par spire : 16 ENTER Entrez le nombre de spires ou [segments]: s ENTER Entrez le nombre de segments à tracer: 1 ENTER Indiquez le sens du pas (Droite/Gauche) : ENTER Spécifiez la valeur du pas de l'hélice: 2880 ENTER Spécifiez le rayon de l'hélice ou [Diamètre]: 1100 ENTER Spécifiez le point à la base de l'axe: 0,0 ENTER Même opération avec un rayon de 1160. http://img422.imageshack.us/img422/9961/debillardage13gy.png Copier (ils re-serviront pour les limons) les deux segments d'hélicoïde à la hauteur de la main courante. Dans un SCU pivoté de 90° sur X, dessiner le profil (section verticale) de la main courante : un seul objet (ligne, arc, polyligne...) au dessus des arrêtes, un seul au dessous. Il ne doit pas y avoir de "fausse dépouille" de part et d'autre de la ligne des arrêtes pour que le "démoulage" se passe bien. http://img353.imageshack.us/img353/1336/debillardage21wg.png Copier et aligner le profil à l'autre extrémité des segments d'hélicoïde. Après avoir paramétré SURFTAB1 et SURFTAB2, faire une surface gauche pour le dessus de la main courante et une autre pour le dessous. http://img433.imageshack.us/img433/1972/debillardage31zd.png Extruder les surfaces à l'aide de M2S Commande: m2s Sélectionnez une maille polygonale à solidifier: Entrez l'épaisseur du solide sous le point le plus bas : 40 ENTER Donner une épaisseur plus importante que la section du profil pour la maille supérieure et la même pour la maille inférieure. http://img473.imageshack.us/img473/5139/debillardage42je.png Soustraire le solide inférieur du solide supérieur. Faire de même pour le limon (si sa section est rectangulaire, avec des surfaces réglées à la place des surfaces gauches). Faire la première marche et 1 ou 2 balustres. http://img284.imageshack.us/img284/7828/debillardage57zo.png Mettre tous ces objets en réseau hélicoïdal avec RES_HEL Texte modifié suite à des améliorations dans RES_HEL Commande: RES_HEL Choix des objets: 4 trouvé(s) Choix des objets: ENTER Entrez le nombre d'éléments du réseau: 16 ENTER Spécifiez le décalage en hauteur: 180 ENTER Spécifiez le centre du réseau: 0,0 ENTER Précisez : angle décrit ou angle entre les éléments [Décrit/Elément] : ENTER Entrez l'angle décrit ou : 360 ENTER Spécifiez le sens de rotation [Horaire/Trigonométrique] : ENTER Ne pas oublier le poteau ! http://img398.imageshack.us/img398/7806/debillardage64sa.png On peut faire une union des tronçons de limon ou de main courante, mais il est plus sage d'en faire des blocs avant de lancer le réseau, le fichier sera moins d'autant moins lourd. Ceci n'est qu'une méthode, il y en a sûrement beaucoup d'autres, et peut-être AutoCAD 2007 permettra-t-il l'extrusion le long de splines 3D ? Je suis, bien sûr complètement à l'écoute de toute critque ou suggestion. [Edité le 23/12/2005 par (gile)][Edité le 25/12/2005 par (gile)][Edité le 26/12/2005 par (gile)][Edité le 31/12/2005 par (gile)][Edité le 1/1/2006 par (gile)] [Edité le 21/8/2006 par (gile)]
  10. (gile)

    image

    http://img398.imageshack.us/img398/7806/debillardage64sa.png
  11. J'ai modifié le premier LISP (arc_cdl et arc_cdl) et lui ai rajouté une nouvelle fonction arc_del (arc départ, fin, longueur de l'arc) grace à la routine (factor) trouvée par Bonuscad. Il y a maintenant de quoi rajouter une ligne à trois paragraphes du sous-menu Arc.
  12. Salut Christian, Bòna annada, a l'an que vèn. Comme on dit en pays d'òc.
  13. Salut, La réponse est au dessus (réponse 14)
  14. Çà me reviens, c'est ce que j'avais trouvé pour afficher les textes remplis dans une vue 3D en traits cachés (parcequ'en filaire, pas de problème). Est-ce bien ton cas ? _solprof ou solprofil (configurer le profil) est une commande qui s'utilise dans l'espace objet d'une fenêtre de présentation. Elle génère, à partir des solides de cette vue, sur 2 nouveaux calques, le profil 2D de la vue. Les calques PV-* et PH-* contiennent respectivement les traits visibles et cachés. Geler tous les caques sauf le PV-* et ceux des textes dans la fenêtre permet d'imprimer en traits cachés avec des textes plein. Pour lancer la commande taper _solprof ou solprofil ou menu Dessin -> Solides -> Configuration -> Profil ou barre d'outils Solides [Edité le 24/12/2005 par (gile)]
  15. Salut alybaba, La liste des variables est ici. Pour les textes évidés en 3D, tu peux faire un solprof de ta vue avant de l'imprimer, il me semble me souvenir que çà marche.
  16. (gile)

    VisualLISP et AutoLISP

    Et la mienne, donc !!! En bon apprenti discipliné, j'essaye de respecter au maximum cette consigne, mais il est des fois où les fonctions vla-* sont incontournables, ou bien plus pratique, pour récupérer certaines propriétés mais elles restent, pour moi en tout cas, fort rébarbatives pour créer certains objets (lwpolylignes, jeux de sélection, systèmes de coordonnées...). Je reformule donc ma question : est-ce que compiler des (defun) utilisant les fonctions vla-* avec des (defun) utilisant la fonction (command) ou les fonctions (entmake), (entmod)... pose le même "problème" que de compiler un (defun) dans lequel ces fonctions seraient mélangées. Mon ignorance du fonctionnement d'un compilateur est insondable.
  17. (gile)

    VisualLISP et AutoLISP

    L'information vient de Serge ici et là. Ma question n'est peut-être pas très bien formulée... Enfin, j'ai fait quelques essai et n'ai pas eu de problème.
  18. OK, je ne pensais qu'à la longueur totale.
  19. À Patrick_35 À quoi sert le (setq deb (vlax-curve-getStartParam sel)) ? Pour DistAtParam, EndParam semble suffisant ?
  20. Salut, J'ai lu, je ne sais plus où, qu'il était déconseillé de mélanger dans une routine VisualLISP et AutoLISP, ou que cela posait des problème de compilation (en *.fas ou *.vlx, si j'ai bien compris). Le problème est-il le même si on compile des routines entièrement en VisualLISP avec des routines en AutoLISP ?
  21. Re, Pour les arcs, c'est bizarre, de mon côté, pas de problème... Pour les splines, en effet Contour n'aime pas ces objets. Sinon, pour les splines (et les ellipses) il semble que le problème vienne aussi des machines CNC, voir ce sujet.
  22. Salut, Une lwpolyligne est une figure 2D, tous les points servant à sa création doivent être dans le plan du SCU courant. La commande Contour permet de créer des lwpolylignes dans le pan du SCU courant, mais à partir d'objets qui peuvent appartenir à des plans différents à condition qu'en vue dans le plan du SCU courant ils délimitent un contour fermé. Illustration, en rouge la polyligne créée avec contour, à gauche vue dans le plan du SCU et position du curseur, à droite vue 3D. Les lignes parallèles à l'axe des X sont à 500 unité en dessous du plan du SCU, les autres 500 au dessus. http://img360.imageshack.us/img360/3678/contour0ur.png
  23. Une version un peu plus aboutie. On peut choisir le calque en sélectionnant un objet sur ce calque ou faire "ENTER" et taper le nom du calque (çà marche sur les calques gelés) Les résultats sont donnés dans la fenêtre AutoCAD et peuvent être enregistrées dans un fichier Excel. ;;; C:LONG_LINE Calcule la longueur des lignes et lwpolylignes du calque spécifié ;;; Retourne la valeur du code dxf (defun val_dxf (code ent) (cdr (assoc code (entget ent))) ) ;;; LONGOBJT Retourne la longueur ou le périmètre d'un objet (ename) (defun LONGOBJT (ent) (vl-load-com) (vla-get-length (vlax-ename->vla-object ent)) ) ;;; Fonction principale (defun c:long_line (/ clq js cnt tot nb_l nb_pl lo_l lo_pl) (if (setq clq (entsel "\nSélectionnez un objet sur le calque ou : ") ) (setq clq (val_dxf 8 (car clq))) (setq clq (getstring "\nNom du calque: ")) ) (if (tblsearch "LAYER" clq) (progn (setq js (ssget "_X" (list '(0 . "LINE,LWPOLYLINE") (cons 8 clq))) nb_l 0 nb_pl 0 lo_l 0.0 lo_pl 0.0 ) (repeat (sslength js) (setq ent (ssname js (+ nb_l nb_pl))) (cond ((= (val_dxf 0 ent) "LINE") (setq nb_l (1+ nb_l) lo_l (+ lo_l (LONGOBJT ent)) ) ) ((= (val_dxf 0 ent) "LWPOLYLINE") (setq nb_pl (1+ nb_pl) lo_pl (+ lo_pl (LONGOBJT ent)) ) ) ) ) (setq descr (strcat "\nNom de calque..........\t" clq "\nNombre de lignes.......\t" (itoa nb_l) "\nLongueur de ligne......\t" (rtos lo_l) "\nNombre de polylignes...\t" (itoa nb_pl) "\nLongueur de polyligne..\t" (rtos lo_pl) "\nLongueur totale........\t" (rtos (+ lo_l lo_pl)) "\n" ) ) (textscr) (princ descr) (initget "Oui Non") (if (= (getkword "\nEnregistrer dans un fichier ? [Oui/Non] : " ) "Oui" ) (progn (setq file (open (getfiled "Créez ou sélectionnez un fichier" "" "xls" 33) "a" ) ) (princ descr file) (close file) ) ) (graphscr) ) (princ "\nNom de calque invalide.") ) (princ) ) [Edité le 21/12/2005 par (gile)]
  24. Tu as raison Tramber, pour ce sujet ci, où il n'est question que de lignes et poly le plus concis serait : (defun LONGOBJT (ent) (vl-load-com) (vla-get-length (vlax-ename->vla-object ent)) ) Mais je suis content d'avoir trouvé la méthode avec Param, elle marche aussi pour les longueurs des arcs et les périmètres des cercles et des ellipses. J'aime bien avoir des sous-routines polyvalentes de ce style pour m'en servir dans d'autres. Celle là je vais la garder, avec un controle des erreurs, genre : (defun VL-LONGOBJT (ent / l) (vl-load-com) (setq l (vl-catch-all-apply 'vlax-curve-getDistAtParam (list (vlax-ename->vla-object ent) (vlax-curve-getEndParam (vlax-ename->vla-object ent) ) ) ) ) (if (vl-catch-all-error-p l) (vl-catch-all-error-message l) l ) )
  25. Suite à la remarque fort pertinente de Zebulon_ et par la même pour répondre à Tramber, on peut remplacer la routine "longobjt" plus haut, par celle ci, beaucoup plus concise : ;;; LONGOBJT Retourne la longueur ou le périmètre d'un objet (ename) (defun LONGOBJT (ent) (vl-load-com) (vlax-curve-getDistAtParam (vlax-ename->vla-object ent) (vlax-curve-getEndParam (vlax-ename->vla-object ent) ) ) )
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité