Aller au contenu

bonuscad

Membres
  • Compteur de contenus

    5 029
  • Inscription

  • Dernière visite

  • Jours gagnés

    56

Tout ce qui a été posté par bonuscad

  1. bonuscad

    Vectorisation

    A part sous traiter la vectorisation, difficile d'aller plus vite :D Blague à part, je ne sais ce que valent tes images, mais il peut être necessaire de compenser une déformation soit en X, soit en Y. Si c'est le cas transforme ton insertion d'image en bloc pour pouvoir la réinserer avec un facteur d'échelle différent en X et Y. C'est pas une compensation d'Helmer, mais c'est mieux qu'aucune correction du tout, surtout si tu dois assembler plusieurs planches
  2. bonuscad

    SPACETRANS

    Je connaissais la fonction lisp trans pour transmettre un point de EO en EP, mais je ne savais pas qu'elle était directement disponible en transparence. J'ai fais un essai et cela fonctionne. Il faut être dans l'espace objet d'une fenêtre à partir d'un onglet de présentaion. Tu sélectionne un objet et donne son point de base, puis avec ton curseur tu donne l'orientation de ta copie (tu peux verrouiller ORTHOMODE si tu veux un déplacement en X ou Y) et tu tape 'SPACETRANS, c'est alors que tu donne ta distance (en général en mm) dans l'EP. Une fois la copie faite, si tu retourne dans l'EP et que tu mesure entre tes 2 points de déplacement, tu retrouve bien la distance indiquée. Quant à l'utilité d'une telle fonction.... ?, Autodesk ferait mieux d'approfondir des fonctions de base qui serait nettement plus utiles.
  3. Ouais... je connaissais pas cette astuce de MAJ (super pratique) Merci chrchat ;)
  4. Salut Cyril, Sous 2002 c'est valide, je pense que sous 2000 aussi. Sois par le bouton "inserer bloc" , par le menu insertion puis bloc, soit par la commande au clavier "INSERER" Tu dois arriver dans une boite de dialogue ou tu pourra cliquer sur le bouton "parcourir". Tu arrive normalement dans une autre boite de dialogue (voir FILEDIA si c'est pas le cas) et là je te conseille de faire un click droit dans la partie gauche (favoris) puis de sélectionner "ajouter" Donne un nom a ce dossier, par exemple "BIBLIOTHEQUE" et indique le chemin de ce dossier; ce doit être le dossier où ce situe tous tes blocs de bibliotheque. Cette manip de permettra ultérieurement d'acceder rapidement a ta bibliotheque. Un simple click sur un fichier te permettra d'avoir l'apercu. Un double click sur un fichier te permettra de le sélectionner pour la commande inserer. Pour ta deuxième question: Dans l'espace papier, efface ta fenêtre qui a été généré automatiqement lors du 1er basculement dans la présentation. Utilise (au clavier) la commande "FMULT" avec l'option "Polygonal" et dessine ta fenêtre comme avec la commande polyligne qui contourne ton cartouche dans l'espace papier. Bonne découverte :D
  5. Salut Cyril, Sous 2002 c'est valide, je pense que sous 2000 aussi. Sois par le bouton "inserer bloc" , par le menu insertion puis bloc, soit par la commande au clavier "INSERER" Tu dois arriver dans une boite de dialogue ou tu pourra cliquer sur le bouton "parcourir". Tu arrive normalement dans une autre boite de dialogue (voir FILEDIA si c'est pas le cas) et là je te conseille de faire un click droit dans la partie gauche (favoris) puis de sélectionner "ajouter" Donne un nom a ce dossier, par exemple "BIBLIOTHEQUE" et indique le chemin de ce dossier; ce doit être le dossier où ce situe tous tes blocs de bibliotheque. Cette manip de permettra ultérieurement d'acceder rapidement a ta bibliotheque. Un simple click sur un fichier te permettra d'avoir l'apercu. Un double click sur un fichier te permettra de le sélectionner pour la commande inserer. Pour ta deuxième question: Dans l'espace papier, efface ta fenêtre qui a été généré automatiqement lors du 1er basculement dans la présentation. Utilise (au clavier) la commande "FMULT" avec l'option "Polygonal" et dessine ta fenêtre comme avec la commande polyligne qui contourne ton cartouche dans l'espace papier. Bonne découverte :D
  6. bonuscad

    Mesurer en continu

    Cher ribbit, ce ne sont point des carottes pour un lapin ;) Comment ça marche? Tu fais un copier-coller du listing vers le bloc-note. Tu sauvegarde sous un nom (généralement le même nom que spécifié à la suite de "defun C:") avec une extension LSP. Le chargement s'effectue * soit par appload (menu outil "chargement application...") * soit par un glisser déposer depuis l'explorateur * soit la vieille méthode (load c:\......\....\application.lsp") Par abscisse curviligne j'entends le mot courbe. La distance curviligne est donc la distance développée par une courbe, différente de la distance entre 2 points que peut retourner la commande DISTANCE.
  7. bonuscad

    Mesurer en continu

    Je vous propose 2 alternatives en lisp la 1ere cumule des polylignes suivant leur type de ligne. (defun mkfilt (typ / bdd lstflt) (setq bdd '(8 6 0)) (if (assoc 210 typ) (if (not (equal (assoc 210 typ) '(210 0.0 0.0 1.0))) (progn (initget "Oui Non") (if (eq (getkword (strcat "\nRécupérer les entités " (cdr (assoc 0 typ)) " non construites dans le SCG [Oui/Non]: " ) ) "Oui" ) (setq bdd (cons -4 (append (list (cons -4 "*") '(210 0.0 0.0 1.0)) bdd) ) ) (setq bdd (cons -4 (append (list (cons -4 "=") '(210 0.0 0.0 1.0)) bdd) ) ) ) ) ) ) (setq bddtyp bdd) (repeat (length bdd) (cond ((assoc (car bdd) typ) (setq lstflt (cons (assoc (car bdd) typ) lstflt)) ) ((= (car bdd) -4) (setq lstflt (cons (cadr bdd) (cons (caddr bdd) lstflt))) (setq bdd (cddr bdd)) ) ) (setq bdd (cdr bdd)) ) (print lstflt) (initget "Toutes Sélectionnées") (cond ((eq (getkword "\nMode de récupération des polylignes [Toutes/Sélectionnées] :? ") "Sélectionnées") (ssget lstflt) ) (T (ssget "X" lstflt) ) ) ) (defun c:METREPL ( / sav_dim sav_lup typent typ_l js cmpt nbr ent) (setvar "CMDECHO" 0) (setq sav_dim (getvar "DIMZIN")) (setq sav_lup (getvar "LUPREC")) (setvar "DIMZIN" 0) (if (not precision) (progn (initget 4) (setq precision (getint (strcat "\nEntrer la précision désiré <" (itoa (getvar "LUPREC")) ">: " ) ) ) ) ) (if (not precision) (setq precision (getvar "LUPREC"))) (setvar "LUPREC" precision) (if (not unite) (progn (initget "KM M CM MM") (setq unite (getkword "\nEntre l'unité utilisé [KM/M/CM/MM] : ")) ) ) (if (not unite) (setq unite "M")) (while (null (setq typent (entsel "\nChoix du type d'entité : ")))) (setq typent (entget (car typent)) js (ssadd) typ_l (if (assoc 6 typent) (cdr (assoc 6 typent)) "ByLayer")) (cond ((= (cdr (assoc 0 typent)) "LWPOLYLINE") (setq js (mkfilt typent)) ) ((= (cdr (assoc 0 typent)) "POLYLINE") (setq js (mkfilt typent)) ) (T (prompt "\nLa commande ne traite que les POLYLIGNES simples ou optimisées.") (setq js nil)) ) (cond (js (setq cmpt 0 nbr 0) (print (sslength js)) (prompt (strcat " Entité(s) " (cdr (assoc 0 typent)) " trouvé(s).\n")) (repeat (sslength js) (setq ent (ssname js nbr)) (command "_.area" "_object" ent) (setq cmpt (+ (getvar "perimeter") cmpt)) (setq nbr (1+ nbr)) (if (< nbr 32767) (setq nbr (1+ nbr)) (setq nbr (+ 1.0 nbr)) ) ) (print cmpt) (princ (strcat unite " de Polyligne avec type de ligne " typ_l)) ) (t (prompt "\nSélection vide ou non valide..!")) ) (setq *error* olderr) (setvar "DIMZIN" sav_dim) (setvar "LUPREC" sav_lup) (princ) ) La 2eme permet d'obtenir une distance curviligne d'un morceau de ligne arc polyligne et spline (defun c:lg_curv ( / sv_osm ent typ_ent pt_brk nw_ent abs_cur ordon_y dxf_ent dxf_10 dxf_11 dxf_50 dxf_51) (setvar "cmdecho" 0) (setq sv_osm (getvar "osmode") nw_ent nil) (setq ent (entsel "\nChoix de l'objet: ")) (while ent (setq typ_ent (cdr (assoc 0 (entget (car ent))))) (cond ((or (eq typ_ent "LWPOLYLINE") (eq typ_ent "SPLINE") (and (eq typ_ent "POLYLINE") (<= (rem (cdr (assoc 70 (entget (car ent)))) 128) 13)) (eq typ_ent "ARC") (eq typ_ent "LINE")) (redraw (car ent) 3) (setvar "osmode" 2048) (while (setq pt_brk (getpoint "\nChoix du point pour définir l'abscise curviligne ")) (setvar "osmode" 0) (cond (pt_brk (command "_.undo" "_mark") (if (or (eq typ_ent "ARC") (eq typ_ent "LINE")) (progn (redraw (car ent) 4) (command "_.lengthen" ent "_dynamic" ent pt_brk "") (setq dxf_ent (entget (car ent)) dxf_10 (cdr (assoc 10 dxf_ent)) ordon_y (caddr pt_brk) nw_ent ent ) (redraw (car nw_ent) 3) (if (eq typ_ent "ARC") (progn (setq dxf_40 (cdr (assoc 40 dxf_ent)) dxf_50 (cdr (assoc 50 dxf_ent)) dxf_51 (cdr (assoc 51 dxf_ent)) ) (if (< dxf_51 dxf_50) (setq dxf_51 (+ (* 2.0 pi) dxf_51))) (setq abs_cur (* pi (* dxf_40 2.0) (/ (rem (- dxf_51 dxf_50) pi) (* pi 2.0)))) ) (progn (setq dxf_11 (cdr (assoc 11 dxf_ent)) abs_cur (distance (list (car dxf_10) (cadr dxf_10)) (list (car dxf_11) (cadr dxf_11))) ) ) ) (princ (strcat "\nAbscise curviligne du point = " (rtos abs_cur 2 3) " Z du point = " (rtos ordon_y 2 3))) (grread) ) (progn (command "_.break" ent "_first" pt_brk pt_brk) (redraw (car ent) 4) (while (not (setq nw_ent (entsel "\nChoix de la partie de l'objet à mesurer ")))) (setq typ_ent (cdr (assoc 0 (entget (car nw_ent))))) (cond ((or (eq typ_ent "LWPOLYLINE") (eq typ_ent "SPLINE") (eq typ_ent "POLYLINE")) (redraw (car nw_ent) 3) (command "_.area" "_entity" nw_ent) (setq abs_cur (getvar "perimeter") ordon_y (caddr pt_brk)) (princ (strcat "\nAbscise curviligne du point = " (rtos abs_cur 2 3) " Z du point = " (rtos ordon_y 2 3))) (grread) ) (T (redraw (car nw_ent) 3) (princ "\n** Sélection invalide! **") ) ) ) ) (command "_.undo" "_back") ) ) (setvar "osmode" 2048) (if nw_ent (redraw (car nw_ent) 4)) (redraw (car ent) 3) ) ) (T (princ "\nL'objet n'est pas un arc, une ligne, une polyligne ou une spline. ") ) ) (if ent (redraw (car ent) 4)) (if nw_ent (redraw (car nw_ent) 4)) (setq ent (entsel "\nChoix de l'objet: ") nw_ent nil) ) (setvar "osmode" sv_osm) (setvar "cmdecho" 1) (prin1) )
  8. bonuscad

    Logiciels de SIG

    Ce lien peut-il eclaicir vos questions? http://w3.claritas.fr/france/SIG/
  9. bonuscad

    textes

    Oops Je reviens sur ce que j'ai dit :o Patrick, tu as raison! Pas besoin de lisp. Par contre sur certain postes en 2002 (histoire de patch de correction?): aux messages d'options "Spécifiez la nouvelle hauteur ou [Correspondance objet/Facteur échelle] <1>:" il faut rentrer "Echelle" en entier pour avoir accès à correspondance et "C" ou "Correspond" pour avoir accès à l'échelle :casstet: Alors que "_S" pour _scale m'envoie bien à l'échelle et "_m" pour _match m'envoie bien à l'option correspondance. Et bien sûr les menus contextuel dans ce cas ne fonctionne pas non plus. Hormis ces gagures de traduction la commande fonctionne bien.
  10. bonuscad

    textes

    Salut, Excat cher Ribbit "_scaletext" fonctionne et même sans l'underscore (un oubli de traduction d'Autodesk: ce n'est pas la 1ere fois) Par contre le changement même par l'option échelle (ou le terme est mal choisi) , uniformise la taille des textes. Je crois que j'utiliserais encore ma routine qui me donne entière sastifaction pour des changements d'échelle générale en une seule passe. Merci pour l'info :D
  11. bonuscad

    textes

    Sous 2002 Commande: ECHELLETEXTE Commande inconnue "ECHELLETEXTE". Appuyez sur F1 pour obtenir de l'aide. sous 2005 alors?
  12. bonuscad

    textes

    Boris, Comment fait tu simplement pour changer des hauteurs de texte hétéroclites par propriétés? J'ai donné une solution dans ce sens là, par exemple tu veux doubler la hauteur de TOUS les textes. Dans la question cela n'était pas précisé mais je pense que cela coule de source que propriété ne devait pas répondre à son besoin. Avec la routine tu fais une seule passe pour changer toutes les hauteurs, sans changer le rapport initial. Il me semble que c'est plus simple ;)
  13. bonuscad

    textes

    Salut, Je propose cela, mais il en existe beaucoup d'autre. ((lambda ( / p orient l n e chm echel haut nhaut) (prompt "\nSélectionnez les textes à modifier: ") (setq p (ssget '((-4 . " (0 . "TEXT") (0 . "MTEXT") (-4 . "OR>")) ) ) (if p (progn (setq echel (getreal "\nEchelle de transformation pour tous les textes selectionnés: ") l 0 chm 0 n (sslength p) ) (while (< l n) (if (or (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (= "MTEXT" (cdr (assoc 0 e))) ) (progn (setq haut (cdr (assoc 40 e)) nhaut (* haut echel) e (subst (cons 40 nhaut) (assoc 40 e) e) ) (entmod e) (setq chm (1+ chm)) ) ) (setq l (1+ l)) ) ) ) (terpri) (princ chm) (princ " ligne(s) de texte a (ont) change de taille.") (terpri) )) Si celui ne te convient pas, j'en posède un autre avec boite de dialogue Bruno
  14. bonuscad

    Lien utile...

    Salut, Personnellement je connais ce site, c'est une mine d'info mais malheuresement en Anglais, et il y a beaucoup de liens: facile de s'y perdre. A cette adresse une traduction partielle en Français de quelques pages de ce site pour ceux qui ont du mal avec le chewing-gum. Merci à Roger Rosec pour cette traduction. http://www.newz.net/acadplus/page5101.htm
  15. Salut, Je travaille aussi avec un HP1050C Je n'ai pas la même démarche que toi. Je n'utilise que 2 formats personalisés (un pour le rouleau A1 et l'autre pour le rouleau A0) Par exemple pour le rouleau A0 je l'ai défini à 914 X 2100mm en prenant le mode rouleau A0 en pouces (en mètre cela de me permet pas de rentrer la valeur 914) Pourquoi 914 : 3 X 297 + les marges Le traceur est configuré en "surface encrée" ce qui lui permet de faire la découpe juste à la fin du dessin même si la feuille est plus longue. De cette manière je peux tracer tous les formats jusqu'à 2100 (tu peux augmenter cette valeur) NB:Cependant j'ai remarqué qu'il fallait rester en mode paysage dans la présentation, car en mode portrait le papier est déroulé systématiquement jusqu'à 2100 (il ne tient pas compte de la surface encrée, bonjour le gachis de papier)
  16. bonuscad

    Barre de menu des Calques

    Essaye de régler la variable "MAXSORT" Elle peut éviter de faire un tri sur la liste des calques, donc d'affecter la vitesse d'affichage, surtout si tu as beaucoup de calques. Si cela n'a aucune incidence, alors désolé :(
  17. Bonjour La fonction (trans pt de à [dpc]) de et à : peuvent êtrent un bit 0 (scg), 1 (scu), 2 (scv), 3 (scv espace papier) et aussi un nom d'entité (code DXF -1) ce qui correspond au SCO dpc : si non nil, veut dire que tu veux obtenir en retour un vecteur de déplacement 3D et non un point.
  18. As tu essayer par les Options, onglet Affichage,bouton Polices... de choisir une autre police ou même simplement de choisir une taille plus petite. Je pense qu'alors le nombre de carctères affichés sera différent.
  19. Bonjour, Sous Autocad 2002, le plug-in ERMapper ne permet une impression correcte (sans dégradation) que depuis l'espace objet. On ne peut faire de présentation dans l'EP, ou alors qu'après une gymnastique fastidieuse. D'autre part, pour l'affichage et l'impression il faut necessairement passer par les procédures du logiciel ERMapper et non par les commandes standards d'Autocad (Tracer et Regen). En résumé ce plug-in a l'avantage de pouvoir utiliser des images compressées, mais des almélioration de gestion sont (pour ma part) attendues pour pouvoir l'utiliser pleinement et facilement. Je suis surpris que ta société VENDE cette solution car ERMapper est un gratuiciel (pour l'instant) voir: http://www.ermapper.com/
  20. Bonjour L'explication est un peu succinte pour te donner une explication précise. Les objets sont ils complexes (groupe, hachures)? Ta copie fonctionne t-elle sur un objet unique seulement? Essaie de voir les variables "PICKADD" et "PICKSTYLE" Comment a tu mis en place ton raccourci? le PGP est-il dans le bon dossier?
  21. Juste mon avis. Déjà ton employeur devrait s'occuper de la malveillance qui règne au sein de son entreprise avant de réclamer des protections. Pourquoi je dis ça; Même si tu compile tes programmes, il te faudra toujours les sources pour les alméliorations et les corrections. Ou vont elles être?, sur ton micro! donc toujours vulnérables. :o D'autre part si ton employeur devait faire façe a une correction majeure, que fera t-il avec des progs compilés si pour une raison ou pour une autre (que je ne te souhaite pas) tu n'es plus là? Autre que le fait de partager, la maintenance de programmes protégés est plus lourde avec le risque, à long terme de perdre des sources (j'en sais quelque chose) :casstet: Et pour finir, rien n'arrête les pilleurs bien décidés, à mon avis. Donc le jeu en vaut-il la chandelle pour une application de diffussion interne et limitée, si j'ai bien compris. Mais bon c'est le BOSS qui décide, et ça te laisse un atout pour négocier ta vie professionnelle au cas où. ;) A propos de variable non documentées il y a aussi _VERNUM _SERVER _LINFO Est ce qu'elles peuvent être utiles pour une protection, je n'en sais rien!
  22. bonuscad

    Afficher des images

    Non, non j'ai rien à ajouter. :D :D La fois ou j'ai eu besoin de faire une présentation, effectivement j'ai utilisé un script. Pour ma part, je pense que c'est la meilleure solution et la plus rapide à mettre en oeuvre. Par contre pour générer mes clichés avec un déplacement de camera en 3D, là oui j'ai utilisé un lisp, mais là c'est pas la question! Un Script façon Tramber, rien de tel dans ce cas là. Une remarque cependant, je crois que les clichés ne peuvent être effectués à partir d'un résultat de rendu (dommage !). A vérifier dans les versions récentes...
  23. bonuscad

    Filtres de coordonnées

    A l'aide du Lisp, on peut créer un "clone" de la commande LIGNE qui reprend les fonctionalités désirées. Si ca peut convenir, pour une version pleine bien sûr. (defun err_lxy (ch) (cond ((eq ch "Function cancelled") nil) ((eq ch "quit / exit abort") nil) ((eq ch "console break") nil) (T (princ ch)) ) (if pt_b (command "")) (setq last#point_cmd T *error* olderr) (setvar "cmdecho" 1) (princ) ) (defun c:linexy ( / odlerr msg_f msg_n n pt_b pt_n) (setvar "cmdecho" 0) (setq olderr *error* *error* err_lxy) (setq msg_f "\nSpécifiez le point suivant .XY de, ou [annUler]: " msg_n "\nSpécifiez le point suivant .XY de, ou [Clore/annUler]: " n 0 ) (while (null pt_b) (setq pt_b (getpoint "\nSpécifiez le premier point .XY de: ")) (if (and (null pt_b) last#point_cmd) (setq pt_b (getvar "lastpoint")) (if (not last#point_cmd) (princ "\nAucune ligne ou arc à continuer.")) ) ) (command "_.line" ".xy" pt_b 0.0) (princ " Z de 0.0 ") (initget "U ANNUler _Undo UNDO") (while (and (setq pt_n (getpoint pt_b (if (< n 2) msg_f msg_n))) (/= pt_n "Close")) (if (< n 1) (initget "U ANNUler _Undo UNDO") (initget "U ANNUler Clore _Undo UNDO Close") ) (if (listp pt_n) (progn (command ".xy" pt_n 0.0) (setq n (1+ n) pt_b pt_n) (princ " Z de 0.0 ") ) (if (zerop n) (princ "\nTous les segments sont déjà annulés.") (progn (command "_undo") (setq n (1- n) pt_b (getvar "lastpoint")) ) ) ) ) (if (eq pt_n "Close") (command "_close") (command "") ) (setq last#point_cmd T *error* olderr) (setvar "cmdecho" 1) (princ) ) Fonction testée rapidement, attention!
  24. J'appuie la réponse de Zébulon Dans Autolisp seule les fonctions (sin x) (cos x) (atan x) pour ArcTangente sont disponible (asin x) (acos x) et (tan x) n'existent pas. La relation tang a= sin a / cos a te permettra d'obtenir par exemple la fonction suivante: (defun tan (val / ) (/ (sin val) (cos val)) ) (tan (/ pi 3)) te renverra 1.73205
  25. Ben, on l'utilise parfois, mais delà a écrire un applicatif.... :casstet: Par contre il y a sur le net (en anglais) des explications sur le vocabulaire du language. J'espère que cela répondra a tes attentes ;) http://www.wotsit.org/search.asp?s=HPGL2
×
×
  • 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é