-
Compteur de contenus
2 764 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Bred
-
J'ai un peu revu le lisp de Gile... Pour Avis...merci (j'ai enlevé le premier "pt1" après getpoint -voir ma remarque précedente...ainsi que la demande getdist...) (defun c:lz (/ pt1 pt2) (princ "\n Ligne suivant Z \n") (setq pt1 (getpoint "\n Spécifiez le premier point (départ ligne):") pt2 pt1 ) (while (= (caddr pt1) (caddr pt2)) (progn (initget 1) (setq pt2 (getpoint pt1 "\n Spécifiez le second point ou une distance: ")) (setq pt2 (list (car pt1) (cadr pt1) (caddr pt2)))) ) (command "_.line" pt1 pt2 "") (princ) ) Ca me va bien comme ça, sauf que j'aurais bien aimé que la distance de ligne déssiné soit la distance donné... A part retourné le SCU, n'y a t'il pas un moyen de "forcer" la possibilité de déplacement de la souris dans un seul sens ??? (celui des Z ici...)
-
Un grand merci, j'ai tout compris... sauf .... ...le premier pt1 après getpoint... je sais que l'on peut rentrer un point avant la commande getpoint pour avoir une "ligne élastique", mais là le pt1 n'est pas encore défini et je ne vois pas à quoi il sert... Autre chose vite fait : la macro bouton, je l'aime beaucoup et j'y avais pensé, mais je retrouve le problème de rappel de commande avec "entrée" qui ne fonctionne pas... même problème que dans mon message précedent en fait : http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=9695#pid36933
-
Je ne sais pas si je vais répondre à ta question, mais tu n'as qu'à taper FILEDIA dans la ligne de commande, et taper 1 (elle doit être sur 0 chez toi) Salutation
-
Merci Juste un éclairsisement, dans ton lisp je ne comprend pas : (setq pt1 (getpoint pt1 "\n Spécifiez le premier point (départ ligne):") pt2 pt1 ) le second pt1(après getpoint) ? le pt2 pt1) en fin de liste. merci
-
Je vais essayer d'être un peu plus clair : Mon lisp sert à régler un pas de vis. Ce pas de vis peut être réglé par rapport à 3 choix : la sortie de vis, le point d'appui de l'écrou ou le point d'appui de la vis... j'ai donc fait un lisp qui insert mes pièces et qui les règles suivant l'un des 3 choix que j'ai fait. J'aurais pû séparé les 3 choix (et je peux toujour le faire) mais comme j'ai eu cette difficulté de retour de commande, je pose la question pour savoir si il est possible d'y remédier pour mes prochains lisp... Ce lisp fait la même chose mais de trois manière différente selon les cas de figures désiré, je pensais qu'il était "malin" de le regrouper... Si vous ne voyez pas de solution, ce sera une bonne leçon pour moi pour les prochaines fois... Merci
-
OK, merci,... Mais... La commande getdist fourni q'une distance, alors que ce qui m'interresserait c'est un point avec des coordonnées... c'est à dire qu'à la demande du second point, soit je click un point, (donc coordonnées immédiate), soit je donne une distance et ensuite je la traite en (list x y z) (ou je dit que ma distance est en Z par exemple) pour avoir mon second point en coordonnées... Donc mes difficultés sont : 1 - Faire accepté comme réponse à UNE question un réel OU des coordonnées... 2 - faire reconnaitre que ma variable est un réel (alors traitement), ou des coordonnées (alors rien du tout, je continu simplement...) En fait c'est comme la commande _line : après le premier point, pour le second je lui donne ou des coordonnées, ou un distance... En fait, pour être clair, ce que je cherche à faire c'est de tracer une ligne dans le sens des Z, sans retourner le SCU, en demandant 2 points ou une distance comme pour une ligne normale... j'ai fait ce qui suit, mais je voudrais avoir la possibilité, si je veux, de rentrer une distance à la place du second point... (defun c:lz (/ pt1 xpt1 ypt1 pt2 zpt2 pt2z) (princ "\n Ligne vers Z \n") (setq pt1 (getpoint "\n Spécifiez le premier point (départ ligne):")) (setq xpt1 (car pt1)) (setq ypt1 (cadr pt1)) (setq zpt1 (caddr pt1)) (setq pt2 (getpoint "\n Spécifiez le point suivant :")) (setq zpt2 (caddr pt2)) (While (= zpt2 zpt1)(alert "Erreur : Distance Z = 0") (setq pt2 (getpoint "\n Spécifiez le point suivant :")) (setq zpt2 (caddr pt2))) (progn (setq pt2z (list xpt1 ypt1 zpt2)) (command "_line" pt1 pt2z "") ) ) merci...
-
merci. mais donc je perd l'accés à ma question "choix" si je veux taper la commande au clavier... si je n'ai plus ou pas les 3 boutons, j'aurait voulu garder la possibilité de choisir dans les trois choix proposés... ou alors je n'ai rien compris à ta proposition (je débute en lisp) ...
-
variable FILEDIA sur 1 bonne soirée
-
Voilà le lisp (principe) : (defun c:CHOIX () (initget 1 "A B C") (setq Q1 (getkword "\n Choix (A/B/C) ?")) (if (= Q1 "A")(alert "CHOIX A")) (if (= Q1 "B")(alert "CHOIX B")) (if (= Q1 "C")(alert "CHOIX C")) ) Avec 3 Boutons macro : ^C^Cchoix;a; ^C^Cchoix;b; ^C^Cchoix;c; le bouton marche 1 fois, mais quand on le relance à la suite avec "entrée" il pause la question Choix (A/B/C)? merci
-
Bonjours, J'ai un lisp qui propose au lancement 3 choix (getkword "...A / B ou C :). J'ai créé 3 macros boutons qui réponde chacune à l'un des 3 choix. Lorsque je lance la commande par l'un des boutons macro ça fonctionne. Mais quand je relance la commande à la suite par un "entrée", il me relance le lisp du début, en me re-demandant le choix A, B ou C.... Y a t'il une astuce pour éviter ce genre de chose où dois-je séparé mon lisp en 3 (defun... )??? merci
-
Bonjour, je fait un premier (getpoint... puis je voudrais pouvoir proposer à l'utilisateur de rentrer un point OU une distance, et après le traiter à la suite du genre "(if c'est un point ...) " ou "(if c'est un réel ...)". Je pense que c'est avec initget et getdist, mais je n'arrive pas à cause des points 3D... (mais peut-être que je me trompe...) Merci d'avance.
-
je ne vais pas faire avancer le truc, mais ce ne peut pas être un texte caché partiellement comme proposé précedement, vu que l'exemple donné ne montre pas les lignes d'interruption alignés... ou alors c'est tellement tordu que ce serait une polyligne large ou un solide qui ferait des zig-zag assez impressionnants... trop compliqué je pense...
-
Un grand merci pour cette réponse trés rapide, gile. Après un rapide coup d'oeuil, j'aurais juste besoin d'unpetit éclairsisment : dans la commande ssget "_X : je trouve une explication pour ssget "X" ("Crée un jeu de sélection avec tous les objets dans la base de données") ... mais je ne touve pas d'explication pour le mode "_X"... merci encore.
-
Bonjour à Tous, Je cherche à décompter le +simplement possible le nombre de quelque bloc dans un dessin, et mettre ce nombre dans une variable pour la traiter, en évitant de passer par la création d'un tableau dans un fichier séparé ... Exemple : J'ai inseré des blocs "chaises" et "fauteuil", je m'aperçois qu'il me faut des coussins, je veux donc décompté le nombre de chaise et de fauteuil dans un plan, et ces deux quantité je voudrais qu'ils soient enregistrer dans une variable de mon lisp afin de compter le nombre de coussin qu'il faut pour les inserer... Le tip-top (mais là j'ai un doute sur la possibilité) serait qu'à partir du moment où j'ai "dit" qu'il fallait des coussins, à chaque fois que je ré-insere une chaise, il me rajoute un coussin... ... merci
-
Je suis désolé mais je ne peut pas t'en dire énormément, car toute la procédure de réalisation de plan 3D et les outils ont été fait pour mon entreprise, et donc lui appartient. Et c'est pas mal d'heures d'investissements... Par contre je peux t'affirmer que grâce à la souplesse de configuration des paramètres d'Autocad, on arrive à faire beaucoup de chose!!! tu as même un exemple dans les fichiers d''installe d'Autocad d'un gros bâtiment ("Hotel Model.dwg" dans répertoire "sample") Il suffit de touver le bon compromis entre le niveau de finition et les capacités du logiciel... et c'est le plus long à mettre au point... Le logiciel 3D que j'ai le plus approfondi est INVENTOR... ben je n'en ai pas pensé du bien à l'époque (version 9)... il n'a pas pû digérer les même choses que je faisais avec Autocad par rapport au niveau de finition qui me convenait ...
-
Autocad est trés bien pour ça, quoi que certains peuvent dire. Je travail dans le BTP, et j'ai essayé pas mal de logiciel 2D et surtout 3D. Tout les logiciels 3D proposés sont trés bien pour la C.A.O., mais si vous commencez à sortir du volume (en quantité j'entend), avec une multitude de différent objets, je n'ai vu aucun logiciel aussi performant qu'Autocad grâce à... son filaire 2D!!! Eh oui, le filaire 2D est complétement illisible au bout de peu d'objets, mais il suffit de trouver une bonne méthode, et de se créér de bon outil (vive le lisp, le VB, etc...) et tout est possible !!! Après ce n'est qu'une question de temps pour ce qui est du rendu ou du tirage (et un peu de puissance, mais pas tant que l'on croit...)
-
Tramber, tu dois avoir tout juste : ma nouvelle version ne fait plus appel à miroir3D, et elle fonctionne... Merci.
-
merci de vos réponses, mais je me suis un peu énervé, j'ai tout éffacé et recommencer + "proprement" à partir d'un feuille blanche... et maintenant ça marche... Mais pour info ce n'était pas avec la commande ALIGN, et mes commandes était une succesion de miroir3D, extrusion, union, et ceci plusieurs fois d'affilé... simple quoi... De plus mon lisp fonctionnait quand même 3 fois... mais erreur fatal au quatrième appel... Mais pour mon apprentissage personnel, le message d'erreur est quand même précis, et je ne comprend pas ce qu'il veut dire... si quelqu'un à une idée... Merci encore
-
Je n'ai pas la réponse, mais ce n'est pas dû à un problème materiel comme expliqué ci-dessus, ton message n'est pas clair : je pense comprendre que c'est PENDANT la rotation qu'il change de couleur, et non pas après ? En fait ceci arrive pour toute modification d'objet (texte, ligne,...) qui passe sur un objet plein (hachure solid, polyligne large) PENDANT la modification. Ceci permet de voir un objet si il est créé ou déplacé sur un objet (créér une ligne rouge sur une bleu, et la ligne en train d'être créer aura une couleur différente...) Je cherche...
-
Perso : "Pieroka" ????... le niçois Marseillais ???
-
Je sui en train de créér un petit lisp, et quand je le test, au bout du 4ème lancement consécutif, j'ai une erreur fatale : "La profondeur de l'imbrication des commandes ne doit pas dépasser 4" Je ne comprends pas ni la signification de cette erreur, et donc encore moins la manière d'y remédier... Merci d'avance pour l'explication.
-
Un grand merci.
-
Pour info, j'ai résolu mon souci de message d'enregistrement sous Excel. Réponse là : http://www.cadxp.com/sujetXForum-9442.htm Merci quand même.
-
Trouvé !!! A force de chercher on trouve toujour une solution avec le lisp, et par des chemins détourné... Donc pour mon souci de message d'enregistrement d'Excel, voilà ce que j'ai fait : Après l'ouverture, l'écriture, à la fermeture je demande d'enregistrer une copie du fichier quelque part comme expliqué dans la routine déjà cité : (xl-saveas xl_feuille "c:\\test-copie.xls") Et juste après avoir fermer le fichier, fermer Excel, (et vidé la mémoire), je demande en lisp d'éffacer la copie ci-dessus : (setq testC "c:\\test-copie.xls") (if (findfile testC) (vl-file-delete testC) ) ... voilà .... et c'est bien .... trés content de moi sur ce coup là (je sais, c'est simple mais je ne suis pas programmeur, et cela fait qu'une dixaine de jour que je me suis mis au lisp, alors soyez tolérant !!!) Merci en tout cas de votre aide.
-
Non, en effet, ce n'est pas cela... Je veux avoir en click droit QUE le fonction "Entrée" : ça je sais faire. (option.....) Par contre je veux pouvoir garder la possibilité d'inverser les flèches des côtations si je veux (avec un bouton, une commande, n'importe quoi, quoi !!!...) et je n'arrive pas à trouver une autre manière que de passer par le menu contextuel (donc de perdre le click droit paramétrer en commande "entrée" - AVANT ou APRES la selection (pour dire que je sais comment paramétrer le click droit pour choisir la manière dont il réagit...) En click droit je ne veux JAMAIS de menu contextuel (sauf avec Ctrl, mais c'est une autre histoire...).
