-
Compteur de contenus
17 -
Inscription
-
Dernière visite
Visiteurs récents du profil
Le bloc de visiteurs récents est désactivé et il n’est pas visible pour les autres utilisateurs.
KevM's Achievements
-
Nom de bloc dans quantité aire liée à l'index d'une cellule d'un tableau ou un champs
KevM a répondu à un(e) sujet de KevM dans AutoCAD 2020-2024
Bonjour Steven, vous venez d'apporter un élément de réponse des plus efficaces, c'est la finalité que je cherche effectivement et même plus, le tableau ajoute lui même des lignes tout seul, même si ça ne m'arrange peux être pas dans l'absolue. Je vais creuser ça, ne me reste plus qu'à installer autocad archi pour trouver cette fonction Merci -
Nom de bloc dans quantité aire liée à l'index d'une cellule d'un tableau ou un champs
KevM a répondu à un(e) sujet de KevM dans AutoCAD 2020-2024
Bonjour Eric, oui je connais 🙂 Tranche équivalent à zone. De ce côté pas de soucis, mais je voulais que si j'ajoute un bloc qui n'est pas présent dans cette zone plus tard le tableau le compte, sans que j'ai besoin de le refaire. Quand j'utilise cette fonction il ne m'ajoute pas le nouveau bloc présent dans le tableau. Ce que montre Steven est du coup ce que j'aimerai faire effectivement, d'une certaine manière, c'est même plus que ce que j'espérai. Même si c'est complètement différent dans le procédé la finalité semble bonne. -
Nom de bloc dans quantité aire liée à l'index d'une cellule d'un tableau ou un champs
KevM a répondu à un(e) sujet de KevM dans AutoCAD 2020-2024
Bonsoir Eric merci pour votre réponse, En réalité c'est de là que je suis partie pour réfléchir à mon tableau. Mon idée est d'avoir un tableau comptant le nombre de blocs par secteur et par type, cependant dans un secteur 1 je n'ai pas forcément les mêmes que dans le secteur 2. Dans le secteur 1 j'ai 10 chaise par exemple et dans le secteur 2 10 bancs, mais peut être qu'avec l'évolution du projet je vais devoir ajouter 5 bancs au secteur 1. Avec un tableau de quantité standard je suis obligé de le refaire (en soit assez rapide), alors que là pas besoin d'y penser ça se met à jour tout seul. Et puis j'avais besoin de pouvoir exporter un seul tableau tableau cad vers excel pour calculer l'entièreté des mes quantitatifs. Mais en prenant du recul par rapport à ce que vous dites, il est vrai qu'il aurait été plus simple de faire les métrés quantités directement dans le cad avec des tableaux par secteurs. Après les tableaux cad sont vachement moins puissants qu'un Excel et on tendance à ramer si beaucoup de cellules + champs. -
Bonjour à tous, NB : L'idée de départ avoir un tableau qui compte les blocs mobilier en fonction des secteurs et qui se met à jour automatiquement même quand je rajoute un bloc déjà présent dans le dessin mais pas dans le secteur concerné. Je suis en train de faire des métrés, et sur le sujet là il est question de quantités de bloc (mobilier) découpé en plusieurs tranche. Jusque là pas de soucis. Là ou ça se complique c'est que mon chef de projet souhaite avoir des quantités de bloc par secteur, dans un seul et même tableau. J'ai donc utilisé le champs "Quantité dans aire" dans mes cellules de tableau => {"boundaryObjectHandle":"31EB92C","evaluatorId":"AcCount2","key":{},"name":"nom du bloc","type":"block"} Mais je suis obligé dans chaque cellule de modifier le code à la mains sur chaque ligne du tableau à chaque nouveau bloc, c'est long fastidieux pour une automatisation qui arrive un peu tard dans le projet. J'aimerai pouvoir lier le "nom du bloc" du code à une cellule d'un tableau qui contient le nom du bloc en brut ou via un champs "objet nommée", ça me permettrait de dupliquer mes cellules plus rapidement un peu comme dans Excel sans devoir éditer chaque champs quantité dans aire dans chaque cellule. Et puis si je change le nom du bloc j'aurai juste à modifier le nom dans ma cellule ou si c'est un champs objets nommées je n'aurai rien à faire. J'ai dans un premier temps essayé d'insérer un champs objets nommées dans le champs quantité dans aires, pour voir le comportement {"boundaryObjectHandle":"31EB92C","evaluatorId":"AcCount2","key":{},"name":"%<\AcObjProp Object(%<\_ObjId 2234903587296>%).Name>%","type":"block"} Sa fonctionne en partie dans le sens ou il récupère bien le bon nom sous forme de champs, mais après validation il l'inscrit en brut dans le champs donc ça perd de son intérêt. Et puis ça ne correspond pas totalement à ce que je veux faire avec le liaison à ce que contient ma cellule. De même j'ai regardé les champs pour un tableau mais je n'ai rien vu lié à une cellule. Sauriez vous si c'est possible ? Ou auriez vous une solution de contournement ? Merci d'avance, Bonne journée à tous Le tableau en partie Ce que j'aimerai faire visuellement
-
Ah bah non finalement J'ai essayé d'aller plus loin et essayer de comprendre comment tout ça fonctionne un peu J'ai testé ça, mais je crois que je me suis senti pousser des ailes 😅 (defun c:PTALT (/ ss i blk pt alt) (if (setq ss (ssget "_X" '((0 . "INSERT") (2 . "TCPOINT 500,TCPOINT 200,`*U*") (410 . "Model")) ) ) (repeat (setq i (sslength ss)) (setq blk (ssname ss (setq i (1- i)))) (if (and (= (getpropertyvalue blk "BlockTableRecord/Name") "TCPOINT 500,TCPOINT 200") (setq alt (distof (getpropertyvalue blk "ALT"))) (setq pt (getpropertyvalue blk "Position")) ) (setpropertyvalue blk "Position" (list (car pt) (cadr pt) alt)) ) ) ) (command-s "_attsync" "_name" "TCPOINT 500, TCPOINT 200") (princ) )
-
Salut Gile merci beaucoup pour ce lisp, Si j'analyse bien il suffisait juste d'ajouter à la ligne 3 parenthèse 2 un séparateur virgule suivi ' et finit par étoile pour prendre en compte toute les instances commençant par *U, en revanche je ne saisi pas quelle est la fonction ' ? Ca voudrait dire que je pourrai ajouter plusieurs noms de blocs dans ce lisp, juste en ajoutant les noms de blocs, bien évidemment il faudrait qu'il est tous un attribut alt.
-
Oui effectivement je viens de tester, il arrive à conserver le nom dans les outils / propriétés/ sélection / insert /... mais à un ID différent en réalité. Du coup il faudrait que je trouve un lisp qui prend en compte une sélection et non le nom d'un bloc comme les deux ci dessus
-
Oui j'ai déjà rencontré ce cas de figure comprenant que ça venait des blocs dynamiques, mais par exemple je viens de tester en copiant plusieurs fois le bloc TCPOINT non modifié et modifié, les blocs conservent le nom du bloc ne change pas et reste TCPOINT, je n'ai pas d'apparition de nom de bloc "*U". Sais tu à quelle moment cela se produit ou avec quelle action ?
-
Merci pour vos retours ultra rapide. Voici les deux lisp que j'ai essayé, je suis vraiment novice en lisp, même si j'arrive parfois à lire et bidouiller pour le modifier, je ne sais pas lequel serait le plus approprié pour la plupart des cas. LISP TOPOALT (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) ) J'ai essayé également celui -ci (defun c:PTALT (/ ss i blk pt) (if (setq ss (ssget "_X" '((0 . "INSERT") (2 . "TCPOINT") (410 . "Model")))) (repeat (setq i (sslength ss)) (setq blk (ssname ss (setq i (1- i))) pt (getpropertyvalue blk "Position") ) (setpropertyvalue blk "Position" (list (car pt) (cadr pt) (atof (getpropertyvalue blk "ALT")))) ) ) (command-s "_attsync" "_name" "TCPOINT") (princ) )
-
Bonjour, Je me permet de vous demander de l'aide, car je connais des solutions pour attribuer un Z à un bloc / point à partir d'un attribut / TXT, mais je n'arrive pas à faire fonctionner ces solutions pour un bloc dynamique (inversion et position) les différents lisp que j'ai sous la mains TOPOALT / ALTZ / ... ne fonctionne que lorsque je n'ai pas d'élément dynamique dans le bloc. Savez vous si un bloc est un objet différent d'un bloc dynamique ? Si c'est le cas quelle entrée faut il changer dans le lisp pour qu'il prenne en compte le bloc dynamique. Merci d'avance pour votre aide Bonne journée Cote alti.dwg
-
Lisp pour ajouter un texte à côté de plusieurs points avec un Z
KevM a répondu à un(e) sujet de KevM dans AutoCAD 2020-2024
Je ne pensai pas avoir un soulèvement "anti-chatGPT" 😄, ça me montre néanmoins la voie de l'apprentissage du code lisp / ruby /.... qu'il faut maîtriser avant de jouer à l'apprenti sorcier. Merci pour vos réponses. @didier @lecrabe cela fonctionne parfaitement quand on redéfinit le style TXT sur standard ou que l'on passe son style à hauteur 0, merci. @Olivier Eckmann le lisp fonctionne parfaitement sans avoir besoin de changer la hauteur de texte, je reconnais n'avoir cherché que 20 min et donc pas assez, c'est cool de cumulé plusieurs boulots en un, mais ça bouffe pas mal de temps... je pense que vous connaissez. En tout cas merci pour votre réponse et le lien 🙏 Bonne journée et encore merci, pour moi et mon collègue -
Lisp pour ajouter un texte à côté de plusieurs points avec un Z
KevM a répondu à un(e) sujet de KevM dans AutoCAD 2020-2024
Je ne voudrais pas abusé de votre aide, mais je rencontre une erreur dans la barre de commande, quand je regarde le lisp je ne vois pas cette commande "00" d'où cela pourrait provenir ? Commande: ADDZCOORDTEXT Sélectionnez des objets: Spécifiez le coin opposé: 1 trouvé(s) Sélectionnez des objets: _TEXT Style de texte courant: "TER-500" Hauteur de texte: 1.000 Annotatif: Non Justifier: Gauche Spécifiez le point de départ du texte ou [Justifier/Style]: Spécifiez l'angle de rotation du texte <90.0000>: Entrez le texte: Commande: Z = 5.00 Commande inconnue "00". Appuyez sur F1 pour obtenir de l'aide. Merci -
Lisp pour ajouter un texte à côté de plusieurs points avec un Z
KevM a répondu à un(e) sujet de KevM dans AutoCAD 2020-2024
Bonjour, @didier, Désolé si je vous ai vexé, avec mon message et ça formulation, je parcours pas mal les forums à la recherche de solutions, je répond même sur certains comme Nas forum par exemple et je peux comprendre que cela vous vexe,. Je n'ai pas la prétention de dire que chat GPT est mieux qu'un humain , la preuve en est. Je vois cela comme un outil. Néanmoins, je pense que ma démarche n'est pas la mauvaise, j'ai essayé de chercher une solution sur un forum avec le peu de temps que j'ai au boulot, ne trouvant pas je me suis dit que plutôt de demander directement sur le forum je vais essayer ce fameux chat GPT que tout le monde parle. J'ai néanmoins bruler une étape c'est de ne pas apprendre le langage lisp, je vous l'accorde. Dans tout les cas je vous remercie pour votre lisp et votre temps -
KevM a modifié sa photo de profil
-
Lisp pour ajouter un texte à côté de plusieurs points avec un Z
KevM a posté un sujet dans AutoCAD 2020-2024
Bonjour, J'aurai besoin d'un coup pouce pour faire un lisp Hier j'ai un collègue qui est venu me voir pour me demander s'il était possible d'ajouter un texte avec l'information Z (altimétrie). J'ai farfouillé 20 mn mais je n'ai pas trouvé mon bonheur, du coup j'ai tenté avec chat GPT et ça nouvelle maj, et bien ça a fonctionné, mais seulement pour un point. (defun c:AddZCoordText () (setq ptEnt (car (entsel "\nSélectionnez un point existant : "))) (setq pt (cdr (assoc 10 (entget ptEnt)))) (setq ptX (car pt)) (setq ptY (cadr pt)) (setq ptZ (caddr pt)) (setq textString (strcat "Z = " (rtos ptZ))) (command "_TEXT" pt (rtos pi 2 2) textString) (princ) ) Je lui ai alors demandé s'il pouvait le faire pour plusieurs point, ce qu'il a fait, je peux bien sélectionner plusieurs points, mais une fois que je valide j'ai une erreur : erreur: type d'argument incorrect: numberp: nil (defun c:AddZCoordText () (setq ss (ssget '((0 . "POINT")))) (setq len (sslength ss)) (repeat len (setq ptEnt (ssname ss (setq i (1- i)))) (setq pt (cdr (assoc 10 (entget ptEnt)))) (setq ptX (car pt)) (setq ptY (cadr pt)) (setq ptZ (caddr pt)) (setq textString (strcat "Z = " (rtos ptZ))) (command "_TEXT" pt (rtos pi 2 2) textString) ) (princ) ) J'ai essayé de lui faire corriger mais, impossible. Plus tard je me suis posé la question de comment cad pouvait traiter ça et j'en suis arrivé à la conclusion que ce n'était pas possible de cette manière, car comment pourrait il savoir où il faut poser le texte et quelles coordonnées Z prendre. Pour ça il faudrait définir une aire autour du point pour qu'il soit capable d'apposer le bon texte au bon endroit ! Savez vous si c'est possible, si quelqu'un aurait déjà codé ce genre de lisp ? Merci par avance pour vos retours 🙂 NB: Je suis vraiment pas bon en code et encore plus en langage lisp, c'est pour ça que j'ai essayé avec Chat gpt (pou d'autres fonction ça marche très bien d'ailleurs) -
Bonjour, J'ai un problème lorsque je publie mon dessin via ma présentation, il n'y a qu'une partie des hachures verte qui s'imprime ! Cependant si j'augmente l'échelle de ma hachure celle-ci affiche un peu plus de ma hachure mais pas complètement et puis j'aimerai ne pas changer l'échelle de celle-ci. A noter que les hachures sont toutes dans le même calque, rien n'est gelée, éteint,... et pas de transparence. Ce n'est pas la première fois que j'ai se problème et j'ai pas mal cherché et essayé mais rien n'y fait (seteven/maxhatch ne change rien). J'ai remarqué quelque chose c'est qu'avec l'accélération matérielle activée tout s'affiche dans l'espace présentation, mais lorsque celle-ci est désactivée ce qui est affiché correspond a ce qui va sortir en pdf (à ce propos l'imprimante n'y change rien pdf creator / adobe pdf et traceur = même résultat tout n'est pas sorti) A voir ci dessous les captures Ce que je vois à l'écran accélération matérielle activée : Ce qui s'imprime ( et ce que je vois à l'écran lorsque l'accélération matérielle est désactivée) Si je change l'échelle de hachure Merci d'avance pour vos réponses, bonne journée.
