-
Compteur de contenus
5 029 -
Inscription
-
Dernière visite
-
Jours gagnés
56
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par bonuscad
-
Modifié pour ne pas imprimer, geler dans les nouvelle fenêtre et geler tout court. (defun c:noplot ( / ent dxf_lay) (while (setq ent (nentsel)) (setq dxf_lay (entget (tblobjname "layer" (cdr (assoc 8 (entget (car ent))))))) (setq dxf_lay (subst (cons 290 0) (assoc 290 dxf_lay) dxf_lay)) (if (zerop (logand (cdr (assoc 70 dxf_lay)) 1)) (setq dxf_lay (subst (cons 70 (1+ (cdr (assoc 70 dxf_lay)))) (assoc 70 dxf_lay) dxf_lay)) ) (if (zerop (logand (cdr (assoc 70 dxf_lay)) 2)) (setq dxf_lay (subst (cons 70 (+ 2 (cdr (assoc 70 dxf_lay)))) (assoc 70 dxf_lay) dxf_lay)) ) (entmod dxf_lay) ) (prin1) )
-
Bonjour, J'ai testé que brièvement (defun c:noplot ( / ent lay_name dxf_lay) (while (setq ent (nentsel)) (setq lay_name (cdr (assoc 8 (entget (car ent))))) (setq dxf_lay (entget (tblobjname "layer" (cdr (assoc 2 (tblsearch "layer" lay_name)))))) (entmod (subst (cons 290 0) (assoc 290 dxf_lay) dxf_lay)) ) (prin1) )
-
Un retour qui montre que la réponse à ma demande était fort utile B) Le fichier forme (avec une super bonne définition) que j'ai pu produire. Le fichier diabolo.shp contient: *128,384,DIABOLO 2,020,1,022,048,02E,2,4,14,3,99,014,4,99,3,14,1,4,51,3,29,012,028,01E,4,29,3,51, 2,4,14,3,99,014,4,99,3,14,1,4,44,3,29,012,028,01E,4,29,3,44,2,4,14,3,99,014,4, 99,3,14,1,4,37,3,29,012,028,01E,4,29,3,37,2,4,14,3,99,014,4,99,3,14,1,4,211,3, 204,012,028,01E,4,204,3,211,2,4,14,3,99,014,4,99,3,14,1,4,134,3,169,012,028,01E, 4,169,3,134,2,4,14,3,99,014,4,99,3,14,1,4,75,3,136,012,028,01E,4,136,3,75,2,4, 14,3,99,014,4,99,3,14,1,4,71,3,229,012,028,01E,4,229,3,71,2,4,14,3,99,014,4,99, 3,14,1,4,7,3,102,012,028,01E,4,102,3,7,2,4,14,3,99,08C,4,99,3,14,1,02A,040,026, 2,4,14,3,99,01C,4,99,3,14,1,4,51,3,29,01A,020,016,4,29,3,51,2,4,14,3,99,01C,4, 99,3,14,1,4,44,3,29,01A,020,016,4,29,3,44,2,4,14,3,99,01C,4,99,3,14,1,4,37,3,29, 01A,020,016,4,29,3,37,2,4,14,3,99,01C,4,99,3,14,1,4,211,3,204,01A,020,016,4,204, 3,211,2,4,14,3,99,01C,4,99,3,14,1,4,134,3,169,01A,020,016,4,169,3,134,2,4,14,3, 99,01C,4,99,3,14,1,4,75,3,136,01A,020,016,4,136,3,75,2,4,14,3,99,01C,4,99,3,14, 1,4,71,3,229,01A,020,016,4,229,3,71,2,4,14,3,99,01C,4,99,3,14,1,4,7,3,102,01A, 020,016,4,102,3,7,2,4,14,3,99,084,4,99,3,14,028,0 Une fois compilé (avec la commande COMPILE sous Autocad) j'ai pu faire cette définition de type de ligne Le fichier diabolo.lin contient: *diabolo, Diabolo ---|X|----|X|----|X|----|X|----|X|-- A,.25,-.1,[DIABOLO,diabolo.shx,x=0,s=.1],-.5,1 Voila en attendant d'en faire d'autres...
-
c'est quoi une MACRO pour vous ?
bonuscad a répondu à un(e) sujet de rebcao dans Personnalisation, macros, DIESEL
Sur la définition générale, je serais du même avis que Patrick_35. Mais sur autocad pour que l'on cause de la même chose, je m'appuierai sur l'aide de MODEMACRO et MACROTRACE (obsolete). Donc une fonction diesel pour le language évolué et sans diesel le language de personnalisation des barre de menus, icones etc... Les deux formes pouvant être mixées sans problème (si la syntaxe est bonne :(rires forts): : ça parfois c'est dur...) -
Champs d'aire et de longueur " automatique"
bonuscad a répondu à un(e) sujet de Jbrosteaux dans AutoCAD LT 2015
Si tu es prêt à abandonner les champs dynamiques, il y a des solutions (plus traditionnelles) pour faire des surfaces avec LT Je pense qu'une recherche sur le site avec comme mot clé: $(getvar,area) va pouvoir te donner des pistes d'application. -
Champs d'aire et de longueur " automatique"
bonuscad a répondu à un(e) sujet de Jbrosteaux dans AutoCAD LT 2015
Bonjour, Malheuresement pour ce que tu souhaites, une version LT va te brider. Souvent les macros peuvent sauver la mise, mais dans ce cas présent: non Pourquoi?: Parce que la commande _FIELD lance systématiquement une boite de dialogue et qu'une macro ne peut pas en prendre son controle. On en a bien conscience... Avec une version pleine, j'ai proposé des trucs en lisp pour faciliter cette procédure de champ. -
J'ai lu quelque part (je ne sais plus où) que cette license pro était gratuite pour une année seulement. Je pense qu'il faudra faire attention lorsque l'année sera écoulée (ou du moins bien lire le contrat d'utilisation: surtout les petits caractères) Peut être un moyen détourné d'avoir de futurs clients captifs. Bon je n'ai lu aucune clauses, donc je vois peut être le mal partout, mais la prudence doit être de mise... (surtout quand on installe sans rien lire; faut dire que ça gonfle de se taper plein de textes à lire)
-
Salut, Je n'ai que Map 2014,donc... Ce que j'ai pu constater; lors d'une intersection projetée de 2 entités se coupant mais ayant un type de ligne, cela m'oblige à utiliser _APPINT en mode intersection étendue; c'est à dire sélectionner le 1er objet puis le second. Lorsque que le type de ligne est continu, un seul click suffit au niveau de l'intersection visible. C'est tout ce que j'ai pu constater comme fonctionnement aléatoire avec des objet de Z différent. Mais _APPINT fonctionne quand même...
-
C'est Quasi Facile à Démontrer (pour toi) Plus sérieusement, merci de ce cours magistral, mais heureusement que la fonction (trace) existe pour suivre ces récursions, ça me permet au moins de comprendre ces fonctions à défaut de savoir les construire... Bonne journée
-
C'est aussi ce que j'utilise, sauf que je prend plutôt "copier avec point de base" et donne 0,0,0 en réponse, pour être sur de mon point de base.
-
Bonjour, Peut être à cause de ceci: (if (and (= "1" rb1t) (= '(itm1 itm2) '("1" "2")) ) (setq val2 (float 1000.00000)) ) Essayes avec : (if (and (= "1" rb1t) (equal (list itm1 itm2) '("1" "2")) ) (setq val2 (float 1000.00000)) ) Je n'ai pas décortiqué plus ton code, c'est l'erreur qui m'a semblé la plus évidente. Il y a peut être autre chose de bloquant...
-
Effectivement, ça va mieux. J'ai bien cherché à trouver l'erreur de (gile), mais encore une fois tu as eu l'esprit plus vif que moi. Bien moi j'ai plaisir à voir de nouvelle pointure, place aux jeunes (et moins jeunes)... ;) Lire: VDH-Bruno Olivier Eckmann -Olivier- ElpanovEvgeniy (dommage que la langue soit certainement un frein à sa participation) bryce usegomme et d'autres... c'est pour moi un plaisir énorme de voir un sens du partage qui perdure. CadXp ne vit que grâce à cela: Evoluer ensemble et ne pas prendre sans même dire merci comme cela peut se voir parfois, car ce comportement ne peut que donner la mort à un site d'échange (un appel du pied.. )
-
Bonjour, Essayes (dans un premier temps) de changer "0,0,0" -> "_none" "0,0,0" dans tes expressions. Cela aura pour conséquence de désactiver temporairement l'accroche objet lors de l'insertion ou de la définition du point d'insertion. En effet il suffit que des objets soit présent et proche du 0,0,0 et que si l'accrochage est actif et bien les points introduits soient modifié par cet accroche.
-
Bonjour, Arff! Maintenant que tu le souligne, j'avais mal interpreté ma lecture rapide de (n_i k) (ainsi que de (n_i n) d'ailleurs) Tout s'explique, merci. Un problème avec la fonction itérative de (gile)! Le numérateur (ou produit) n'est pas bon. Le plus rigolo est que si j'évalue la fraction, la mantisse est le double de celle du réel introduit mais les décimales sont bonnes. A zebulon, c'est vrai que la fonction (gcd) serait à creuser (j'y avais songer), pour une aproximation c'est déjà mieux que le retour fractionnaire de (rtos) Merci à tous de vos talents.
-
Bonjour Bruno, Excellent! Tout à fait ce que je cherchais à obtenir. Pour ma part j'étais encore sur la consultation de page sous internet de sujet concernant les fractions réduites. Ca m'a permis d'apprendre que les Egyptiens utilisaient essentiellement cette notation pour représenter des nombres réel, qu'Archimède s'en est servi pour définir Pi ainsi que Al-Kashi (cité déjà par notre ami (gile)). Plus proche de nous on avait Euler, Lagrange, Finnobaci, Lambert etc... qui ont pousser les théorèmes d'équations mathématique; ces énoncés m'ont d'ailleurs embrouillé mon esprit. Je retrouve bien dans ton algo la démarche préconisée que j'ai pu lire à droite ou à gauche et ton premier post m'a eclairée sur la façon concise du deuxième. Mais soyons honnête, je ne crois pas que j'aurais été capable de le mettre en place de façon si réduite que toi ou du moins en si peu de temps. Plus le temps passe, plus j'ai du mal à me concentrer pour visualiser ce genre d'algo dans mon esprit. Je vais pouvoir faire des formes en notation égyptienne qui auront une belle définition, jusqu'à présent je m'aidais de la notation (rtos x 5 7) pour avoir une approximation acceptable, mais beaucoup plus approchée que précise. Merci à toi grand scribe égyptien. Je te souhaite un grand avenir dans la programmation, car de toute évidence tu as les qualités requises, tu es dans les pas d'un grand Kador de ce site. PS: En apparté sur la fonction que j'avais traduite du common-lisp (et qui faisait plutôt l'inverse de ce que je souhaitais), je ne comprends pas pourquoi l'appel à la fonction se fait avec un argument défini en lambda. En effet si (cont-frac (lambda (i) 1.0) (lambda (i) 1.0) 14) fonctionne (cont-frac 1.0 1.0 14) ne fonctionne pas? Je ne saisi pas la subtilité du (lambda (i) 1.0) Edit: Il y a juste une erreur de frappe dans la déclaration des variables (qui ne porte aucun préjudice à ta fonction) c'est qmax au lieu de dmax.
-
Bonjour, Un petit problème que je cherche à résoudre pour faciliter la constitution de fichier de forme (qui seront compilé en SHX) En effet les formes complexes peuvent être un peu casse-tête à dessiner car les vecteurs introduit sont généralement des valeur entières. Pour obtenir des vecteurs de longueur quelconque (nombre réel) if faut jouer sur des facteurs de division/multiplication. C'est pour cela qu'une fonction qui me convertirait un réel en fraction me serait utile pour avoir une forme le plus fidèle à ce que je veux produire. Dans l'absolu un dénominateur <= 255 est suffisant (c'est la valeur maxi autorisée dans une forme) J'ai fouillé un peu sur google est j'ai trouvé un exemple en common-lisp. J'ai essayé de le convertir pour Autolisp de la manière suivante pour tester. (defun cont-frac (n_i d_i k) (defun recurse (n) (defun next (n) (+ n 1) ) (if (= n k) (/ (n_i k) (d_i k)) (/ (n_i n) (+ (d_i n) (recurse (next n)))) ) ) (recurse 1) ) (cont-frac (lambda (i) 1.0) (lambda (i) 1.0) k) mais en retour d'execution j'ai ceci: Je ne suis toujours pas un pro de la récursive :( Si vous avez une idée ou une autre proposition. PS: Le besoin n'est pas indispensable, aucune urgence, je continu de chercher tranquilement de mon coté. Bon j'ai déjà trouvé mon erreur d'execution: il faut définir k avant de lancer (cont-frac). Plus la valeur est haute plus je me rapproche de la valeur (sans la mantisse) de phi (nombre d'or).
-
Problème export vers GML (Autocad Map 2015)
bonuscad a répondu à un(e) sujet de newboy dans AutoCAD 3D
Non rien de particulier. (j'avais juste ajouté les données d'objet, qui sont bien exportées) Je viens d'essayer un solide en 3D mais que j'ai décomposé (en plusieurs fois; solide-> region -> ligne en 3D) J'ai fais un export (option par défaut, juste OK) Je l'ai importé dans un dessin dessin vierge et je retrouve bien mes lignes en 3D. Donc à priori les entités curvilignes (Ligne ou polyligne en 3D) sont bien supportées. Tout ça sous Autocad Map 2014 sans rien modifier à quoique ce soit. -
Spline => Polyligne 2D dans bloc imbriqué
bonuscad a répondu à un(e) sujet de JJL13 dans Routines LISP
Bonjour, A voir Par contre pour l'imbrication dans les blocs... -
Problème export vers GML (Autocad Map 2015)
bonuscad a répondu à un(e) sujet de newboy dans AutoCAD 3D
Bonjour, Par curiosité j'ai essayé un export GML avec 1 de mes fichier en 2D, cela a fonctionné. Par contre avec ton exemple constitué d'un solide 3D, bien qu'il me dit d'avoir exporté, je n'ai aucun fichier. Je pense que le module d'export par défaut ne fonctionne qu'avec du GML 2 et que pour toi il faudrait du GML 3.0 Voici ce que j'ai trouvé comme infos: Après voir si dans le fichier mapexport.ini en renseignant la section GML d'une manière appropriée cela pourrait fonctionner? LE power pointoù j'ai trouvé les infos. -
J'ai bien dis: pas le gestionnaire de mise en page (qui permet de modifier un PC3 existant ou d'en recréer un mais après avoir ouvert le défailant, donc...) En cliquant sur gestionnaire de tracage par le menu fichier, ça lance en fait l'explorateur windows sur le bon chemin avec tout tes PC3 et tu as un raccourci "Assitant Ajouter un traceur". Passes par cette procédure ça devrait aller mieux.
-
Peut être que si tu joignais en zip un extrait de ton plan (un WBLOCK d'une partie sélectionnée significative)? Les bonnes âmes pouraient ainsi mieux cibler le code lisp. A moins que dessin soit TOP confidentiel...
-
Après avoir appliqué ta MAJ windows (tant qu'à faire, car il faudra bien l'appliquer un jour) Rentres dans le gestionnaire de tracage, effaces (poubelle) ton/tes PC3 et recrée le(s) à l'identique. C'est fastidieux, mais je pense que c'est le moyen le plus sur pour ne plus avoir un PC3 défaillant. Tentes déjà avec un et si ça fonctionne, paluches toi tous les autres... LES PC3 stockent énormément d'infos de bas niveau sur la config machine/pilote traceur/reseau, une MAJ peut effectivement "foutre le bordel" et les rendre défaillant.
-
Autrement tu as OVERKILL (en ligne de commande) des expresstools, paramétré correctement ça pourrait peut être le faire. Attention ce programme est destructif, essayes sur une copie du dessin.
-
Bonjour, Les hachures pour une raison X ont peut être été décomposées. Possède tu le modèle dans ton dessin dans la boite de dialogue des hachures? Si c'est le cas tu peux récupèrer ce motif assez facilement: fais une recherche sur le forum avec model_hatch, tu trouvera des discussions similaire.
-
Déjà pour te rassurer le lisp ne détruit rien dans ton dessin, donc tu peux l'essayer sans risque. Pour l'utiliser, une démarche simple: Tu copie-colle de la 1ere à la dernière paranthèse le code mis dans la balise sur le forum directement dans la ligne de commande d'Autocad. (valider éventuellement après la dernière parenthèse collée) Après ceci tu devrais avoir dans l'affichage de la barre de commande C:BACK_TRACE Et bien tu tapes au clavier tout simplement BACK_TRACE (sans le C:) et le code devrait s'exécuter.
