-
Compteur de contenus
12 247 -
Inscription
-
Dernière visite
-
Jours gagnés
209
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par (gile)
-
Salut et bienvenue, La commande est SOLPROF
-
Ce n'est qu'un problème d'échelle. 1" = 24.5 mm il faut donc multiplier les valeurs de AutoCAD.lin par 25.4 pour avoir celles de acadiso.lin
-
Salut, Si tu veux un portable qui réponde à la configuration requise pour AutoCAD 2007 en 3D, il va falloir faire chauffer la carte bleue! J'ai un peu cherché de mon côté : _ des portables chez Dell (modèles Precision) et chez Keynux (un assembleur français qui propose des ordis compatible Linux). _ des tansportables chez Keynux et Alienware (même barebone).
-
Bloquage lors de la sélection d\'une hachure
(gile) a répondu à un(e) sujet de jifi dans AutoCAD 2007
Salut, Je ne sais pas pour la version 2007, que je n'ai pas encore essayé (bientôt !), mais avec les versions précédentes, cela se produit, par exemple lors de la création du premier solide 3D (avec _box, _sphere, _cylinder... ou _extrude, _revolve), mais çà ne dure pas 15 secondes, 4 au plus. J'ai pensé que, pour ne pas ralentir davantage le démarrage d'AutoCAD certains dll n'étaient chargés qu'au moment du premier appel de la commande nécessitant ces fichiers, mais c'est une intuition, je ne suis sûr de rien. -
Et pas qu'un peu !!! Est-ce que çà veut dire que dans les LISP, par exemple, va falloir remplacer tous les "c:\\toto.dwg" qui étaient interprétés c:\toto.dwg par des "c:/toto.lsp" ? :mad:
-
C'est Bonuscad le meilleur !
-
C'est pas là ?
-
1 + (1/2²) + (1/3²) + (1/4²)+ ... tend vers Pi²/6 Les plus anciennes méthodes pour déterminer la valeur de pi consistaient en des approximations entre les périmètres des polygones réguliers inscrits et conscits au cercle, plus le polygone a de côtés plus l'appriximation est précise. Avec un carré, la valeur est entre 2 fois racine carrée de 2 soit 2.828... et 4 Avec un hexagone, entre 3 et 2 fois racine carrée de 3 soit 3.461 Archimède avec un polygone à 96 côtés avait obtenu 3 + (10/71) soit 3.1408... et 3 + (1/7) soit 3.1429... Source : Le Trésor Dictionnaire des sciences sous la direction de Michel Serres et Nayla Farouki ed : Flammarion Pour ceux que cela intéresse, on peut voir aussi un article sur wikipédia [Edité le 26/4/2006 par (gile)]
-
Salut, Il y a peut-être une problème au moment du copier/coller, s'il manque la moindre paranthèse le LISP ne peut fonctionner. Tupeux essayer ceci : copie le LISP, colle le dans un nouveau fichier de l'éditeur VisualLISP (menuOutils) et fait "Formater dans la fenêtre d'édition (image ici). Si les paranthèses ne sont pas apariées tu auras un message d'erreur.
-
Et avec d'autres LISP copiés dans CADxp, as-tu le même problème ?
-
Re Attention, il ne faut pas d'espace entre c: et eclatfol ! Quand tu fais _appload, as-tu bien Nom_de_fichier.lsp correctement chargé(s) en bas de la fenêtre ? http://img288.imageshack.us/img288/129/laytest9zx.png
-
Salut, Est-ce que tu parles de la commande ID (ou _ID) qui retourne les coordonnées du point spécifié ou de la commande DISTANCE (ou _DIST) qui retourne la distance entre 2 points et les deltaX deltaY deltaZ (les coordonnées relatives du second point) ? Dans les deux cas, as-tu essayer de faire F2 pour voir si les résultats étaient dans la fenêtre de texte ?
-
Chemin de recherche de fichiers de support
(gile) a répondu à un(e) sujet de Ashram_666 dans Visual LISP
Salut, Les fonctions vlax-... sont décrites dans l'aide aux dévloppeurs -> AutoLISP Reference -> AutoLISP Functions. Les fonctions vla-... sont en fait construites à partir des fonctions ActiveX et VBA, toujours dans l'aide aux développeurs -> ActiveX and VBA Reference Tu peux aussi trouver des explications (encore en anglais) dans The Visual LISP Developers Bible. -
Moi non plus ! Chez moi çà marche. Pour le code de bonuscad çà ne peut pas marcher si tu rajoutes (defun expl () au début du code. C'est une fonction lambda (sans nom, voir explications plus haut) soit tu la copies telle quelle sur la ligne de commande soit tu la transforme en fonction defun, dans ce cas il faut mettre defun à la place de lambda au début du code, suivi de c:nom_de_la_fonction et il faut aussi supprimer une paranthèse ouvrante au début et une fermante à la fin. EDIT : Je viens d'essayer tous les codes ils fonctionnent (à condition de supprimer (defun expl () au début du code de bonus) Petite précision : si le début du code est (defun c:nom_de_la_fonction ... il faut taper nom_de_la_fonction si c'est (defun nom_de_la_fonction ... il faut taper (nom_de_la_fonction) [Edité le 25/4/2006 par (gile)]
-
Une autre façon en LISP (defun c:p-cent (/ old_ang old_orth old_auto pente) (setq old_ang (getvar "SNAPANG") old_orth (getvar "ORTHOMODE") old_auto (getvar "AUTOSNAP") pente (getreal "\nSpécifiez le poucentage de la pente: ") ) (setvar "SNAPANG" (atan pente 100)) (setvar "ORTHOMODE" 1) (command "_.line" pause pause "") (setvar "SNAPANG" old_ang) (setvar "ORTHOMODE" old_orth) (setvar "AUTOSNAP" old_auto) (princ) )
-
Je crains qu'il n'y ait confusion, Tramber. Les pourcentages et les grades, c'est pas la même chose. Une pente à 100%, c'est une pente qui s'élève de 100 quand sa projection horizontale fait 100 de long soit un angle de 45° ou 50 grades (dont la tangente est 100/100 soit1)
-
Salut, Le pourcentage d'un angle correspond à la tangente de cet angle. Tu peux donc utiliser les coordonnées relatives, puis modifier la longueur : Par exemple pour faire une ligne de 500 unités à 5% @100,5 puis modiflong ou utiliser la calculatrice géométrique : Commande: _line Spécifiez le premier point: Spécifiez le point suivant ou [annUler]: 'cal >>>> Expression: [@500 Nota il ne faut pas d'espace aprè le ou encore un petit LISP vite fait (pour 5% entrer 5) (defun c:maligne (/ pt1 dist ang) (initget 1) (setq pt1 (getpoint "\nSpécifier le point de départ: ")) (initget 1) (setq dist (getdist pt1 "\nSpécifier la longueur de la ligne: ")) (initget 1) (setq ang (getreal "\Spécifiez le poucentage de la pente: ")) (command "_.line" pt1 (polar pt1 (atan ang 100) dist) "") (princ) )
-
Arrête les compliments :red: J'apprécie au plus haut point cessympathiques "joutes lispiennes" qu'on peut avoir avec certains, tout le monde en sort gagnant, même si parfois, face à l'élégance de quelques lignes de code, on n'a plus, pour se défendre que de piètres arguments.
-
Ne t'excuses pas ;) Je disais juste çà parce que je n'étais pas sûr de pouvoir répondre à toutes les questions en un seul message.
-
Je m'incline encore une fois devant le savoir faire de Patrick_35, mais à ma décharge, pour sortir de ma commande on peut faire echap bien sûr (avec un message d'erreur) mais aussi : soit entrée, soit espace, soit clic droit. ;)
-
Salut, ;;; C:MCIRCLE Crée des cercles concentriques. ;;; Taper MCIRCLE pour lancer la commande. ;;; Faire ENTRÉE, ECHAP, ESPACE ou clic droit pour sortir. (defun c:mcircle (/ cen ray) (initget 1) (setq cen (getpoint "\nSpécifiez le centre des cercles: ")) (while (progn (initget 6) (setq ray (getdist cen "\nSpécifiez le rayon du cercle ou : " ) ) ) (command "_.circle" "_non" cen ray) ) (princ) ) [Edité le 25/4/2006 par (gile)]
-
J'ai un peu modifier le code que tu as trouvé (il y a d'autres ici) pour que les objets du calque "cartouche" soient dans tous les fichiers. J'ai surligé [surligneur]les ajouts[/surligneur] (Defun EL_listlayer (/ tmp ll) (setq tmp (tblnext "LAYER" t) ll (list (cdr (assoc 2 tmp))) ) (while (setq tmp (tblnext "LAYER")) (setq ll (cons (cdr (assoc 2 tmp)) ll)) ) ll ) ;;---fin-----------------------------------------------------EL_listlayer-- ------ ;;---Début---------------------------------------------------C:EXPLODELAYER ------ ;; > ;; > ;;-------------------------------------------------------------------------- ----- (Defun C:EXPLODELAYER (/ old_echo llay nomfich nomdir) (command "_undo" "_m") [surligneur](setq old_echo (getvar "cmdecho")) (setvar "cmdecho" 0)[/surligneur] (setq llay (EL_listlayer) nomfich (getvar "dwgname") nomdir (getvar "dwgprefix") nomfich (substr nomfich 1 (- (strlen nomfich) 4)) ) (mapcar '(lambda (lname / sel [surligneur]cart sel2 n[/surligneur]) (setq sel (ssget "x" (list (cons 8 lname)))) (if sel [surligneur](progn (setq cart (ssget "_X" '((8 . "cartouche")))) (command "_copy" cart "" "" "") (setq sel2 (ssget "_P")) (repeat (setq n (sslength sel2)) (ssadd (ssname sel2 (setq n (1- n))) sel) )[/surligneur] (command "_wblock" (strcat nomdir nomfich "-" lname) "" (list 0 0) sel "" ) [surligneur])[/surligneur] ) ) [surligneur](vl-remove "cartouche"[/surligneur] llay[surligneur])[/surligneur] ) (command "_undo" "_b") [surligneur](setvar "cmdecho" old_echo)[/surligneur] (princ) )
-
Re re, Troisième question: La fonction mapcar fait passer tous les membres d'une (ou de plusieurs) liste comme arguments d'une fonction. Dans le cas présent, une fonction lambda (qui, à la différence d'une fonction defun, n'a pas de nom et n'est pas enregistrée) est appliquée à tous les membres de llay (la liste des noms de calques). L'argument (b]lname[/b] et la variable localesel sont déclarés comme explique dans la réponse 1 pour defun. L'argument est utilisé ici dans le filtre de sélection de tous les objets dudit calque : (setq sel (ssget "x" (list (cons 8 lname)))) et pour le nom du fichier : (strcat nomdir nomfich "-" lname) S'il y a des entités sur le calque (sel n'est pas nil) un wbloc est créé avec ces entités. En espérant avoir répondu suffisamment clairement à tes questions.
-
Re, Deuxième question. tmp contient la liste associative (ou liste de paires pointées) retournée pa la fonction tblnext pour la table des calques, cette liste est du type : ((0 . "LAYER") (2 . "0") (70 . 0) (62 . 7) (6 . "Continuous")) (assoc 2 tmp) retourne (2 . "0") une paire pointée. (cdr (assoc 2 tmp)) retourne "0" (cons (cdr (assoc 2 tmp)) ll) ajoute "0" au début de la liste ll (while (setq tmp (tblnext "LAYER")) (setq ll (cons (cdr (assoc 2 tmp)) ll)) ) Boucle tant qu'il existe des calques dans le dessin et ajoute pour chacun le nom de ce calque à la liste ll. La première fonction aurait pu être définie de manière plus concise : (Defun EL_listlayer (/ tmp ll) (setq tmp (tblnext "LAYER" t)) (while tmp (setq ll (cons (cdr (assoc 2 tmp)) ll) tmp (tblnext "LAYER")) ) ll )
-
Salut, Tu poses beaucoup de questions dans un seul message ! Je vais déjà essayer de répondre d'abord à la première. Defun (DEfine FUNction) c'est pour définir une fonction, cette fonction peut nécessiter des arguments et il est aussi possible de déclarer les variables locales utilisées dans la fonction. Il faut de toute façon mettre une liste d'arguments après un (defun... même si celle-ci est vide. les arguments sont écrits directement après la parathèse ouvrante, les variables locales après le slash (/) : (defun fonction () ...) ou (defun fonction (arg1 arg2 ...) ...) ou (defun fonction (/ var1 var2 ...) ...) ou encore (defun fonction (arg1 arg2 ... / var1 var2 ...) ...) pour plus d'explications sur la déclaration des variables locales tu peux aller voir ici ou encore là
