-
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
-
Echelles non uniformes pour polylignes
bonuscad a répondu à un(e) sujet de (gile) dans Routines LISP
Bonsoir (gile) Je ne comprends pas pourquoi tu as crée cette fonction ! :o Mais je l'ai testée rapidement... Je me suis donc dit, je vais compresser un ressort dessiné schématiquement. Cela fonctionne si on respecte le système de coordonnée, mais si mon ressort est incliné, ben c'est pas top (déforme mon ressort). Passer par un bloc (en acceptant la décomposition d'échelle déformée), me donne un meilleur résultat. Je pense qu'il faudrait au minimum pouvoir choisir l'orientation des axes de déformation pour que cette fonction puisse devenir intéressante. Bonne soirée ;) -
Il y aussi les fichiers XPS qui peuvent s'ouvrir sous I.E (pas FireFox :( ) J'en avais fais un sujet
-
Ma réponse est plutôt une pause café... ;) La trottinette, le vélo, le gros cube et la F1. Ce qui donne dans l'ordre. Autolisp, Visual-Lisp/ActiveX, Net et F#. Je suis resté expert en trottinette, apprenti en vélo, émerveillé mais nul en gros cul , bouche bée et complétement idiot en Formule1... ;)
-
Je rajoute juste qu'il est souhaitable de vérifier l'état de la variable "SHORTCUTMENU", car suivant sa valeur (autre que celle par défaut) elle peu influencer le comportement de ce menu contextuel. Voir une réponse ancienne.
-
Du tout ! très bon exposé. Je reprends même ta citation. qui a mon gout est l'essentiel à comprendre pour bien intégré cette fonction. Une fois qu'on visualise bien cette mécanique, ça roule....
-
Panneaux Zone de rencontre- fin de Zone de rencontre
bonuscad a répondu à un sujet dans AutoCAD 2010
Tout simplement Gimp L'image n'a pas été prise dans le document PDF que j'avais donné en premier lieu, mais plutôt ici (sur le même site) où le document PDF particulier était de meilleur qualité. J'ai simplement fais un recadrage automatique avec les fonctions de Gimp et sauvegardé en PNG (choisi ce format pour la légèreté pour une publication sur le net, j'aurais pus prendre un autre format) J'ai essayé une conversion en WMF pour une importation vectoriel (après décomposition de l'import)sous Autocad, mais j'ai pas trouvé le résultat Tip-top. Je m'y suis peut être mal pris à un moment donné ;) , peut être à re-testé. -
Panneaux Zone de rencontre- fin de Zone de rencontre
bonuscad a répondu à un sujet dans AutoCAD 2010
Bien que neptune ait fait un dwg, et comme j'avais aussi un petit moment, j'ai fais une extraction d'image depuis le PDF car il m'était plus simple de faire cette extraction que d'expliquer comment la faire ;) http://www.mabul.org/moe/up/10/11/18/w8bti5bq.png http://www.mabul.org/moe/up/10/11/18/l0phlfpq.png -
Panneaux Zone de rencontre- fin de Zone de rencontre
bonuscad a répondu à un sujet dans AutoCAD 2010
Bonjour, Vu que ces panneaux sont assez récents, essayes de l'extraire de ce document en PDF... à la fin de la page 12. -
Ou encore ceci, plus générique (vl-load-com) (defun c:cumul_measure ( / js n ename d_cumul count k_mod) (or (setq js (ssget "_I")) (setq js (ssget "_P")) ) (cond (js (sssetfirst nil js) (initget "Existant Nouveau _Existent New") (if (eq (getkword "\nTraiter jeu de sélection [Existant/Nouveau] : ") "New") (progn (sssetfirst nil nil) (setq js (ssadd) js (ssget))) ) ) (T (setq js (ssget))) ) (cond (js (setq d_cumul 0.0 count 0) (initget "Longueur Aire _Length Area") (setq k_mod (getkword "\nMesurer [Longueur/Aire] : ")) (if (not k_mod) (setq k_mod "Length")) (repeat (setq n (sslength js)) (setq ename (vlax-ename->vla-object (ssname js (setq n (1- n))))) (if (eq k_mod "Length") (if (member (vlax-get ename 'ObjectName) '("AcDbEllipse" "AcDbSpline" "AcDbHelix")) (setq d_cumul (+ (vlax-curve-getDistAtParam ename (vlax-curve-getEndParam ename)) d_cumul) count (1+ count)) (foreach typ_measure '("Length" "ArcLength" "Circumference" "Perimeter") (if (vlax-property-available-p ename (read typ_measure)) (setq d_cumul (+ (vlax-get ename (read typ_measure)) d_cumul) count (1+ count)) ) ) ) (if (vlax-property-available-p ename "Area") (setq d_cumul (+ (vlax-get ename 'Area) d_cumul) count (1+ count)) ) ) ) (princ (strcat "\nCumul des " (if (eq k_mod "Area") "Aire" "Longueur") " de " (itoa count) " objet(s) sur " (itoa (sslength js)) " sélectionné(s): " (rtos d_cumul))) ) ) (prin1) )
-
avec: (setq gh (getdist "\nApproximate height of grass : ")) (if (= gh nil) (setq gh 2)) Ce n'est qu'une histoire de message d'invite de (getdist) décidé par l'auteur. La valeur réelle que tu lui introduira soit au clavier, soit graphiquement sera interprétée en conséquence. Si ton dessin est en système métrique, la valeur entrée sera donc du mètre (ou centimètre) Change simplement l'invite du message ;) Pour la valeur par défaut change (setq gh TA_VALEUR_NUMERIQUE_SOUHAITEE)
-
Jette un œil à ce sujet . La demande était similaire...
-
Fractions intempestives dans l\'éditeur de textes multilignes
bonuscad a répondu à un(e) sujet de brunomu dans AutoCAD 2010
Cela ce traduit par empilement. Pourtant l'aide sur l'empilement avec MTEXT est explicite. -
Tout dépend de la transmission du fichier. Avec Etransmit (qui n'est pas un réflexe pour la plupart) il n'y aura pas de problème. Si le fichier SHX et LIN sont absent se sera par défaut des lignes simples que l'on peut toujours éditer. Autrement tu peut modifier ton fichier GRASSY que tu as posté. change (while (< (distance p2 sp) dx) (setq p2 (polar p1 an (/ (+ (rn) (/ gh 2)) dn))) (setq p3 (polar p2 (* pi 0.5) (* gh (rn)))) (setq p4 (polar p3 (* pi 0.6) (* gh (rn)))) (setq p5 (polar p4 (* pi 0.4) (* gh (rn)))) (command "LINE" p3 p5 "") (setq p1 p2)) par (command "_.pline") (while (< (distance p2 sp) dx) (setq p2 (polar p1 an (/ (+ (rn) (/ gh 2)) dn))) (setq p3 (polar p2 (* pi 0.5) (* gh (rn)))) (setq p4 (polar p3 (* pi 0.6) (* gh (rn)))) (setq p5 (polar p4 (* pi 0.4) (* gh (rn)))) (command p3 p5) (setq p1 p2)) (command "")
-
J'ai peut être parlé trop vite, il manquait les fonction (trans) pour que cela fonctionne quelque soit le SCU. J'ai modifié le code précédent. Il est indispensable au fichier .LIN mais il faut au préalable le compiler (à l'aide de la commande "_COMPIL" d'Autocad, je me répète...) pour obtenir un SHX. Ce SHX devra être accessible pour Autocad, il faut donc déplacer ce fichier SHX dans un dossier de recherche.
-
GRASSY fonctionne et pas GRASS, ce sont exactement les mêmes !!! Faudra qu'on m'explique :P Si tu veux essayer un type de ligne (cela évitera de multiple lignes) Voici une définition: Le fichier GRASS.LIN *GRASS,|\l/vI'Ni|\l/vI'Ni|\l/vI'Ni A,.1,[GRASS,sashp.shx,s=.1],-1.6 Le fichier sashp.shp (à compiler avec la commande AutoCad du même nom "_COMPILE") *137,37,GRASS 014,01E,024,2,012,1,03C,023,02C,010,8,1,3,02C,01E,023,02C,010,014,01E,2,024,1,02D,010,034,02D,01C,010,023,02C,2,012,1,01C,012,0
-
Ce n'est pas un type de ligne, mais c'est plus stylisé... J'avais trouvé ça sur le Net il y a longtemps et je l'ai conservé car je l'avais trouvé sympa. Merci à l'auteur Watson Kilbourne Juste françisé, même si ce n'est pas le code original, j'ai gardé la philosophie du code. ; GRASS.LSP ; Realistic Grass for Elevations ; (c)1994, Watson Kilbourne ; Draws row of grass with random height, ; spacing and angle in elevation ; Random number generator, from 0.000 to 0.999 (defun rn ( / md mx nc) (if (not sd) (setq sd (getvar "DATE"))) (setq md 65536 mx 25173 nc 13849 sd (rem (+ (* mx sd) nc) md) ) (/ sd md) ) (defun c:GRASS ( / sp ep gh dn dx an p1 p2 p3 p4 p5 sd) (initget 9) (setq sp (trans (getpoint "\nPoint de départ de l'herbe: ") 1 0)) (initget 41) (setq ep (trans (getpoint (trans sp 0 1) "\nPoint final de l'herbe: ") 1 0)) (initget 6) (setq gh (getdist "\nHauteur approximative de l'herbe <2.5>: ")) (if (not gh) (setq gh 2.5)) (initget 6) (setq dn (getint "\nFacteur de densité de 1à 6 <3>: ")) (if (or (not dn) (> dn 6)) (setq dn 3)) (setq dx (distance sp ep) an (angle sp ep) p1 sp p2 sp ) (while (< (distance p2 sp) dx) (setq p2 (polar p1 an (/ (+ (rn) (/ gh 2)) dn)) p3 (polar p2 (* pi 0.5) (* gh (rn))) p4 (polar p3 (* pi 0.6) (* gh (rn))) p5 (polar p4 (* pi 0.4) (* gh (rn))) ) (entmake (append '((0 . "LINE")) (list (cons 8 (getvar "clayer"))) (list (cons 10 p3) (cons 11 p5)))) (setq p1 p2) ) (princ) ) [Edité le 15/11/2010 par bonuscad]
-
Bonjour, Je connaissais cette recommandation faite dans la doc de la R14, et de ce fait, actuellement je continu (la plus-part du temps) à appliquer inconsciemment cette limitation lors de la déclaration de mes variables. Ce qui à changé c'est la quantité d'espace alloué, donc plus vraiment un problème. Seul (vmon) a disparu (je crois me rappeler que ça permettait d'accéder à la mémoire étendue pour l'usage du lisp) Les autres existent toujours. Les expliquer... Je ne suis pencher qu'une fois sur l'utilisation de ces fonctions pour essayer d'améliorer la capacité de traitement de fonctions récursives. (Ce qu'on gagne d'un coté, on le perd de l'autre. Le réglage par défaut est un bon compromis. Il est guère utile de se pencher sur ces fonctions) Mais pour imager: il est plus facile et rapide de retrouver un terme dans un calepin, que dans un dictionnaire. Donc en terme de performance, normalement, l'évaluation ne devrait être que plus rapide J'ai donc fais un test pour me rendre compte de l'influence de l'usage de variables longues (et essayé d'interpréter). Je l'ai répété plusieurs fois et constaté la même consommation d'espace à chaque fois. Le test: ((lambda ( / n) (gc) (mem) (setq n 0) (repeat 1000 (set (read (strcat "v" (itoa (setq n (1+ n))))) (+ n (* (1+ (sqrt 5)) 0.5))) ) (mem))) le retour 19-16=3 pages mémoires utilisées pour DM Str AVEC des variables courtes. le second test ((lambda ( / n) (gc) (mem) (setq n 0) (repeat 1000 (set (read (strcat "v_tttttttttttttttttttttt" (itoa (setq n (1+ n))))) (+ n (* (1+ (sqrt 5)) 0.5))) ) (mem))) Le retour 31-16=15 pages mémoires utilisées pour DM Str AVEC des variables longues. J'interprète DM Str comme un tableau de dimensionnement de chaine ce caractères pour l'affectation de nom de symbole. Je pense qu'il n'est pas idiot de continuer à tenir compte de ces vieilles recommandations. En aparté, regarde la propriété particulière d'une paire pointé. (car '(70 . 1)) et (cdr '(70 . 1)) le cdr retourne un atome. [Edité le 11/11/2010 par bonuscad]
-
Salut, En macro pure, je ne vois pas de solution. :( Ce problème peut encore être contourner si tu es en mode dessin unique, il suffit avant d'utiliser"_explode" de mettre SDI à 1 puis la remettre à 0 juste après. Mais le problème et qu'après explode le jeu de sélection que tu pensais transmettre à "pedit" à travers l'option "précédent" est perdu, il n'existe plus. Il te reste la possibilité de mettre "tout" au lieu de "précédent" pour l'option de "Pedit", mais dans ce cas TOUTES les lignes ou arcs seront converties en polylignes et éventuellement jointes (ce n'est pas forcément désiré par rapport à la sélection de départ) Comme tu utilise Flatten (donc usage d'une version pleine) je te soumet une réponse sur un sujet similaire
-
Convertisseur de PDF vers DXF ou DWG
bonuscad a répondu à un(e) sujet de Fabrice27 dans AutoCAD 2004
Pour pstoedit je passe par GSView : voir la ->page officielle L'ensemble de ces outils obligent l'installation des bibliothèques Ghostscript. Mais bon j'ai remarqué quand même que la récupération de PDF est de plus en plus aléatoire, même si l'origine vient d'Autocad. J'attribue cela (entre autre) surtout aux entités "WIPEOUT" qui lors de la conversion en PDF doit être assimilé à des images. Du coup la retranscription avec pstoedit foire lamentablement. Il ne faut vraiment que du vectoriel pur et dur pour pouvoir utiliser cet outil. Donc les risques d'être déçus par cet outil sont de plus en plus probable. -
Malheureusement il n'y a pas que cela. Pour pouvoir ouvrir des fichiers de version supérieure, j'ai installé DWGTrueView. Si c'est le dernier soft de DWG utilisé, et bien si j'ouvre par exemple un dwg attaché un courriel, il me m'ouvre celui-ci avec TrueView. Je suis obligé d'ouvrir un dessin DANS une session Autocad pour retrouver le fonctionnement normal (dans l'explorateur ou la boite mail) Dès fois cela me fais "griser"... :casstet:
-
En HS sur ta demande. Pourquoi tes atomes concernant le calque et la visibilité ne sont pas du type STR? Si ton nom de calque comporte un espace, tu risque de créer une liste mal formatée. (("CALQUE1" "doublage" 80.0 2700.0 975.96) ("CALQUE1" "doublage" 80.0 2700.0 570.46).... serait mieux.
-
La MACRO qui ne marche qu\'après DEUX clics ???
bonuscad a répondu à un(e) sujet de rebcao dans Personnalisation, macros, DIESEL
Ce qui fais me demander (sans avoir testé) si on peut ainsi doubler les guillemets pour s'imbriquer en profondeur d'exécution ?... et pour pour les paramètres de filtre sur des caractères spéciaux comme [surligneur]\ ou * [/surligneur] dans une chaine de caractère il faut quoter [surligneur] ' [/surligneur] (touche 4 du pavé alpha) le caractère. Peut être qu'en Diesel c'est le même principe !... par contre pour insérer ce caractère dans la variable :P J'ai pas essayé non plus mon dire . :exclam: bryce m'a un peu réconcilier avec le diesel :D encore merci à lui. [Edité le 4/11/2010 par bonuscad] -
La MACRO qui ne marche qu\'après DEUX clics ???
bonuscad a répondu à un(e) sujet de rebcao dans Personnalisation, macros, DIESEL
En tout cas tes explications et ton lien peuvent bien expliquer des choses, voir ce sujet , que j'avais abordé, qui trouvait les constats. info à retenir, merci bryce (de nice) ;) -
Bonjour, Qu'entends tu exactement par existe ? Simplement que l'objet existe graphiquement, ou que celui ci corresponde à des critères bien précis (comme sa longueur, son orientation, l'appartenance à un calque etc...) ?
-
@ pierrevigneux Dans l'état personne ne pourra tester tes type de lignes. Dans ce style de définition: [surligneur]*129,202 [/surligneur] Soit ceci fait référence à un nom de style de texte, par exemple ici le style 202 (avec sa fonte propre, SHX ou TTF) Soit 202 est le nom de la forme shx utilisée (un fichier 202.shx que toi seul possède) *129: cette définition me surprend un peu... (nom du caractère dans le fichier de forme???) Plus de précision seront nécessaire pour effectivement pouvoir essayer.
