-
Compteur de contenus
1 113 -
Inscription
-
Dernière visite
-
Jours gagnés
42
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Luna
-
[Résolu] CADxp : SEC_ERROR_EXPIRED_CERTIFICATE
Luna a répondu à un(e) sujet de Luna dans CADxp, comment ça marche?
Vui je suis sur Firefox également et j'avoue que le message était un peu violent ^^" Mais en effet le soucis est corrigé, donc tout va bien ! 🙂 Merci aux ADMIN ! Sujet clos 😜 Bisous, Luna -
[Résolu] CADxp : SEC_ERROR_EXPIRED_CERTIFICATE
Luna a répondu à un(e) sujet de Luna dans CADxp, comment ça marche?
Vui c'est ce que j'ai cru comprendre en effet 🙂 Bisous, Luna -
Coucou, En voulant me connecter hier soir sur CADxp.com, j'ai eut l'erreur suivante : SEC_ERROR_EXPIRED_CERTIFICATE Je préfère faire remonter l'info aux Admins si jamais, je ne sais pas si je suis la seule dans ce cas-là ou non.. PS: ci-dessous le détail concernant l'erreur.. https://cadxp.com/discover/unread/ Le certificat du pair a expiré. HTTP Strict Transport Security : false HTTP Public Key Pinning : false Chaîne de certificat : -----BEGIN CERTIFICATE----- MIIFJzCCBA+gAwIBAgISBAzUL3IE77UVAMpw8ZZ6cFjkMA0GCSqGSIb3DQEBCwUA MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD EwJSMzAeFw0yMjA1MjMxMzAyNDhaFw0yMjA4MjExMzAyNDdaMBQxEjAQBgNVBAMT CWNhZHhwLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKnzLsNQ nGj5ida5MZDv09rlc7jghKAyB7lgnZ8bkkQ+oRgatytUj+z55gCPUNA+Agoatta/ hooBmcASXznUUF/s1oDc+QJq8zEaA7vNUzOXL0QEKM8VS2jwpniwQtCh+nDQl2AA 1v8m0dJKmUxSeGTjCCwVPXQX+dU7yievt2nllRs+0YjULLT8fB3j/uretmg6+I4k dgSnbaFyyf2nA44oJ8Omxkixh0gjw6tLayDhGwcSwpW78OWkEYe8a/alWytM1xp4 6Ez8Qt3o3+sAjTJ33MdbOoJovyhq+P3IAQ/gwtMHpS/BXFglqmauV4W0Bw3D+NQT CPbem/EvU1vi4a8CAwEAAaOCAlMwggJPMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUE FjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU 5N8XGc8Fy3bmUAJvGFLRg6Rb9nowHwYDVR0jBBgwFoAUFC6zF7dYVsuuUAlA5h+v nYsUwsYwVQYIKwYBBQUHAQEESTBHMCEGCCsGAQUFBzABhhVodHRwOi8vcjMuby5s ZW5jci5vcmcwIgYIKwYBBQUHMAKGFmh0dHA6Ly9yMy5pLmxlbmNyLm9yZy8wIwYD VR0RBBwwGoIJY2FkeHAuY29tgg13d3cuY2FkeHAuY29tMEwGA1UdIARFMEMwCAYG Z4EMAQIBMDcGCysGAQQBgt8TAQEBMCgwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMu bGV0c2VuY3J5cHQub3JnMIIBBAYKKwYBBAHWeQIEAgSB9QSB8gDwAHYAKXm+8J45 OSHwVnOfY6V35b5XfZxgCvj5TV0mXCVdx4QAAAGA8TpBdQAABAMARzBFAiEAsrwx WvPQRQb2/lG0hD3pzQyBXtRSUFgY5trzYC8cxuUCIACYPoPi2uGZHqPTqrefkRop viu/nCAQSwKMQY/w+M3KAHYAb1N2rDHwMRnYmQCkURX/dxUcEdkCwQApBo2yCJo3 2RMAAAGA8TpC2QAABAMARzBFAiEA9ZNjdK4QPYVbX/KOx67i6ahrBHWETLuhrBXR 8YEjkyoCIHK+ypziDS4gXEHKl2DrPPXh8vwCxxJq+o3OsBRkkKqhMA0GCSqGSIb3 DQEBCwUAA4IBAQCorQUGsVsDMYYMcqDnQ1FAmqPcL22NpKVOs9y2LkRWxnDmCKVo ewTpMUenJVpAKTMdo9fYC+KMAkkzXR7CO7ZNSCpCX2evQEEQassXVm5JsGnZS29W Te4fQ1McOzyzMDpDfsuLji8B5YArt2uGXQt6s8Q/3PixeWaKp5VQaU6xigPh/1T3 rU0cIPp8nEDnQ5qFJmDXJxeOkcohsRZVe2W+5zb8AeHW6kz9NEUieEDL7HvhRSzI Cd1nHGGnzTrnMRtz7UBKjAqETxtTJi2XKasp+gmMkkqaOecOtqo0NqKJnmVuFwdK NFp4ywaZUeLdNRC1CW4fgw9rfHEeXhMoAy5O -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG /kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4 avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2 yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+ HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX nLRbwHOoq7hHwg== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/ MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT DkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB AQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XC ov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpL wYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+D LtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK 4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5 bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5y sR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZ Xmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4 FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc SLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2ql PRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TND TwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw SwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1 c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx +tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEB ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu b3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E U1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu MA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC 5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW 9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuG WCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O he8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC Dfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5 -----END CERTIFICATE----- Bisous, Luna
-
Sélectionner tout les objets d'un calques
Luna a répondu à un(e) sujet de doud69 dans Tutoriaux AutoCAD
@doud69, Petite question: As-tu un AutoCAD ou bien un AutoCAD LT ?! Si c'est bien un AutoCAD, la ligne de code proposée par @lecrabe et @didier fonctionne sans soucis... Si c'est AutoCAD LT, alors oublie la programmation LISP car ce n'est pas supporté par les versions LT. Avant même de partir sur une ligne de code, peux-tu nous dire si les propositions vanilla ci-dessous te conviennent et si non, pourquoi exactement ? 1. ] Commande SUPCALQUE 2. ] Commande FUSCALQUE 3. ] Commande SELECTRAP PS: Je n'ai toujours pas compris si cette demande est ponctuelle ou si tu as besoin de faire cette démarche régulièrement ? Car si tu as besoin de faire la démarche régulièrement, c'est bien par de la programmation (LISP, Script, VBA, ...) qu'il faudrait se tourner et auquel cas, il faudrait un peu plus de renseignements... Bisous, Luna -
Comme j'ai dit, il faut que (getkword) soit associé à (initget) ^^" Donc c'est plus quelque chose comme chat (avec quelques modifications en plus évidemment pour prendre en compte les différences entre (getstring) et (getkword)) : (defun c:FOOo (/ str att lst suf break) (setq str "Coude_DN") ; (setq str (getstring T "\nRenseigner le préfixe : ")) (setq att (getvar "ATTDIA")) (setvar "ATTDIA" 0) (setq lst "15 20 25 32 40 50 65 80 100 125 150 200 250 300 350 400 450 500") (while (and (not break) (null (initget lst)) (or (setq suf (getkword (strcat "\nType de conduite DN [" (vl-string-translate " " "/" lst) "/Quitter] <100> : " str))) (setq suf "100") ) ) (if (= "Quitter" suf) (setq break T) (progn (command "_-INSERT" (strcat str suf) pause 1 1 pause) (while (= 1 (getvar "CMDACTIVE")) (command "")) ) ) ) (setvar "ATTDIA" att) (princ) ) PS: Je ne l'ai pas testé cependant donc à voir... Bisous, Luna
-
Il faut dans ce cas-là, regarder du côté de (getkword) avec un (initget) associé, à la place du (getstring). Bisous, Luna
-
Coucou, Le problème vient essentiellement des attributs 😉 Mais là comme chat, je dirais quelques chose dans le genre ? (defun c:FOO (/ att str suf) (setq str "Coude_DN") ; (setq str (getstring T "\nRenseigner le préfixe : ")) (setq att (getvar "ATTDIA")) (setvar "ATTDIA" 0) (while (/= "" (setq suf (getstring (strcat "\nNom du bloc : " str)))) (command "_-INSERT" (strcat str suf) pause 1 1 pause) (while (= 1 (getvar "CMDACTIVE")) (command "")) ) (setvar "ATTDIA" att) (princ) ) S'il y a des attributs, les valeurs par défaut seront renseignées, sinon bah implante le bloc en toute simplicité ^^" J'ai laissé en commentaire la version où tu saisies aussi le préfixe pour tes blocs avant la boucle (si jamais tu as autre chose que "Coude_DN") Tu peux changer le nom de la commande évidemment (en conservant le "C:" !) Bisous, Luna
-
Sélectionner tout les objets d'un calques
Luna a répondu à un(e) sujet de doud69 dans Tutoriaux AutoCAD
Coucou, En complément concernant la migration des objets sur un autre calque (puis suppression du précédent calque), je passerai plutôt par la commande FUSCALQUE (ou bien clic droit sur le calque à supprimer depuis le gestionnaire des calques, et choisir l'option "Fusionner le ou les calques sélectionnés en..."). Cela permet de transférer tous les objets (même ceux présents dans une définition de bloc) d'un (ou plusieurs) calque(s) vers un autre, supprimant ainsi les précédents calques. Autrement, comme l'a suggéré @didier, la commande SUPCALQUE semble convenir à ton besoin mais c'est un outils à utiliser avec beaucoup de précautions !! Je te conseille avant de commencer de sauvegarder ton dessin, puis lancer la commande ANNULER et choisir l'option Marque (cela permet d'annuler toutes opérations comprises entre deux marques ! Très pratique pour faire des bêtises et faire machine arrière sans devoir fermer sans enregistrer le dessin 😉) Bisous, Luna -
Coucou, La théorie de @lecrabe est correcte 😜 ! Comme j'ai dit, je n'ai fait que suivre les infos que tu m'as données, à savoir 1 chiffre après la virgule et non 2 (d'après ta capture d'écran du texte souhaité)... Pour la hauteur de texte, j'ai préféré poser la question, mais en mettant TEXTSIZE (variable système) comme valeur par défaut. Donc si tu veux que ton texte fasse 100mm de haut (et que tu bosses en mm), il te suffit de modifier toi-même la valeur de TEXTSIZE à 100 et tu l'auras comme valeur par défaut ! Je ne voulais tout simplement pas modifier la valeur de TEXTSIZE via le programme car cela correspond à ta méthode de travail donc je préfère éviter de la changer pour toi 😉 Bisous, Luna
-
Coucou @Max73, Essaye de voir si cela te convient ou pas (j'ai essayé de faire au mieux selon la demande, sans surplus ^^") : ;--- Author : Luna ;--- Date : 14/08/2022 ;--- Version : 1.0.0 ; Création d'un objet MText détaillant la longueur totale d'une polyligne 3D (champ dynamique), du nombre total de sommets (sauf extrémités) ainsi que ; la différence d'altitude (Z) entre les deux extrémités ignorées (Zdébut - Zfin). Le MText est rattaché à la polyligne 3D via (grread) pour suivre la ; courbe. La rotation du texte est alignée à l'axe X du SCU courant et les valeurs spécifiées dans le MText sont exprimées en mètres, quelque soit la ; valeur de "INSUNITS". Le MText est inséré sur le calque de la polyligne 3D (mais les propriétés de couleurs, transparence, etc... correspondent aux ; valeurs courantes pour les nouveaux objets). (defun c:Poly3D_Max73 (/ get-poly-info cvunits set-MTEXT move-MTEXT name info layer htxt str text) (defun get-poly-info (ent / ob vs ve ps pe ID fa lg pt Dz) (if (and (setq ob (vlax-ename->vla-object ent)) (setq vs (vlax-curve-getStartPoint ent)) (setq ve (vlax-curve-getEndPoint ent)) (setq ps (vlax-curve-getStartParam ent)) (setq pe (vlax-curve-getEndParam ent)) (setq ID (vla-get-ObjectID ob)) (setq fa (getvar "INSUNITS")) (setq lg (strcat "%<\\AcObjProp.16.2 Object(%<\\_ObjId " (itoa ID) ">%).Length \\f \"%lu2%pr1%ct8[" (rtos (cvunits 1 fa 6)) "]%th32\">%")) (setq pt (1+ (fix pe))) (setq Dz (- (last ve) (last vs))) ) (list lg pt (cvunits Dz fa 6)) ) ) (defun cvunits (value from-unit to-unit / f) (defun f (u) (if (= (type u) 'INT) (cond ((= u 1) "inch") ((= u 2) "foot") ((= u 3) "mile") ((= u 4) "millimeter") ((= u 5) "centimeter") ((= u 6) "meter") ((= u 7) "kilometer") ((= u 8) "microinch") ((= u 9) "millipouce") ((= u 10) "yard") ((= u 11) "Angstrom") ((= u 12) "nanometer") ((= u 13) "micron") ((= u 14) "decimeter") ((= u 15) "dekameter") ((= u 16) "hectometer") ((= u 17) "gigameter") ((= u 18) "astronomical_unit") ((= u 19) "light_year") ((= u 20) "parsec") ((= u 21) "survey_foot") ) u ) ) (cvunit value (f from-unit) (f to-unit)) ) (defun set-MTEXT (pt wd str ht rt ly / ms ob) (and (setq ms (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object)))) (setq pt (vlax-3D-point pt)) (setq ob (vla-AddMText ms pt wd str)) (null (vlax-put ob 'Height ht)) (null (vlax-put ob 'Rotation rt)) (null (vlax-put ob 'Layer ly)) ) ob ) (defun move-MTEXT (msg curve mtext / gr pt) (princ msg) (while (and (setq gr (grread T)) (= 5 (car gr))) (setq pt (trans (cadr gr) 1 0)) (setq pt (vlax-curve-getClosestPointTo curve pt)) (vla-move mtext (vla-get-InsertionPoint mtext) (vlax-3D-point pt)) ) mtext ) (and (setq name (entsel "\nSélectionner une polyligne 3D : ")) (setq name (car name)) (= "POLYLINE" (cdr (assoc 0 (entget name)))) (setq info (get-poly-info name)) (setq layer (cdr (assoc 8 (entget name)))) (null (initget 6)) (or (setq htxt (getreal (strcat "\nSpécifier la hauteur de texte <" (rtos (getvar "TEXTSIZE")) ">: "))) (setq htxt (getvar "TEXTSIZE")) ) (setq str (strcat "Lg = " (car info) "m" "\n" "So = " (itoa (- (cadr info) 2)) "u" "\n" "Al = " (rtos (caddr info) 2 1) "m" ) ) (setq text (set-MTEXT '(0.0 0.0 0.0) (* htxt 10) str htxt 0.0 layer)) (move-MTEXT "\nSélectionner un point d'insertion : " name text) ) (princ) ) Normalement cela devrait suivre les infos que tu m'as donné 😉 Sur ce, bonne nuit ! Bisous, Luna
-
@Max73, Sommes-nous bien d'accord que l'on parle bien tout deux du même programme GILE_INCR >>ici<< ?! Si c'est bien le cas, alors il suffit d'utiliser l'onglet "Sélection" > "Bloc" puis choisir le bloc + étiquette à incrémenter et faire remplacer. Le programme va du coup remplacer la valeur d'un attribut d'une référence de bloc existante et non insérer une nouvelle référence de bloc. Si tu n'as pas de références de bloc existantes, il suffit alors de faire un premier lancement en version insertion incrémentée de ton bloc sur l'attribut A, puis relancer la commande en version remplacement incrémenté de ton bloc sur l'attribut B. PS: Je suis assez d'accord avec @didier...C'est déjà une chance inouïe de pouvoir obtenir des programmes complexes développés gratuitement par des personnes qui donnent de leur temps, simplement en allant sur un forum et en posant des quelques questions. Je serais curieuse de savoir combien de programmes "FreeToUse" sont disponibles sur Internet réellement ! Il faut imaginer ce que chat serait si la programmation n'existait pas sur AutoCAD...il faudrait tout bonnement "faire avec", avant de demander à AutoCAD une mise à jour des outils ! Bref, des exemples de programmes d'incrémentation d'attributs il y en a foison ! Et je suis sûre que dans le tas, il y en a très certainement un capable de gérer partiellement ou totalement ta demande. Donc avant de demander une modification sur un LISP en particulier, la première question aurait été : existe-il un LISP permettant d'incrémenter un bloc existant en remplaçant la valeur ? Si oui, en existe-il un capable d'incrémenter 2 attributs en même temps indépendamment l'un de l'autre (sinon j'utilise le précédent 2 fois) ? Bisous, Luna
-
Coucou, Pourquoi, si tout est différent, ne pas lancer la commande deux fois ? -_- Bisous, Luna
-
Oki c'est plus clair pour moi ^^" Du coup pour les champs dynamiques, seule la longueur sera mise à jour en cas de modification. Je n'ai pas vraiment le temps de regarder chat tout de suite, mais je verrai chat ce WE 😉 Bisous, Luna
-
Coucou, La différence d'altimétrie entre quelques extrémités ? Celles que l'on ignore ou bien celles que l'on conserve ? Pour la longueur, même question : faut-il la longueur totale (en comptant les extrémités que l'on ignore) ou bien la longueur corrigée (sans prendre en compte les extrémités que l'on ignore) Donc le résultat attendu c'est un MTEXT présenté comme suit ? Où faut-il placer le MTEXT ? L'utilisateur le place manuellement ou bien il doit se placer à un endroit en particulier par rapport à la polyligne ? Faut-il que les informations soient sous forme de champ dynamique (tout va dépendre des réponses par rapport aux premières question) ? Bisous, Luna
-
[Résolu] (tblsearch "layer", mais en majuscule...
Luna a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Coucou, J'avais fait chat à une époque ; +-----------------------------------------------------------------------------------------------------------------------------------------------+ ; ; | | ; ; | HISTORICAL TRACKING FILE OF THE FUNCTION | ; ; | --{ flt_tbl }-- | ; ; | | ; ; +-----------------------------------------------------------------------------------------------------------------------------------------------+ ; ; []-----------------------[] flt_tbl []-----------------------[] ; ;--- Date of creation > 16/04/2019 ; ;--- Last modification date > 20/06/2022 ; ;--- Author > Luna ; ;--- Version > 4.0.0 ; ;--- Class > "DtSyt" ; ;--- Goal and utility of the main function ; ; Creation of a list of values from a Symbol Table ("APPID", "BLOCK", "DIMSTYLE", "LAYER", "LTYPE", "STYLE", "UCS", "VIEW" ou "VPORT") with ; ; application of a search filter based on the function (wcmatch). The main goal is to get a list of values from one of the 9 Symbol Table. ; ; ; ;--- Declaration of the arguments ; ; The function (flt_tbl) have 3 argument(s) : ; ; --• tag > corresponds to the name of the Symbol Table in which the search have to be done ; ; (type tag) = 'STR | Ex. : "APPID", "BLOCK", "DIMSTYLE", "LAYER", "LTYPE", "STYLE", "UCS", "VIEW", "VPORT" ; ; --• search > is a string used as a filter for values that you want to keep in the list (cf. wcmatch) ; ; (type search) = 'STR | Ex. : "UBS*", "Cartouche*", "*1##-*", ... ; ; --• flag > determines if the search is case-sensitive or not ; ; (type flag) = 'SYM | Ex. : T for case-sensitive, nil if not ; ; ; ;--- List of dependent's functions ; ; --• "XxXxx" ---> ... | v#.#.# - ##/##/#### (Luna) ; ; ; ;--- List of local functions ; ; --• "XxXxx" ---> ... | v#.#.# - ##/##/#### (Luna) ; ; ; ;--- Return ; ; The function (flt_tbl) returns a list containing all the entries in the Symbol Table which match to the 'search' pattern (case sensitive). ; ; Ex. : (flt_tbl "LAYER" "Layer*" nil) returns ("Layer1" "LAYER2" "Layer3" "Layers") ; ; (flt_tbl "LAYER" "Layer#" T) returns ("Layer1" "Layer3") ; ; ; ;--- Historic list of the version with their modification status ; ; +------------+----------------------------------------------------------------------------------------------------------------------------------+ ; ; | v4.0.0 | Add 'flag' argument to specify if the search is case-sensitive or not | ; ; +------------+----------------------------------------------------------------------------------------------------------------------------------+ ; ; | v3.0.2 | Changing the name of variables | ; ; +------------+----------------------------------------------------------------------------------------------------------------------------------+ ; ; | v3.0.1 | Add local variable declaration for all variables | ; ; +------------+----------------------------------------------------------------------------------------------------------------------------------+ ; ; | v3.0.0 | Removal of the 'get' argument, removal of the creation of a pointed list, possibility of using the function on all Symbol | ; ; | | Tables, generalisation of the use of the function to no longer be limited to filters (ssget) | ; ; +------------+----------------------------------------------------------------------------------------------------------------------------------+ ; ; | v2.0.1 | Adding the declaration of local variables (paritally) | ; ; +------------+----------------------------------------------------------------------------------------------------------------------------------+ ; ; | v2.0.0 | Added Symbol Table "LTYPE", added 'get' argument, possibility to change the output format depending on the use of the | ; ; | | function (flt_tbl) for a less specific use | ; ; +------------+----------------------------------------------------------------------------------------------------------------------------------+ ; ; | v1.0.0 | Creation of the function | ; ; +------------+----------------------------------------------------------------------------------------------------------------------------------+ ; ; ; (defun flt_tbl (tag search flag / lst value) (setq value (cdr (assoc 2 (tblnext tag T)))) (while (null value) (if (wcmatch (if flag value (strcase value)) (if flag search (strcase search)) ) (setq lst (cons value lst)) ) (setq value (cdr (assoc 2 (tblnext tag)))) ) lst ) Car comme le souligne @(gile), la fonction (tblsearch) ne permet pas l'utilisation des Wildcard Characters, donc cela sous-entend que l'on connaît d'avance le nom du calque (ce qui est rarement le cas). Donc pour cela je te suggère plutôt de passer par (tblnext) et (wcmatch) (ou tout autre fonction de recherche autorisant les caractères spéciaux). Soit tu insères le (wcmatch) dans la condition du (while) pour t'arrêter dès la première occurrence, soit tu laisses la boucle ainsi pour lister toutes les occurrences correspondant à ta recherche. Faire tout de même attention avec les calques issus d'XREF ! En espérant que cela puisse t'aider :3 Bisous, Luna -
Décalé à gauche et droite en 1 seul clic
Luna a répondu à un(e) sujet de willy95 dans Débuter en LISP
Exactement 😉 C'est enregistré dans le registre Windows, et non AutoCAD, donc c'est très pratique dans certains scénario où tu as besoin de conserver la valeur par défaut une bonne fois pour toute ^^ Bisous, Luna -
Coucou, A quoi correspond la "Différence en Z pour une polyligne 3D" ? Quel est le résultat attendu ? Bisous, Luna
-
Décalé à gauche et droite en 1 seul clic
Luna a répondu à un(e) sujet de willy95 dans Débuter en LISP
En effet my bad, je ne connaissais pas cet argument facultatif [default-data] pour cette fonction ! 😉 en revanche, juste une petite correction tout de même C'est vrai à condition que tu restes dans le même DWG. Car tu n'auras pas de conservation de la valeur entre tes différents DWG. Donc après tout dépend comment tu désires faire les choses, si tu veux que la valeur soit conservée indépendamment du DWG (donc valeur partagée sur l'ensemble de tes fichiers), tu peux utiliser (setenv) et (getenv) ; tandis que si tu veux que la valeur soit conservée en fonction du DWG (donc valeur pouvant être différente en fonction du dessin), tu peux en effet utiliser (vlax-ldata-put) et (vlax-ldata-get). Fais juste attention avec (setenv) car AutoCAD n'a pas prévu la fonction (delenv) (mais fort heureusement j'avais trouvé cette fonction de Patrick_35 sur les forums AutoDesk) : (defun delenv (env / key) (setq key (strcat "HKEY_CURRENT_USER\\" (vlax-product-key) "\\FixedProfile\\General")) (if (vl-registry-read key env) (vl-registry-delete key env) ) ) Je m'en vais simplifier l'écriture de mes programmes avec ces nouvelles connaissances du coup ! Bisous, Luna -
Décalé à gauche et droite en 1 seul clic
Luna a répondu à un(e) sujet de willy95 dans Débuter en LISP
Coucou @DenisHen, Petite remarque concernant ton code (setq EpMur (vlax-ldata-get "DenisH" "EpMur" 20)) Tu as confondu (vlax-ldata-put "DenisH" "EpMur" 20) et (vlax-ldata-get "DenisH" "EpMur") Dans le code ci-dessus, étant donné que tu redéfinies la valeur à 20 de manière forcée, je ne vois pas bien l'intérêt de passer par une ldata, alors que (setq EpMur 20) aurait strictement le même effet, sans rajouter une donnée étendue à ton dessin. Personnellement je pense qu'il est préférable de faire plutôt ceci (si tu veux conserver l'utilisation des ldata) : ((lambda (/ EpMur) (or (setq EpMur (getreal (strcat "\nDéfinir la distance entre les axes <" (rtos (cond ((vlax-ldata-get "DenisH" "EpMur")) (20))) "> : "))) (setq EpMur (cond (EpMur) (20))) ) (vlax-ldata-put "DenisH" "EpMur" EpMur))) Bisous, Luna -
calcul trigonométrique ne correspondant pas au résultat du dessin
Luna a répondu à un(e) sujet de Bertrand83 dans AutoCAD 2020-2024
Coucou, Serait-il possible d'avoir un DWG plutôt qu'un PDF ? Cela peut venir d'une erreur de virgule sur les angles (si tu n'as pas dessiné le triangle toi-même), es-tu sûr que les angles sont bien 2.0° et pas 2.0064431...° ? Bisous, Luna -
Plan topo : mettre "ALT" en position Z (autocad 2021)
Luna a répondu à un(e) sujet de edouareo dans AutoCAD 2020-2024
@edouareo, si je ne me trompe pas pour ALTPOINT, faire directement ENTER prends la valeur TCPOINT (ou TCPOINT*) par défaut si aucun autre bloc n'a été renseigné ^^" Tu peux également voir du côté de l'option PAramètres si jamais tu veux éditer un fichier CSV pour justement voir les points ayant des soucis ou non (avec la liste des matricules). @Erased, la fonction (atof) permet de renvoyer 0.0 (contrairement à (distof) qui renvoie nil) si jamais la chaîne de caractères renseignée dans l'attribut "ALT" ne correspond pas à l'écriture d'un nombre (donc si la chaîne est vide, ou bien autre chose qu'un nombre est renseigné). Donc s'il reste encore des Z=0.0 après utilisation c'est justement que tous les blocs à 0.0 sont des blocs ayant une erreur de renseignement au niveau de l'attribut "ALT" 😉 Bisous, Luna -
Plan topo : mettre "ALT" en position Z (autocad 2021)
Luna a répondu à un(e) sujet de edouareo dans AutoCAD 2020-2024
Autrement, juste pour répondre à la demande ci-dessus je peux proposer ces quelques lignes : (defun c:TOPOALT (/ jsel i name n ALT pt) (and (or (setq jsel (ssget "_I" '((0 . "INSERT") (2 . "TCPOINT") (66 . 1)))) (setq jsel (ssget '((0 . "INSERT") (2 . "TCPOINT") (66 . 1)))) (setq jsel (ssget "_X" '((0 . "INSERT") (2 . "TCPOINT") (66 . 1)))) ) (repeat (setq n 0 i (sslength jsel)) (setq name (ssname jsel (setq i (1- i))) pt (cdr (assoc 10 (entget name))) ALT (atof (getpropertyvalue name "ALT")) ) (if (entmod (subst (cons 10 (list (car pt) (cadr pt) ALT)) (assoc 10 (entget name)) (entget name) ) ) (setq n (1+ n)) n ) ) (princ (strcat "\nUn total de " (itoa n) "/" (itoa (sslength jsel)) " blocs TCPOINT ont été modifié avec succès")) ) (princ) ) Tu n'auras juste pas les fonctionnalités d'export CSV, d'utilisation d'autres blocs que TCPOINT, etc... que peut fournir ALTPOINT 😉 EDIT: Bien évidemment, la concision de @(gile) est remarquable et tellement logique ^^" Bisous, Luna -
Plan topo : mettre "ALT" en position Z (autocad 2021)
Luna a répondu à un(e) sujet de edouareo dans AutoCAD 2020-2024
Coucou, J'ai un programme un peu plus..."complet" que la demande si tu veux. Vois si chat te convient, à savoir que pour ta demande, appuyer uniquement sur ENTER (validation à vide) devrait suffire 😉 Le nom de la commande c'est ALTPOINT Bisous, Luna UtGeodt . ALTPOINT 2.1.2 - 2022.07.25 (Luna).lsp -
[Résolu] Propriétés personnelles d'un dessin.
Luna a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Coucou, Je dirais que le problème vient de la méthode appliquée (vla-ADDcustominfo). Commande: (vlax-dump-object sum T) ; IAcadSummaryInfo: Interface IAcadSummaryInfo ; Valeurs de propriétés: ; Author = "" ; Comments = "" ; HyperlinkBase = "" ; Keywords = "" ; LastSavedBy = "luna" ; RevisionNumber = "" ; Subject = "" ; Title = "" ; Méthodes prises en charge: ; AddCustomInfo (2) ; GetCustomByIndex (3) ; GetCustomByKey (2) ; NumCustomInfo () ; RemoveCustomByIndex (1) ; RemoveCustomByKey (1) ; SetCustomByIndex (3) ; SetCustomByKey (2) T Je pense que les méthodes dont tu as besoin c'est (vla-SETcustombykey) afin de mettre à jour une key existante. Tandis que (vla-ADDcustomInfo) va uniquement rajouter une nouvelle ligne SI la key renseignée n'est pas déjà présente dans la liste. Bisous, Luna -
Transparence d'un objet d'une xref sans modifier la xref
Luna a répondu à un(e) sujet de sylarr dans AutoCAD 2020-2024
Coucou, Bien sûr 😉 Il suffit de tester et tu verras par toi-même comment chat fonctionne (ne lésine pas sur les RGT) ! Bisous, Luna
