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. Celui là est sympa aussi (je l'utilise), il s'appelle POM Tu peux ordonner tes pdf comme tu veux et ils peuvent être de différents formats. NB: Si WinRAR est présent sur la machine, penser à inactiver l'extension .JAR dans celui-ci.
  2. Je partage le conseil de Didier. Mois quand je fait des aplats de couleur, j'en fait un xref indépendant. En plus de cette manière tu pourras toujours gérer après coup la mise en arrière (ou avant) de tes aplats pour qu'il ne masque pas, ou masque au contraire d'autre entités ou Xref. et tu pourras le détacher ou décharger lors de ton travail pour qu'il ne te gène pas et ne soit pas pénalisant à l'affichage
  3. bonuscad

    Hachures pour Zébras

    Moi je l'ai testé sur une 2005 maxi, mais étant fait en lisp standard (pas de fonction vl ou vlax ) il devrait se comporter de la même façon. le U est une valeur représente un paramètre tiré de document officiel. La valeur proposée (6cm) correspond à une valeur pour les nationales 7.5 est pour les routes express ou autoroutes 5 pour les départementales Cela devrait fonctionner, malheureusement je reconnais que ça ne fonctionne pas toujours. Le plus grand souci est déjà la commande contour, si celle ci fonctionne déjà pour ton contour, bonne chance de réussite. puis des fois le hachurage en solide ne fonctionne pas comme il faut. Donc pour le contour essaye d'avoir un contour qui fonctionne, sans avoir d'objets parasites dans celui-ci, des petits arc dans le contour posent parfois problème. Au pire tu fait rapidement un contour simplifié. Si le hachurage se fait en complet fait seulement des "U" pour remonter jusqu'au contour des barres et fait le hachurage solide manuellement Voilà la routine peut avorter, elle est loin d'être parfaite. Ce que je fais aussi des fois quand je n'arrive pas à la faire fonctionner est un copier-coler du contour avec point base à 0,0,0 dans un nouveau dessin et éventuellement un scu origine dans la zone. Enfin de la bidouille quoi Ca vient de l'axe dans la zone, celui ci est mesuré pour mettre en place les contour des barres et forcément il ce peut qu'une zone ne soit pas couverte. Tricher sur le contour, ou quand c'est en nez d'ilot ne pas oublié qu'une surface pleine est mise en peinture ce que le programme ne fait pas. Voilà c'est pas toujours tip-top, mais quand ça fonctionne ça fais gagner un peu de temps.
  4. bonuscad

    Crénalage du pointeur

    Je connais pas les options de la 2007. Mais as tu fais un tour dans les options d'autocad dans l'onglet système et dans les propriétés de de l'affichage des graphiques 3D. Dans la nouvelle boite de dialogue Configuration du système graphique 3D tu devrais avoir accès à la partie accélération ou tu peux choisir Logicielle ou Matérielle. Si tu prend un pilote opengl, une case "Activer les ligne anti-crénelage" est accessible. Cela pourrait peut être résoudre ton problème. Sous 2007 cela se présente peut être différemment, quelqu'un pourra peut être confirmé
  5. Il ce peux aussi (si tu n'as de bloqueur de pub sur ton navigateur) qu'un pop-up de pub (du même site, donc on ne voit pas forcément la différence) vienne masquer l'endroit de saisie, si c'est le cas ferme le pop-up ou déplace le.
  6. bonuscad

    Hachures pour Zébras

    J'allais faire un copier-coller, merci Kallain pour le relais ;)
  7. bonuscad

    Deux nouveaux sites

    Hé Zizou on se calme ;) Je suis un gros fumeur (je pense qu'à mes propos vous l'avez deviné), mais paradoxe, je supporte difficilement les lieux sur enfumés. Même chez moi, par exemple; je supporte mal ma femme quand elle fume dans la chambre à coucher, ou dans la voiture toutes fenêtres fermées, comme quoi je peux comprendre les non-fumeurs. Dans ma jeunesse, ou je fumais déjà, je trouvais aberrant de devoir sortir régulièrement et assez longtemps de la boite de nuit pour respirer de l'air frais. Mais je supporte très bien un ou des fumeurs dans un lieu approprié, par exemple dans un immense hall de gare ou le volume d'air est en conséquence. Je pense que tout le monde peut y mettre du sien, pour que le quotidien soit vivable, au lieu de d'être obligé de prendre des dispositions qui peuvent arriver à être absurde. En comparaison pourquoi devrais-je supporter les décibels des petits jeunes qui ont bricolé leurs 2 roues, les sonneries incessantes des portables dans les lieux publics. On pourrait aussi porter l'extrême à plein de nuisances qu'on subit quotidiennement. Si on part dans cette voie, on n'a pas finit de réglementer et de légiférer. Chose marrante, les fumeurs n'ont jamais râlé quand l'interdiction de fumer dans les salles de projection est apparue, et je n'ai jamais vu personne se lever en milieu de séance pour aller fumer sa "clope". Comme quoi! Cela touche à des phénomènes sociaux complexes, certaines lois peuvent être bonnes, d'autre abusives ou inadaptés. Avons nous besoins de toutes ces lois pour nous respecter. Des lois visant la source du problème me semble t-il seraient plus efficaces, mais généralement elles touchent au lobbying du dieu dollar $$$ Voilà la discussion continue, sans animosité, je veux juste donné un éclairage différent. C'est peut être un sujet "sensible" mais pas tabou. Tiens j'ai eu une discussion à midi sur les substituts sucrés, asparthame et dérivé, il parraitrait que ceux-ci ne sont pas du tout anodin sur la santé alors qu'on les emploit en grande quantité dans l'industrie alimentaire et par toujours de manière transparente pour le consommateur.... et ceci soit disant pour un problème de santé publique (obésité) ou on veut diriger le consommateur vers de tel produits "allégés" :(
  8. bonuscad

    Deux nouveaux sites

    Un peu déçu par ce genre de réaction, que je trouve déplacé. L'herbe à nicot trouve un usage depuis la nuit des temps, pourquoi? On en retrouvé des trace dans les cheveux des momies de pharaons, preuve qu'ils en faisaient déjà usage alors que ses plante n'est pas du tout originaire de ce continent. Signe de convivialité et de moment de partage, (moi fumer calumet avec toi). Non le problème de nos jours et tout autre, car notre société est tombé dans l'excès de consommation. D'où vient cet excès; ne serait ce pas ces industriels qui compose de savant mélange pour accrocher le consommateur. Ajout d'ammoniaque pour que la fumée pénêtre plus profondément aux fond des bronchioles, et qu' ainsi l'échange sanguin soit plus rapide. Et d'autre produits qui rende le tabac plus agréable à fumer, mais beaucoup plus toxique que son état naturel. Alors pourquoi ne pas faire la guerre à ces fabricants, qui sont des "dealer" de mort en leur interdisant l'usage de tel produits. Non à côté de ça on préfère le beurre et l'argent du beurre. On intoxique en tout connaissance de cause, on taxe l' intoxiqué en lui vendant sa drogue à prix fort et on tire à boulet rouge sur lui en le rendant fautif de tous les maux. Fumer à l' excès n'est pas bien certe, mais je trouve que mentir en présentant le problème sous la forme que l'on veux nous faire voir n'est pas mieux.
  9. bonuscad

    Deux nouveaux sites

    Didier, je te suis dans ton état de pensée. Bien que je ne ferais pas l'apologie du tabac, car il est certain que c'est nocif pour la santé. Mais nos politiques se foutent pas mal de: l'air de la rue qu'on respire, de ce qu'on ingurgite quotidiennement comme pesticides dans les fruits et légumes, aux métaux lourds du poisson, aux antibiotiques dans la "barbaque" et tout ce qu'on ne sait pas. Tout ceci me semble beaucoup plus important qu'une malheureuse fumée de cigarette qui semble bien dérisoire même si elle n'est pas anodine. Moi, je polémique ?! :P
  10. Tu peux quand même essayer avec la commande "Mesurer" et l'option "Bloc" en choisissant d'aligner le bloc avec l'objet mesuré. Il te faudra de créer au préalable au moins 4 blocs: un pour barbe courte et l'autre pour barbe longue, ceci pour la pour la mise en place à droite du sens de parcours de l'objet mesuré, et la même opération pour le coté gauche. Il te faudra alors mesurer 2 fois ton objet, 1 fois avec la barbe courte et 1 fois avec la barbe longue en prenant un multiple de la 1ere mesure (2x 3x 4x...) Bien sur avec cette méthode l'ajustement au pied de talus sera plus laborieux, il faudra décomposé les blocs puis les ajuster. Un (ou deux) script relativement simple pourrait un peut être aussi envisagé si l'objet à mesurer et le dernier élément tracé. Je te laisse méditer sur cette possibilité. ;)
  11. bonuscad

    Crénalage du pointeur

    Ne serait pas la fonction resol qui serait active ?? qu'entends tu par crenelage ? Je suppose qur tu as déjà jeté un oeil à http://www.nvidia.fr/page/ws_partner_certified_drivers.html ;)
  12. Cher webmaster Patrick, Le succès de ton site commence à atteindre ses limites. Il serait souhaitable de pouvoir améliorer la fonction de recherche, qui bien qu'elle fonctionne bien est trop restrictive sur l'orthographe exacte des mots recherchés. Par exemple faire une recherche avec "Type de ligne" et "Typeligne" devrait pouvoir donner le même résultat. De même sur le forum US "The Swamp" j'ai vu une fonctionnalité automatique intéressante. Par exemple lors d'un nouveau sujet il apparait automatiquement tout les sujets (limité aux récents? je ne sais pas!) qui ont attrait à ce sujet et traité auparavant. Je trouve que c'est un plus ;) J'ai même du mal à retrouver d'anciens fils, alors que je sais qu'ils existent :mad2: Bon c'est sur que les subtilités de la langue Francaise ne vont pas faciliter le tâche. Alors Messieurs, Mesdames, pas de language SMS qui ne facilite pas les recherches ultérieures :casstet: et un bon titre, vaut mieux qu'un mauvais roman :P Merci Patrick, ce n'est qu'un souhait, mais..... NB: Je pense surtout à la fonction "recherche dans les forums", pas à la recherche générale du site.[Edité le 12/1/2007 par bonuscad] Je me suis trompé pour l'exemple du forum qui pratique les fils de discussion similaires; c'est CADTutor forum, désolé :P [Edité le 14/1/2007 par bonuscad]
  13. bonuscad

    menu contextuel

    L'usage d'initget avec les fonctions (getxxx) permet de retrouver les options dans le menu contextuel (click-droit) et de valider l'options via ce menu (sans saisie clavier, vous ne lachez pas la souris). On retrouve ainsi le mode de fonctionnement des commandes standard d' Autocad avec les options dans le menu contextuel ou en ligne de commande. Attention la variable "SHORTCUTMENU" influe sur ce comportement. Un petit exemple lisp qui illustre la syntaxe (en language international) pour obtenir ce menu. Boucle tant que l'option "Rien" n'est pas sélectionné. (defun c:test ( / sh_mnu key) (setq sh_mnu (getvar "SHORTCUTMENU")) (setvar "SHORTCUTMENU" 11) (initget "Bonjour Aurevoir Rien _Hello Goodbye Nothing") (while (/= key "Nothing") (if (not (setq key (getkword "\nDites moi [bonjour/Aurevoir/Rien]? : "))) (setq key "Hello") ) (cond ((eq key "Hello") (princ "\nBonjour") ) ((eq key "Goodbye") (princ "\nAurevoir") ) ((eq key "Nothing") (princ "\nRien") ) ) (initget "Bonjour Aurevoir Rien _Hello Goodbye Nothing") ) (setvar "SHORTCUTMENU" sh_mnu) (prin1) )
  14. bonuscad

    BLOCK et WIPEOUT

    Je viens de m'apercevoir que j'ai mal compris la question, donc cela m'étonne pas qu'il n'y ait aucun résultat. Je suis partie sur la considération que le wipeout était indépendant du bloc :calim: Donc j'ai essayé de reprendre la chose dans le bonne ordre, mais pas de résultat. En fait j'ai un problème avec (ssadd) et (sssetfirst) qui ont l'air ne ne pas fonctionner pour les entités imbriqués. Je donne quand même le code qui serait censé fonctionner, si quelqu'un à un 'tilt"... ((lambda ( / js_blk s_ent l_e l_dxf js_front js_back) (princ "\nChoix d'une insertion de bloc à traiter: ") (setq js_blk (ssget "_+.:E:S" '((0 . "INSERT")))) (cond (js_blk (setq s_ent (cdr (assoc -2 (tblsearch "BLOCK" (cdr (assoc 2 (entget (ssname js_blk 0)))))))) (while s_ent (setq l_e (cons s_ent l_e)) (setq s_ent (entnext s_ent)) ) (setq l_dxf (mapcar 'entget l_e) js_back (ssadd) js_front (ssadd)) (foreach n l_dxf (if (eq (cdr (assoc 0 n)) "WIPEOUT") (ssadd (cdar n) js_back) (ssadd (cdar n) js_front) ) ) (if (not (zerop (sslength js_back))) (progn (sssetfirst js_back js_back) (ai_draworder "_front") ) ) (if (not (zerop (sslength js_front))) (progn (sssetfirst js_front js_front) (ai_draworder "_front") ) ) ) ) (prin1) ))
  15. Tu as simplement encore oublié des corrections des options de commande. Ici (command "_.text") (command "r" tpt "0.25" "0" task) doit être (command "_.text") (command "_r" tpt "0.25" "0" task) justification à "droite" en francais ;) Il ya aussi l'option "c" qui traine pour le texte mais celle là est moins importante car c'est la même syntaxe en francais Tu vas y arriver :) Pour: (setq bartyp (getkword "Type of Bars (F)illed/(O)pen): ")) C'est simplement pour savoir si tu veux les barres graphiques pleine ou creuse Il y a effectivement un fichier DAT de créer, mais je ne sais pas à quoi il sert, je n'ai pas décortiqué le lisp, je l'ai juste essayé pour le "fun"
  16. J'ai eu l'occasion d'utiliser un photocopieur MonoChrome A3/A4 avec circuit papier indépendant pour les envois numériques. Solution interessante sauf quand la personne qui utilise le photocopieur de manière traditionnelle le bloque et ne sachant plus quoi faire devant le panneau de commande fait un power "OFF". Radical pour perdre tout les documents en attente :mad: Mais à l'usage on apprécie beaucoup. Suivant les options choisies on à aussi des options interessantes pour la bureautique (word, excel): fonction de tri pour copie multiple, de recto-verso, d'agraphage...
  17. bonuscad

    pb error

    En effet la commande Qdim n'accepte pas une selection multiple :( Mai on peut contourner le problème comme suit: (defun c:QD ( / Calq old_err js) (defun err_QD (ch / ) (setvar "CLAYER" Calq) (setq *error* old_err) (prin1) ) (setq Calq (getvar "CLAYER") old_err *error* *error* err_QD ) (setvar "CLAYER" "COTATION") (princ "\nChoix des objet à coter.") (setq js (ssget)) (if js (progn (command "_.qdim" js "") (while (not (zerop (getvar "CMDACTIVE"))) (command pause) ) ) ) (setvar "CLAYER" Calq) (setq *error* old_err) (princ) )
  18. bonuscad

    pb error

    Je pense pas que tu ais besoin d'une gestion d'erreur si complexe pour ton petit programme, ton problème étant seulement de remettre la variable "CLAYER" a son état initial. Je te conseille aussi l'usage de la variable "CMDACTIVE" au lieu des 3 pauses, cela te laissera plus de liberté dans la commande cotation Voici ce que ton prog aurait pu être simplement (defun c:CB ( / Calq old_err) (defun err_cb (ch / ) (setvar "CLAYER" Calq) (setq *error* old_err) (prin1) ) (setq Calq (getvar "CLAYER") old_err *error* *error* err_cb ) (setvar "CLAYER" "COTATION") (command "_.DIMLINEAR") (while (not (zerop (getvar "CMDACTIVE"))) (command pause) ) (setvar "CLAYER" Calq) (setq *error* old_err) (princ) )
  19. bonuscad

    BLOCK et WIPEOUT

    Un truc dans ce genre pourrait-il te simplifier la tâche? ((lambda ( / js_blk name_blk js_front js_back) (princ "\nChoix d'une insertion de bloc à traiter: ") (setq js_blk (ssget "_+.:E:S" '((0 . "INSERT")))) (cond (js_blk (setq name_blk (assoc 2 (entget (ssname js_blk 0)))) (setq js_front (ssget "_X" (list '(0 . "INSERT") name_blk))) (setq js_back (ssget "_X" '((0 . "WIPEOUT")))) (if (not (null js_back)) (progn (sssetfirst nil js_back) (ai_draworder "_front") ) ) (if (not (null js_front)) (progn (sssetfirst nil js_front) (ai_draworder "_front") ) ) ) ) ))
  20. bonuscad

    Convertion PLT en DWG ???

    Il y avait ce SUJET mais je pense qu'il est obsolète ou alors valable seulement pour du HPGL et non pour du HPGL/2, mais essayes quand même, on ne sait jamais.... bien que ce soit de l'histoire ancienne.
  21. Je ne sais pas si sous 2007 ma proposition est encore valable, mais normalement tu peux installer un traceur générique en HPGL/2 par le gestionnaire de tracage d'AutoDesk.
  22. Il n'y a pas que les commande à internationaliser, mais AUSSI les options des commandes. Dans ton cas c'est "close" de l'option ligne qui doit être "_close". Ne laisse pas tomber, j'ai essayé le lisp et après correction; il n'est pas très bien écrit, il fonctionne quand même... :casstet:
  23. bonuscad

    Texte Ligne en MultiLigne

    TXT2MTXT regroupe plusieurs textes en un seul MText. Pour éviter cela il faut le faire individuellement. Utilise la procédure suivante si tu en as beaucoup à traiter ((lambda ( / js n ename) (princ "\nChoix des Textes à transformer en MTexte individuel.") (setq js (ssget '((0 . "TEXT")))) (cond (js (setq n -1) (if (not (member "leaderex.arx" (arx))) (arxload "leaderex.arx") ) (repeat (sslength js) (setq ename (ssname js (setq n (1+ n)))) (command "_txt2mtxt" ename "") ) ) (T (princ "\nAucun Texte sélectionné!") ) ) (prin1) ))
  24. Tout à fait du même avis... L'acquisition d'un Soft pour une utilisation professionnelle et quotidienne est indispensable pour un gain de temps et de fiabilité des résultats. Mais lorsque le besoin est ponctuel, il est impensable d'acquérir ces logiciels qui ne sont pas donnés. Le jeu n'en vaut plus la chandelle. La question au départ était pour "le fun" et avec "AutoCad 2007" La solution que je donne n'est qu'un palliatif et n'a pas la prétention de remplacer un logiciel dédié à ce genre de tâche. Je souligne quand même que Triangle tient compte des lignes de rupture de pentes (si elles sont fournies) pour faire une triangulation. Pour un logiciel libre, il est tout à fait honorable, et rend bien service pour des cas occasionnels. Voilà, il faut juste faire la part des choses, et bien cerner ses besoins.
  25. Cette question revenant très souvent, je vous donne une solution GRATUITE et LEGALE, mais il va falloir s'accrocher pour la mettre en oeuvre. (maitriser un tant soit peu l'anglais risque d'être indispensable) Tout d'abords télécharger les sources d'un applicatif en licence libre qui est vraiment "de la balle", les possibilités sont vraiment énormes. Voir ICI pour le téléchargement et les détails du logiciel. Ceci fait, il va falloir compiler les sources de triangle afin d'obtenir un EXE Je l'ai fait avec CYGWIN sans avoir aucune connaissance des compilateurs et j'y suis arrivé. Bien s'assurer d'obtenir les packages nécessaires pour la compilation : ggg++, make dans devel. C'est un compilateur d'après ce que j'ai compris du monde Unix compatible avec windows (les pros vous en diront plus), il est très basique (console de terminal) mais à l'air très puissant. Voici la syntaxe que j'ai employé pour la compilation: gcc -c -mno-cygwin triangle.c puis: gcc -o triangle -mno-cygwin triangle.o en ayant placé les sources dans le dossier home\profile de CygWin NB: Ce compilateur n'apparaitra pas dans la liste ajout/suppression de windows, pour l'enlever il y a une procédure que je n'ai pas encore faite. et après on peut utiliser un lisp. Voici celui que j'utilise, mais une adaptation et amélioration peut être nécessaire. Si Patrick_35 pouvait m'orienter pour éviter les appels à la commande "SH" d'autocad à l'aide des fonction vlax (defun trinerr (ch / ) (cond ((eq ch "Function cancelled") nil) ((eq ch "quit / exit abort") nil) ((eq ch "console break") nil) (T (princ ch)) ) (setvar "cmdecho" sv_cmd) (setq *error* olderr) (princ) ) (defun espa (chn / ) (while (eq (substr chn 1 1) " ") (setq chn (substr chn 2)) ) (while (/= (substr chn 1 1) " ") (if (eq (substr chn 1 1) "") (setq chn '" ") (setq chn (substr chn 2)) ) ) ) (defun triele (f1 f2 k / f11 f22 a b nbrpt nbrtr num dx dy alt pt numtr numpt1 numpt2 numpt3 lstpt p1 p2 p3 js_sel h_extr) (setvar "osmode" (+ 16384 (rem (getvar "osmode") 16384))) (setq lstpt ()) (setq f11 (open f1 "r")) (setq f22 (open f2 "r")) (setq a (read-line f11)) (setq b (read-line f22)) (setq nbrpt (read a)) (setq nbrtr (read b)) (cond ((eq k "PMaille") (command "_.pface")) ((eq k "SOlid") (setq js_sel (ssadd))) ) (prompt "\nLecture du fichier NOD en cours!\n") (repeat nbrpt (setq a (read-line f11)) (setq num (read a)) (setq a (espa a)) (setq dx (read a)) (setq a (espa a)) (setq dy (read a)) (setq a (espa a)) (setq alt (read a)) (setq pt (cons num (cons dx (cons dy (list alt))))) (cond ((eq k "PMaille") (command (cdr pt)))) (setq lstpt (cons pt lstpt)) (prompt (strcat "\t" (itoa num) " Point(s) lu(s)\r")) ) (cond ((eq k "PMaille") (command ""))) (close f11) (prompt "\nDessin de la triangulation en cours!\n") (repeat nbrtr (setq a (read-line f22)) (setq numtr (read a)) (setq a (espa a)) (setq numpt1 (read a)) (setq a (espa a)) (setq numpt2 (read a)) (setq a (espa a)) (setq numpt3 (read a)) (setq p1 (cdr (assoc numpt1 lstpt))) (setq p2 (cdr (assoc numpt2 lstpt))) (setq p3 (cdr (assoc numpt3 lstpt))) (cond ((eq k "3Dface") (command "._3dface" p1 p2 p3 "" "")) ((eq k "PMaille") (command numpt1 numpt2 numpt3 "")) ((eq k "SOlid") (command "_.area" (list (car p1) (cadr p1) 0.0) (list (car p2) (cadr p2) 0.0) (list (car p3) (cadr p3) 0.0) "") (cond ((not (equal (getvar "area") 0.0 0.00000001)) (command "_.pline" (list (car p1) (cadr p1) 0.0) (list (car p2) (cadr p2) 0.0) (list (car p3) (cadr p3) 0.0) "_close") (setq h_extr (max (distance (list (car p1) (cadr p1) 0.0) p1) (distance (list (car p2) (cadr p2) 0.0) p2) (distance (list (car p3) (cadr p3) 0.0) p3))) (command "_.extrude" (entlast) "" h_extr 0.0) (command "_.slice" (entlast) "" "_3points" p1 p2 p3 (list (car p1) (cadr p1) 0.0)) (ssadd (entlast) js_sel) ) ) ) ) (prompt (strcat "\t" (itoa numtr) " Nombre de triangle(s) dessiné(s)\r")) ) (cond ((eq k "PMaille") (command "")) ((and js_sel (eq k "SOlid")) (command "_.union" js_sel "")) ) (prompt "\n") (close f22) ) (defun c:trinod ( / sv_und sv_blp typent js jsseg cmvrtx nbr nbrp nbrseg sseg typpol memstr memvrtx namseg vrtx ent fc pt sv_cmd sv_zp cmpth memph k_mod folder) (setq sv_cmd (getvar "cmdecho")) (setvar "cmdecho" 0) (if (<= (setq sv_und (getvar "undoctl")) 3) (command "_.undo" "_control" "_all")) (command "_.undo" "_group") (setq olderr *error* *error* trinerr) (setq sv_zp (getvar "dimzin")) (setvar "dimzin" 0) (setq sv_blp (getvar "blipmode")) (setvar "blipmode" 0) (prompt "\nChoix des points à traiter : ") (setq js (ssget '((0 . "POINT")))) (cond (js (setq nbr 0 znl 0 jsseg (ssadd) ) (while (setq sseg (entsel "\nChoix de 3Dpoly ou pour finir ou ignorer : ")) (setq typpol (entget (car sseg))) (cond ((and (= (cdr (assoc 0 typpol)) "POLYLINE") (eq (logand (cdr (assoc 70 typpol)) 8) 8)) (setq jsseg (ssadd (car sseg) jsseg)) (redraw (car sseg) 3) ) (T (prompt "n'est pas une 3Dpoly!")) ) ) (setq fc (open (strcat (substr (findfile "triangle.exe") 1 (- (strlen (findfile "triangle.exe")) 12)) "bonus.poly") "w") memstr ()) (while (setq namseg (ssname jsseg 0)) (setq typpol (entget namseg)) (while (setq vrtx (cdr (assoc 10 (setq typpol (entget (entnext (cdar typpol))))))) (cond (vrtx (if (< nbr 2147483647) (setq nbr (1+ nbr)) (setq nbr (+ 1.0 nbr)) ) (setq pt (strcat (rtos nbr 2 0) " " (rtos (car vrtx) 2 3) " " (rtos (cadr vrtx) 2 3) " " (rtos (caddr vrtx) 2 3) ) ) (setq memstr (append (list pt) memstr)) (setq memvrtx (cons nbr memvrtx)) ) ) ) (if (> (sslength jsseg) 0) (setq jsseg (ssdel namseg jsseg))) ) (write-line (strcat (rtos (+ nbr (sslength js)) 2 0) " 2 1 0") fc) (cond (memstr (setq memstr (reverse memstr)) (while memstr (write-line (car memstr) fc) (setq memstr (cdr memstr)) ) ) ) (setq nbrp 0) (repeat (sslength js) (setq ent (ssname js nbrp) pt (cdr (assoc 10 (entget ent)))) (if (< nbrp 2147483647) (setq nbrp (1+ nbrp)) (setq nbrp (+ 1.0 nbrp)) ) (setq pt (strcat (rtos (+ nbr nbrp) 2 0) " " (rtos (car pt) 2 3) " " (rtos (cadr pt) 2 3) " " (rtos (caddr pt) 2 3) ) ) (write-line pt fc) ) (cond (memvrtx (setq nbrseg (1- (length (setq memvrtx (reverse memvrtx)))) cmvrtx 0) (write-line (strcat (rtos nbrseg 2 0) " 0") fc) (while (not (eq cmvrtx nbrseg)) (write-line (strcat (itoa (setq cmvrtx (1+ cmvrtx))) " " (rtos (car memvrtx) 2 0) " " (rtos (cadr memvrtx) 2 0) ) fc ) (setq memvrtx (cdr memvrtx)) ) (setq cmpth 1 memph ()) (while (setq pt (getpoint "\nPoint à l'interieur du trou ou pour finir ou ignorer : ")) (setq memph (cons pt memph)) ) (write-line (itoa (length memph)) fc) (while memph (write-line (strcat (itoa cmpth) " " (rtos (caar memph) 2 3) " " (rtos (cadar memph) 2 3)) fc) (setq memph (cdr memph) cmpth (1+ cmpth)) ) ) (T (write-line "0 0" fc) (write-line "0" fc) ) ) (close fc) (print (+ nbr nbrp)) (prompt " Point(s) seront traité par la commande(s).") (gc) (setq folder (substr (findfile "triangle.exe") 1 (- (strlen (findfile "triangle.exe")) 12))) (command "_shell" (strcat "triangle.exe -pcD " "\"" folder "bonus.poly" "\"")) (prompt "\nAppuyer sur une touche pour continuer!") (grread) (initget "3Dface PMaille SOlid") (setq k_mod (getkword "\nDessiner des [3Dface/PMaille/SOlid] ? <3Dface>: ")) (if (eq k_mod ()) (setq k_mod "3Dface")) (triele (findfile "bonus.1.node") (findfile "bonus.1.ele") k_mod) (command "_sh" (strcat "del " "\"" (findfile "bonus.1.poly") "\"")) (command "_sh" (strcat "del " "\"" (findfile "bonus.1.node") "\"")) (command "_sh" (strcat "del " "\"" (findfile "bonus.1.ele") "\"")) (command "_sh" (strcat "del " "\"" (findfile "bonus.poly") "\"")) ) (t (prompt "\nSélection vide..!")) ) (setvar "dimzin" sv_zp) (setvar "blipmode" sv_blp) (setq *error* olderr) (command "_.undo" "_end") (if (<= sv_und 3) (command "_.undo" "_control" "_one")) (setvar "cmdecho" sv_cmd) (prin1) ) [Edité le 31/12/2006 par bonuscad]
×
×
  • 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é