-
Compteur de contenus
9 404 -
Inscription
-
Dernière visite
-
Jours gagnés
149
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par didier
-
coucou Ah ben oui, mais c'est bien sûr, le pôv didier, il répond pour de la 3D. Qu'à celà ne tienne, il fournit aussi le moyen d'extraire le distance plane de deux extémités d'une ligne 3D dans ce qui suit les points p1 et p2 ont des Z, la distance, en revanche est à l'horizontale (defun DistH () (setq ent (car(entsel"\nChoix d'une ligne\n"))) (setq p1 (cdr(assoc 10(entget ent)))) (setq p2 (cdr(assoc 11(entget ent)))) (setq distH (sqrt (+ (* (- (car p1) (car p2))(- (car p1) (car p2))) (* (- (cadr p1) (cadr p2))(- (cadr p1) (cadr p2))) )) ) )c'est réparé amicalement
-
Bonsoir LeDoc, que souhaites tu faire ? déplacer le bloc dans le dessin ? en cliquant un point ? en affectant un déplacement uniforme à toutes les occurences de ce bloc ? en fonction de la valeur trouvée dans un attribut ? Tout est possible si on sait où on veut aller. Ne pouvant échanger que par du texte, la fonction transmission de pensée étant actuellement en dérangement, Soyons précis dans nos messages, c'est la base d'une communication efficace. amicalement
-
Bonsoir à Toutes et à Tous Dire que vous êtes exigeants est un doux euphémisme. Je ne vois pas en quoi il est dérangeant de changer d'onglet en cliquant dessus !!! Pour le renommer, bouton droit, bon d'accord, c'est comme çà. Positivons et chapeau à celui qui a pensé à les créer ces fameux onglets !!! Acceptons les différences entre les logiciels, au lieu de souhaiter une "mondialisation". On renacle par ailleurs sur Bill Gates, à propos de son monopole, alors ne lui déroulons pas le tapis rouge. C'est avis est personnel et n'engage que moi. amicalement :yltype:
-
bonsoir Gilles Ce qui suit va solutionner ton problème chaque ligne est expliquée, pour être utilisée ultérieurement (defun routinegilles () ;quel calque est concerné ? (setq CalqueTraite (getstring "\nNom du Calque à Traiter\n")) ;la variable "dec", est la précision du fichier actuel (setq dec (getvar "luprec")) ;initialisation de la longueur (setq longueur 0) ;création d'un jeu de sélection des polylignes(lw) sur le calque choisi (setq jeusel (ssget "X" (list (cons 0 "LWPOLYLINE") (cons 8 CalqueTraite)) ) ) ;initialisation du compteur d'entité (setq n 0) ;combien y a t'il d'entité dans le jeu de sélection (setq lonsel (sslength jeusel)) ; à faire autant de fois qu'il y a d'entité dans le jeu de sélection (repeat lonsel (setq ent (ssname jeusel n)) (command "aire" "ob" ent) (setq longueurtempo (getvar "perimeter")) (setq longueur (+ longueur longueurtempo)) (setq n (+ 1 n)) ) ;affichage d'un message annonçant le résultat (alert (strcat "Le cumul des longueurs des POLYLIGNES du Calque : " calquetraite "\nest de : " (rtos longueur 2 dec) ) ) (princ) ) ben voilà, yapluka lispement votre il n'y a pas de fioritures mais c'est efficace. :yltype:
-
Bonsoir Rimbo Honnêtement je n'ai rien compris à l'énoncé de ton problème. Pour créer le moindre algorythme, il faut être TRES explicatif. Décomposer pas à pas ce qu'il y a à faire. il semble, néanmoins, que tu as besoin de la longueur d'une entité "LIGNE". Donc tu vas utiliser la commande intégrée "DISTANCE" Hypothèse : dans ton lisp le nom de l'entité ligne est stocké dans la variable "ent". extraction du point de départ : (setq PD (cdr(assoc 10 (entget ent)))) extraction du point d'arrivée : (setq PA (cdr(assoc 11 (entget ent)))) la distance sera obtenue par : (setq LongueurEnt ( distance PD PA)). En espérant ne pas être Hors Sujet, amicalement :yltype:
-
Bonjour Labletech, Eeffectivement et c'est pourquoi je fait gaffe de bloquer la variable "DIMASSOC" à 1 les cotations resteront associatives, par "etirer" par exemple mais ne changeront pas à la variation de l'objet. c'est préférable et ça retire ton problème. Une nouvelle fois, il est prouvé, cher monsieur AutoDesk que LE MIEUX EST L'ENNEMI DU BIEN. bonne journée à tous
-
bonjour Draven Il est possible de faire ce que tu souhaites avec un filtre élaboré et la commande ssget, mais il va falloir jongler avec les "AND" et les "OR". si tu débutes en Lisp, tu va comprendre plus aisément ce que je t' ai écrit : (defun choixdraven () ;initialisation du compteur (setq compteur 0) ;création d'un jeu de sélection vide (setq jeusel (ssadd)) ;extraction de la première entité du fichier ;même si elle sdans un calque gelé (setq ent (entnext)) ;début d'une boucle : tant qu'il y a des entités (while ent ;premier test : ;si l'entité est dans le calque "axes" ;et que c'est une ligne ;et qu'elle est type de ligne "DUCALQUE" ;je l'ajoute au jeu de sélection ;on avance non ? (if (and (= "axes" (cdr (assoc 8 (entget ent)))) (= "LINE" (cdr (assoc 0 (entget ent)))) (= nil (cdr (assoc 6 (entget ent)))) ) ;_ Fin de and (ssadd ent jeusel) ) ;_ Fin de if ;deuxième test : ;et que c'est une ligne ;et qu'elle est type de ligne "AXES" ;je l'ajoute au jeu de sélection ;j'ai bien compris ? (if (and (= "LINE" (cdr (assoc 0 (entget ent)))) (= "AXES" (cdr (assoc 6 (entget ent)))) ) ;_ Fin de and (ssadd ent jeusel) ) ;_ Fin de if ; choix de l'entité suivante et ainsi de suite ;jusqu'à plus soif (setq ent (entnext ent)) ; à chaque passage d'entité le compteur s'incrémente de 1 (setq compteur (+ 1 compteur)) ) ;_ Fin de while ; affichage d'un message qui te dira combien d'entités correspondent à tes choix (alert (strcat (rtos (sslength jeusel) 2 0) " Entités sélectionnées sur un total de : " (rtos compteur 2 0) ) ;_ Fin de strcat ) ;_ Fin de alert ) ;_ Fin de defun ben voilà une soultion, comme à bien des problèmes la solution n'est pas unique, mais en avoir au moins une est utile amicalement
-
re bonsoir Complément de réponse à Rimbo pour voir la consommation d'ACAD tape Ctrl+Alt+Sup, va dans le gestionnaire des taches puis sur l'onglet PROCESSUS tu verras en temps réel la consommation de chaque application ouverte, et tu constateras qu'AutoCad n'est pas si gourmand que tu penses. bonne continuation ...
-
bonjour j'ai testé et ça fonctionne bien, inutile mais ça tourne. le problème est étranger à AutoCad semble t'il. par ailleurs, l'ami Rimbo semble confondre l'espace utilisé sur le disque par le logiciel et ses fichiers et la consommation de RAM, heureusement car j'en connaît qui tournent avec les 64Mo d'origine. amicalement :yltype:
-
salut respectueux au DOC la touche F1, nous informe de ce qu'il faut faire dans ton cas. mais bon, tout le monde n'a pas accès à ce service, donc on explique : ligne de commande : MSTYLE la case de dialogue te proposera de créer un type de MLIGNE que tu nommera comme tu voudras, après l'avoir sauvegardé, ligne de commande : mligne tu choisis l'option Style (grand S) et tu as accès au nom que tu viens de créer. voilà :D ciao
-
coucou Matias ! çà te tracasse, hein, je t'ai filé une routine protégée car lorsque j'en fait (gracieusement) chez les clients, je protège de cette façon. Il me rappellent si besoin est et là on retire le "gratieusement", s'ils ne rappellent pas c'est qu'ils ne sont plus utilisateurs. pour te répondre, en Lisp, comme dans tout autre langage, on a accès à la date du système, c'est facile de comparer la date du jour et la date sauvegardée dans la routine et donc d'autoriser le fonctionnement tant que cette date n'est pas atteinte. en lisp c'est la variable "date" qui contient les infos, il faut un peu bidouiller ce qu'elle nous répond mais c'est facile, regarde ce qui suit fais en ce que tu veux : (defun DatePourMatias () (setq aujour (strcat (substr (rtos (getvar "cdate") 2 0) 7 2) "/" (substr (rtos (getvar "cdate") 2 0) 5 2) "/" (substr (rtos (getvar "cdate") 2 0) 1 4) ) ) (setq aa (rtos (getvar "cdate") 2 8)) (setq jour (substr (rtos (getvar "cdate") 2 0) 7 2)) (setq mois (substr (rtos (getvar "cdate") 2 0) 5 2)) (setq annee (substr (rtos (getvar "cdate") 2 0) 1 4)) (setq heure (atoi (substr (rtos (getvar "cdate") 2 8) 10 2))) (setq minute (atoi (substr (rtos (getvar "cdate") 2 8) 12 2))) (setq seconde (atoi (substr (rtos (getvar "cdate") 2 8) 14 2))) (alert (strcat " Aujourdui, nous sommes le : " aujour)) (alert (strcat " il est : " (rtos heure 2 0) ":" (rtos minute 2 0) ":" (rtos seconde 2 0) ) ) ) te voilà à l'heure (spécialié suisse n'est t'il pas ?) au fait tout fonctionne normalement ? amicalement didier :yltype:
-
Bonjour à Toutes et à Tous. Il semble que beaucoup de personnes soient intéressées par le VBA, dans AutoCad ... Ce soir je donne un exemple de ce qu'on peut réaliser, ce n'est pas vraiment utile ni productif, c'est juste un exercice de style. Le fichier que je propose au téléchargement contient déjà le code des "Subs". C'est ce qui permet de ne pas avoir à lancer une macro, avec les habituelles erreurs de chemin. Il est possible qu'à l'ouverture du fichier, le message sur la sécurité des macros apparaîsse, vous pouvez activer les macros en me faisant confiance, je n'ai rien écrit de vicieux, mais c'est possible, méfiez vous de l'origine des macros. C'est un autre sujet, qui peut être developpé le cas échéant. A l'écran va apparaître un dessin ne contenant qu'un ARC, tapez "ALT + F8", la liste des macros disponibles apparaît, choisissez la première et cliquez sur le bouton "EXECUTER". c'est parti. Mais revenons à mon fichier, il s'agit via des "Userforms" d'obtenir tous les renseignements possibles sur une entité "ARC". Au début, je vous conseille d'utiliser tous les boutons et autres cases de dialogue, tous les renseignements se recalculent "à la volée" lorsque vous changez les options, vous pouvez volontairement entrer des données erronées dans les cases de la feuille "Calculs", j'ai mis un peu d'humour dans les messages d'erreur, ça manque souvent au milieu informatique... ensuite vous pourrez aller lire le code en tapant "Alt+F11" ou ligne de commande : VBAIDE. Vous avez maintenant accès au code proprement dit, à vous de décortiquer. A votre disposition pour discuter des méthodes employées et peut être une explication des formules. Il doit être présent à votre esprit que : JE NE SUIS PAS UN PROFESSEUR, et donc mes méthodes fonctionnent mais ce n'est pas un expert qui a écrit ces lignes, donc je supporte les critiques, si elles sont constructives. Si quelque chose ne fonctionne pas, c'est là que çà m'intéresse, car étant isolé, je n'ai pas moyen de tout débugger, par contre si ça fonctionne un clin d'oeil à l'auteur fait toujours plaisir. Je souhaite que ce fichier serve d'exemple, mais vous pouvez utiliser les formules, je n'en suis pas propriétaire, bien amicalement :D Cliquez sur le lien qui suit pour télécharger le fichier Téléchargez le fichier
-
Bonjour je te prie d'excuser le délai de réponse mais je n'avais pas vu ton message ... Proposition : Sub TestInsert Dim BlocObj As AcadBlockReference Dim Pins (0 to 2) as Double Pins(0) = 10 Pins(1) = 10 Pins(2) = 0 Set BlocObj = ThisDrawing.ModelSpace.InsertBlock(Pins, "NomDuBloc", 1#, 1#, 1#, 0) BlocObj.update end sub Dans ce cas de figure, il faut que la définition du bloc : NomDuBloc soit existante dans le dessin courant. il y a d'autres solutions, mais teste déjà çà et reviens le cas échéant amicalement :yltype:
-
Bonsoir En réponse à CHRCHAT ;selection à l'écran du point de départ (setq pd (getpoint"\nIndiquez le Point de Départ ...\n")) ;Saisie de la longueur de la ligne souhaitée (setq lon(getreal"\nLongueur de la ligne\n")) ;Saisie de l'angle (gisement) de la ligne souhaitée (setq dir (getreal "\nEntrez angle en degrés( depuis l'axe des Y ):")) ;transformation de l'angle saisi en radians (setq dirrad (* pi (/ dir 180.0))) ;calcul du point d'arrivée (setq pa (polar pd dirrad lon)) ;lancement de la commande ligne ;j'utilise "_line" pour une parfaite compatibilité (command "_line" pd pa "") maintenant je vous propose de dessiner une ligne longueur variable angle variable mais en référence à une ligne existante à vos claviers les amis pour de nouvelles aventures amicalement
-
bonjour ça c'est de l'évolution, ou je m'y connais pas. c'est super chouette de faire évoluer le site. j'ai le vertige quand j'imagine le boulot que ça représente. bravo à toi bon courage.
-
L\'Encyclopédie/glossaire CADxp, c\'est nouveau!
didier a répondu à un sujet dans CADxp, comment ça marche?
coucou ben, c'est que je pensais, mais la liste est vide y'a marqué le Bâtiment/Architecture ne contient rien. Est ce ma machine ? Est ce une mauvaise manip ? Est ce un oubli Patriquien ? en tous cas je ne visionne rien en espérant avoir une réponse pour participer . amicalement -
bonjour La police "ARIAL" ainsi que beaucoup de polices windows supporte ce caractère il faut utiliser la touche "petit 2" située en haut à gauche du clavier, je devance ta future question : comment écrire m³ et bien, c'est en tapant la combinaison "alt252" aprrès le "m" que tu obtiendras ce texte. étonnant non ! :D amicalement
-
L\'Encyclopédie/glossaire CADxp, c\'est nouveau!
didier a répondu à un sujet dans CADxp, comment ça marche?
coucou Où est cette scongneugneu d'encyclopédie ??? décidément, je suis particulièrement mauvais pour la navigation sur le site !!!! merci de me prendre la main dans le dos pour me diriger ciao :casstet: -
L\'Encyclopédie/glossaire CADxp, c\'est nouveau!
didier a répondu à un sujet dans CADxp, comment ça marche?
bon dimanche à Toi ô grand gourou du site je me place sur le rang des volontaires à ta disposition si mes connaissances peuvent faire avancer le schmilblick. au fait , on se voit quand gourou ( et que ça saute) sourire -
bonjour en complément de la réponse de Tramber (defun c: toto () ;lignes de codes ) pour lancer toto > ligne de commande : toto (defun toto () ;lignes de codes ) pour lancer toto > ligne de commande : (toto) s'il n'y a pas de defun ligne de commande : (load"toto") en espérant avoir été explicatif amicalement :yltype:
-
coucou ça y est, j'ai trouvé ton pdf, par hasard mais j'ai trouvé J'apporte une remarque au sujet de la conversion des angles la vie est largement assez compliquée pour se la torturer à plaisir, à savoir pour transformer des angles de systèmes d'unité, il n'est point nécessaire d'utiliser les valeurs naturelles que sont les sinus, par exemple AngleEnDegré = (AngleEnRadian / 180) * pi AngleEnGrades = (AngleEnRadian / 200) * pi il faut savoir aussi que notre cher AutoCad en bon américain, n'a pas le même référentiel angulaire que nous, et il est très souvent nécessaire de convertir les valeurs angulaires qu'il nous annonce. à ce sujet je termine un tutorial VBA qui contient toutes les fonctions angulaires possibles. (car en plus, elles dépendent du SCU) amicalement PS: tu n'es pas le seul concerné par ce ps, mais soyez rigoureux avec l'auretograffe, une faute d'orthogtaphe peur changer le sens de la phrase... :casstet:
-
bonjour ne pense pas que c'est "trop facile" souvent, comme en maths, plus l'énoncé est simple, plus l'exercice est compliqué. le plus compliqué n'est jamais de "faire tourner" un programme, c'est de le faire fonctionner QUOIQU' il arrive, il faut tenir compte que l'utilisateur va peut être renseigner une case de dialogue avec du caractère où tu as prévu un réel, ou bien il n'est pas dans le bon système angulaire etc etc... c'est d'ailleurs si simple que je n'ai pas trouvé où le télécharger ... c'est pour te dire que j'ai deux mains gauches et en plus je n'ai que des pouces (hihihi) à très bientôt :yltype:
-
bonsoir Tramber, Oui je pense à la précision, car "angtof" par exemple convertit une CHAINE donc elle est déjà formatée, il est préférable de travailler avec des réels. déjà que le processeur n'est pas infaillible au niveau des calculs, ne lui donnons pas le moyen de nous pourrir la vie. si tu te trompes sur une valeur angulaire et que tu prolonges tu vas au casse pipe. je sais de quoi je parle, je bosse, entre autres, sur le viaduc de Milllau, et on prolonge des droites avec une référence si petite que mon sang de géomètre passe du chauf au froid sans arrêts. (du chaud effroi, sang arrêt) à très bientôt, car le débat est semble t'il actif. didier :yltype:
-
bonsoir TRAMBER je n'ai que peu de confiance dans ces commandes intégrées car si c'est mal formaté tu l'as dans l'os ... c'est arrivé et le contrôle est délicat il vaut mieux, à mon avis, utiliser les formules de conversion qui, elles, sont indiscutables. au moindre souci je les communique,si besoin, bien sûr. amicalement :yltype:
-
Bonjour De quel Exo parles tu ? ???? bon week end
