gile
Membres-
Compteur de contenus
89 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par gile
-
Salut, Je me permet de répondre à la place de fabcad La routine ne contient pas de code pour la gestion des erreurs, donc en cas d'erreur ou d'échap les variables système ne sont pas restaurées à leur valeur initiale. Pour remédier à cela, il faudrait charger, avec la routine, un truc du genre (defun croix-hangars-err (msg) (if (or (= msg "Fonction annulée") (= msg "quitter / sortir abandon") ) (princ) (princ (strcat "\nErreur: " msg)) ) (setvar "cmddia" var-cmddia) (setvar "osmode" var-accrobj) (setvar "cmdecho" var-cmdecho) (setq *error* m:err m:err nil ) (princ) ) Et ajouter ceci au début de la routine -avant la sauvegarde des variables- pour redéfinir la fonction *error* standard : (setq m:err *error* *error* croix-hangars-err ) et ceci à la fin -avant le dernier (princ)- pour restaurer le *error* original : (setq *error* m:err m:err nil )
-
Salut, Tu peux créer un DWF avec la commande "Publier..." ou "Imprimer..." et celui qui n'a pas le logiciel pourra le voir et l'imprimer à partir d'un viewer : DWF Viewer de chez AutoDesk est gratuit. [Edité le 1/9/2005 par gile]
-
Réinitialiser la page d\'accueil
gile a répondu à un(e) sujet de Marc Blancher dans CADxp, comment ça marche?
Merci Eric, J'ai effectivement trouvé des clés Cadxp dans la base de registre, les ai supprimé, çà n'a rien changé. Tant pis, celà reste un soucis mineur, il suffit de me déconnecter en tant que membre pour avoir la page d'accueil par défaut. -
Salut, Je vais essayer d'être clair : (list) regroupe un nombre queconque d'expressions dans une liste, (cons) ajoute un élément au début d'une liste ou construit un élément de liste associative (c'est le cas dans l'exemple que tu donnes) : renvoie (0 . "INSERT") évalue les arguments (n) et renvoie (410 . "model") et renvoie la liste constituée de ces deux éléments : ((0 . "INSERT") (410 . n)) Pour résumer, utilisé avec une liste comme second argument (cons) ajoute le premier argument en début de liste : (cons 'A '(B C D)) renvoie (A B C D) utilisé avec un élément (atom) comme second argument (con)s renvoie une paire : (cons 'A 'B) renvoie (A . B) [Edité le 31/8/2005 par gile]
-
Réinitialiser la page d\'accueil
gile a répondu à un(e) sujet de Marc Blancher dans CADxp, comment ça marche?
Salut, Je suis déjà sur Firefox alors j'ai essayé avec internet explorer, mais dès que je me connecte en tant que membre les derniers messages disparaissent. L'ultime solution est peut-être d'ouvrir un nouveau compte. -
Réinitialiser la page d\'accueil
gile a répondu à un(e) sujet de Marc Blancher dans CADxp, comment ça marche?
Salut, Honte sur moi, je viens de faire exactement la même bétise et je trouve ce fil en cherchant à réparer. J'ai essayé toutes les solutions proposées ici, mais aucune n'a fonctionné. Si quelqu'un avait une autre solution, je suis preneur... -
Salut, La commande "align" est une commande définie extérieurement (traduction littérale) comme d'autres expliquées dans l'aide sous" AutoLISP references". Il faut s'assurer de leur chargement : (if (not (member "geom3d.arx" (arx))) (arxload "geom3d") ) On peut ensuite les utiliser avec la fonction "command" ou directement comme des fonctions AutoLISP : (command "_align" obj "" pt1 pt2 pt3 pt4...) ou (align obj "" pt1 pt2 pt3 pt4 ...)
-
Salut, Si c'est pour que le texte apparaisse sur fond blanc : Clic droit dans la fenêtre -> Masque d'arrière-plan... Cocher "Utiliser masque d'arrière-plan" et choisir la couleur.
-
Salut, Patick a mis en téléchargement une petite bibliothèque de chassis dynamiques Il s'agit de chassis (menuiserie ou serrurerie) qui conservent un maillage régulier quand on les redimensionne. Pour ces blocs, j'ai fait un petit LISP : ;;; Affiche dans la fenêtre de texte les dimensions du chassis dynamique sélectionné (defun c:dim_chassis (/ obj prop_lst count haut larg ep_mt ep_tv maille m_ver m_hor) (sssetfirst nil) (while (or (not obj) (/= (cdr (assoc 0 (entget obj))) "INSERT") (not (member (vla-get-effectivename (setq obj (vlax-ename->vla-object obj)) ) '("Chassis1X1" "Chassis2X1" "Chassis3X1" "Chassis4X1") ) ) ) (setq obj (car (entsel))) ) (setq prop_lst (vlax-safearray->list (vlax-variant-value (vla-getdynamicblockproperties obj) ) ) count 0 ) (while (< count (length prop_lst)) (cond ((and haut larg ep_mt ep_tv maille) (setq count (length prop_lst)) ) ((= (vla-get-propertyname (nth count prop_lst)) "Hauteur" ) (setq haut (vla-get-value (nth count prop_lst)) count (+ count 1) ) ) ((= (vla-get-propertyname (nth count prop_lst)) "Largeur" ) (setq larg (vla-get-value (nth count prop_lst)) count (+ count 1) ) ) ((= (vla-get-propertyname (nth count prop_lst)) "Épaisseur Mt" ) (setq ep_mt (vla-get-value (nth count prop_lst)) count (+ count 1) ) ) ((= (vla-get-propertyname (nth count prop_lst)) "Épaisseur Tv" ) (setq ep_tv (vla-get-value (nth count prop_lst)) count (+ count 1) ) ) ((= (vla-get-propertyname (nth count prop_lst)) "Visibilité" ) (setq maille (vla-get-value (nth count prop_lst)) count (+ count 1) ) ) (T (setq count (+ count 1))) ) ) (foreach n '(haut larg ep_mt ep_tv maille) (set n (vlax-variant-value (eval n))) ) (setq m_ver (read (substr maille 8 1)) m_hor (read (substr maille 10 1)) ) (textscr) (princ (strcat "\n\n " maille "\n\n Hauteur totale : " (rtos haut 2 0) " mm\n Largeur totale : " (rtos larg 2 0) " mm\n Épaisseur des montants : " (rtos ep_mt 2 0) " mm\n Épaisseur des traverses : " (rtos ep_tv 2 0) " mm\n Dimensions intérieures du maillage :\n X : " (rtos (/ (- larg (* (1+ m_ver) ep_mt)) m_ver) 2 1) " mm\n Y : " (rtos (/ (- haut (* (1+ m_hor) ep_tv)) m_hor) 2 1) " mm\n Débit :\n - 2 Montants de : " (rtos haut 2 0) " mm\n - " (itoa (1+ m_hor)) " Traverses de : " (rtos (- larg (* 2 ep_mt)) 2 0) (if (< 1 m_ver) (strcat " mm\n - " (itoa (* (1- m_ver) m_hor)) " Entretoises de : " (rtos (/ (- haut (* (1+ m_hor) ep_tv)) m_hor) 2 0) ) "" ) " mm\n Total linéaire : " (rtos (* (+ (* 2 haut) (* (1+ m_hor) (- larg (* 2 ep_mt))) (* (1- m_ver) (- haut (* (1+ m_hor) ep_tv))) ) 1e-3 ) 2 3 ) " m\n Surface totale : " (rtos (/ (* haut larg) 1e6) 2 2) " m2" ) ) (princ) ) Ce LISP ne marche évidemment que pour ces chassis dynamiques et devra être modifié en cas de modification des unités des blocs. Toute remarque ou suggestion est bienvenue.
-
Calcul dans un bloc dinamique, faisable ou pas ????
gile a répondu à un(e) sujet de fabien034 dans AutoCAD 2006
Salut, Je ne suis pas sûr que cela réponde à ta question, mais tu peux essayer de rajouter une action d'étirement sur le paramètre "L" avec un "variateur de distance" (clic droit sur l'action ou fenêtre de propriétés) égal à 1 et une autre sur le paramètre "P" avec un facteur de -0.5 [Edité le 22/8/2005 par gile] -
(getenv) (setenv) Oui mais quelles variables?
gile a répondu à un(e) sujet de bonuscad dans Pour aller plus loin en LISP
Re, Si je peux me permettre, il me semble qu'il y ait une petite erreur : dans le cas d'aucun changement, la variable variable locale "renvoi" ne retourne pas "null" mais une liste de "". Je propose donc de remplacer : par : (if (apply '= renvoi) (prompt "\nAucune variable modifiée.") [Edité le 20/8/2005 par gile] -
Salut, La commande "décomposer" décompose un objet en différents objets AutoCAD dont l'objet primitif était constitué. Quand tu insère une image, tu ne crée pas à proprement parler un objet AutoCAD mais plutôt un lien vers un fichier extérieur. La décomposition doit casser ce lien, d'où la disparition de l'image. Pour "exploiter" une image raster on est souvent obligé de redessiner par dessus.
-
(getenv) (setenv) Oui mais quelles variables?
gile a répondu à un(e) sujet de bonuscad dans Pour aller plus loin en LISP
Salut, Encore une fois merci et bravo à Bonscad, ces deux routines (STATVAR et STATENV) seront sûrement très utiles à tous ceux qui pratiquent (ou s'essayent) à la programmation. Mais j'ai une question : où peut on trouver la liste des variables d'environnement pour les versions ultérieures à 2002. J'avais déjà posé cette question à propos de la variable "acedChangeCmdEchoWithoutUndo" qui n'existait pas dans la version 2002, je n'avais pas eu de réponse parceque la question s'était perdue au milieu des autres. Si quelqu'un connait la réponse, elle pourrait servir pour éditer la routine pour les nouvelles versions. -
Salut, Je dis peut-être une bétise, mais pourquoi ne pas introduire au début du LISP de Patrick35 (que je ne connais pas) : (setq old_dia (getvar "filedia")) (setvar "filedia 0") et à la fin : (setvar "filedia" old_dia)
-
Salut, (Pour plagier Tramber ;)) Comme nous ne sommes pas spécifiquement dans le forum Vlisp, je propose plutôt : (alert (strcat "La valeur est de : " (rtos valeur))) [Edité le 13/8/2005 par gile]
-
Salut, Si d'aventure tu t'essayais au Lisp, je te propose çà pour le ressort et de regarder là pour l'hélicoïde. Dans les deux cas il ne s'agit pas d'une "vraie hélice" mais d'une approche avec des arcs ellliptiques jointifs dont le nombre par spire définit la "résolution" de l'hélicoïde.
-
Salut, (vla-addRaster (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object)) ) "c:\\toto\\tutu\\image1.tif" ; Chemin du fichier (vlax-3d-point '(0.0 0.0 0.0)) ; Point d'insertion 1.0 ; Echelle 0.0 ; Rotation )
-
Salut, çà m'avait paru bizarre aussi, mais c'est expliqué comme çà dans l'aide : 0 comme inactif des anciennes versions, 1 comme actif et 2 le cadre est visible mais n'est pas tracé. Pour saisir la valeur à partir du menu contextuel choisir saisies récentes !? [Edité le 31/7/2005 par gile]
-
Salut, Les opérations booléennes (union, soustraction, intersection) ne fonctionnent qu'avec des solides ou des régions entre eux (on ne peut soustraire un solide à une région).
-
Salut, Tu peux, dans chacune des fenêtres avoir un SCU différent et une vue différente et ce, indépendammment l'un de l'autre.
-
Salut, Tu peux aussi faire "déborder" la petite fenêtre de la grande de manière à ce qu'elle ne soient pas incluse dans la grande. Les fenêtres étant sur un caque gelé avant l'impression, des cadres peuvent être rajoutés, si besoin, autour des différentes vues dans l'espace papier. [Edité le 28/7/2005 par gile]
-
Salut, Il s'agit du rapport entre la longueur du pointillé (égale à zéro) et sa largeur (modifiable avec PEDIT) d'où des tirets verticaux. Pour avoir de gros pointillés carrés (si c'est bien çà le but) il faut partir d'un type du ligne en tirets interrompus dont la longueur du tiret serait égale à la largeur que tu veux donner à la polyligne.
-
Salut à tous, Je me permet une petite précision de géométrie euclidienne pour éviter certaines confusions: Le barycentre (ou plus exactement l'équibarycentre) renvoyé par (cur+cur+cur+cur)/4 ne correspond au centre de gravité que dans le cas de quadrilatères réguliers. Le dessin ci-desssous illustre une méthode graphique de détermination du centre de gravité d'un quadrilatère irrégulier par sa décomposition en triangles : le centre de gravité du quadrilatère est situé sur la droite définie par les centres de gravité des triangles qui le compose. http://img158.imageshack.us/img158/8571/centredegravit9wr.jpg Le lisp suivant place un point sur le centre de gravité d'un solide ou d'une région : ;;; c:pt_cen Crée un point sur le centre de gravité d'une région ou d'un solide (vl-load-com) (defun c:pt_cen (/ AcDoc ModSp reg cen) (setq AcDoc (vla-get-activedocument (vlax-get-acad-object)) ModSp (vla-get-ModelSpace AcDoc) ) (vla-startundomark AcDoc) (while (not (member (cdr (assoc 0 (entget (setq reg (car (entsel "\nSélectionnez la région ou le solide: "))) ) ) ) '("REGION" "3DSOLID") ) ) (princ "\nEntité non valide.") ) (setq reg (vlax-ename->vla-object reg) cen (vlax-safearray->list (vlax-variant-value (vla-get-Centroid reg)) ) ) (if (= (vla-get-ObjectName reg) "AcDbRegion") (setq cen (trans cen 1 0)) ) (vla-addPoint ModSp (vlax-3D-point cen)) (vla-endundomark AcDoc) (princ) )
-
Salut à tous, Puisque ce fil est réactivé, j'y vais aussi de mon petit CV (assez atypique au vu de ce que j'ai lu). J'ai commencé à travailler comme menuisier/ébéniste en 1978, puis comme constructeur de décors de théatre, opéra... depuis 1988. C'est par là que j'ai appris et pratiqué la géométrie, le dessin, le traçage, sur calque, sur le plancher à épures ou directement sur la pièce. Ma conversion à la DAO (ne devrait-on pas dire au DAO ?) est plutôt récente : mon premier ordinateur personnel en 2001 et une formation sur AutoCAD 2002 en 2003 et je m'essaye au LISP depuis moins d'un an. Ce site aussi est une découverte pour moi. L'entraide et le partage sont des pratiques hautement salutaires et trop rares dans notre monde.
-
Salut, Bonuscad a encore frappé ! Une telle production c'est du GrStakhanovisme ;) Chez moi çà ne marche pas en faisant Espace,mais çà marche très bien avec Clic gauche, encore bravo ! [Edité le 23/6/2005 par gile]
