JPhil
Membres-
Compteur de contenus
207 -
Inscription
-
Dernière visite
-
Jours gagnés
6
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par JPhil
-
LISP - Copier la valeur d'un attribut dans un texte
JPhil a répondu à un(e) sujet de Raph_38 dans LISP et Visual LISP
J'ai un lisp qui copie la valeur d'un attribut ou texte et qui le colle dans un autre attribut ou texte : ;;; ;;; Copie la valeur du texte d'un attribut de bloc ou texte ;;; et le colle sur un texte d'un attribut de bloc ou texte ;;; (defun c:COPYATT ( / selatt selatt2 objatt objatt2) (setq selatt (nentsel (strcat "\nSélectionner l'attribut ou le texte à copier :"))) (setq selatt2 (nentsel (strcat "\nSélectionner l'attribut ou le texte de destination :"))) (setq objatt (vlax-ename->vla-object (car selatt))) (setq objatt2 (vlax-ename->vla-object (car selatt2))) (if (and (or (= (vla-get-ObjectName objatt) "AcDbText") (= (vla-get-ObjectName objatt) "AcDbMText") (= (vla-get-ObjectName objatt) "AcDbAttribute")) (or (= (vla-get-ObjectName objatt2) "AcDbText") (= (vla-get-ObjectName objatt2) "AcDbMText") (= (vla-get-ObjectName objatt2) "AcDbAttribute"))) (vla-put-textstring objatt2 (vla-get-textstring objatt)) ) (princ) ) ;;; A adapter selon tes besoins. -
De mémoire dans la légende, tu peux changer de vue (vue de face, vue de côté ...), c'est pas terrible mais ça a le mérite d'exister. Pour l'échelle du dessin, j'avoue ne pas avoir trouvé la solution, enfin presque. Mon Bim Manager de l'époque redessine par dessus la famille, supprime la famille et applique une échelle sur son "nouveau" dessin. J'ai toujours trouvé cette solution bancale.
-
De mémoire ta famille doit être créée par face, et non par mur ou sol. Par face, tu peux la mettre où tu veux même sur un autre élément.
-
Quand je vois "Epaisseur en mm : 100.00_mm", je me pose la question du pourquoi "_mm" après la valeur "100.00" ? Est-ce vraiment utile ? Il se peut que le problème vient de là. AutoLisp n'est pas assez intelligent pour faire 2 pommes + 3 bananes, mais suffisamment intelligent pour faire 2 + 3.
-
En créant un modèle in-situ.
-
Si la fonction recherche et zoom d'AutoCad fonctionne plutôt bien dans l'espace objet, il n'en est pas de même pour l'espace papier. Jusqu'à présent ça ne me posait pas de problème. Lorsque je suis dans une présentation avec une ou plusieurs fenêtres, je souhaiterai savoir si mon élément se trouve bien sur cette présentation ou pas. [idée] Peut-être utiliser le lisp "SelectByVport" de (gile) mais avec une méthode automatique de sélection de toutes les fenêtres ? Mais quid du zoom sur l'élément recherché ?
-
Oh la la ! Comment va-t-on faire sans notre développeur VBA attitré ? 😱 Bon, l'important est que tu te plaises dans cette nouvelle expérience. 😉
-
convertir MTXT en bloc avec attribut
JPhil a répondu à un(e) sujet de philsogood dans AutoCAD 2020-2024
Une ressemblance avec ce post >>> ici <<< -
La réponse à la question est ici : (gc:GetItem *blocks* (setq n (strcat (vla-get-EffectiveName b) "_" (itoa i)))) En supprimant cette partie "_" (itoa i) il n'y aura plus d'incrémentation. Mais comme c'est lié à un bloc dynamique, il y a peut-être une raison pour que le nom du bloc soit incrémenté. Et la raison se trouve au début du programme : Converti les blocs dynamiques sélectionnés en blocs statiques Donc au final, pas sûr que le programme DYN2STAT soit adapté à ton besoin. Peux-tu nous dire ce que tu veux faire avec ton bloc Chambre ? Ton bloc Chambre, il est dynamique ou pas ?
-
Est-ce possible de nous partager le code du lisp DYN2STAT ?
-
Remplacer un texte par un attribut en récupérant la valeur du texte
JPhil a répondu à un(e) sujet de nen dans Débuter en LISP
Voici un programme qui récupère la valeur d'un texte (mtexte ou attribut) et le colle sur un texte (mtexte ou attribut) : (defun c:foo ( / selatt selatt2 objatt objatt2) (setq selatt (nentsel (strcat "\nSélectionner l'attribut ou le texte à copier :"))) (setq selatt2 (nentsel (strcat "\nSélectionner l'attribut ou le texte de destination :"))) (setq objatt (vlax-ename->vla-object (car selatt))) (setq objatt2 (vlax-ename->vla-object (car selatt2))) (if (and (or (= (vla-get-ObjectName objatt) "AcDbText") (= (vla-get-ObjectName objatt) "AcDbMText") (= (vla-get-ObjectName objatt) "AcDbAttribute")) (or (= (vla-get-ObjectName objatt2) "AcDbText") (= (vla-get-ObjectName objatt2) "AcDbMText") (= (vla-get-ObjectName objatt2) "AcDbAttribute"))) (vla-put-textstring objatt2 (vla-get-textstring objatt)) ) ) -
Le mieux c'est de regarder directement chez Autodesk : - AutoCAD 2023 >>> ici <<< - Revit 2023 >>> ici <<< En résumé : Processeur avec une fréquence supérieur à 3.00Ghz et plusieurs coeurs. Mémoire 16 Go de RAM minimum Résolution de l’affichage : 1920 x 1080 minimum PC Fixe ou Portable : ça dépend si tu fais télétravail ou pas, si tu dois te déplacer en réunion avec ou pas ...
-
ACAD LT 2024 Win : les Lisps/VLisps qui fonctionnent
JPhil a répondu à un(e) sujet de lecrabe dans AutoCAD LT 2024
Et concernant les données étendues (XData), faudra-t-il rester sur une version Full ? -
Publier PDF multipages formats papier différents
JPhil a répondu à un(e) sujet de Cyril83 dans AutoCAD trucs et astuces
Si tu utilises un style de tracé STB, c'est normal que les épaisseurs de ligne ne soient pas respectées quand tes mises en page sont créées dans l'espace objet. Pour avoir les épaisseurs de ligne avec un style de tracé STB il faut passer par une présentation. -
CADMIN : SVP un nouveau Forum "AutoCAD LT 2024"
JPhil a répondu à un(e) sujet de lecrabe dans CADxp, vos souhaits
OK pour un nouveau forum mais quid de la section "LISP et Visual LISP" ? -
Creation d'atlas depuis des blocs
JPhil a répondu à un(e) sujet de fabcad dans Pour aller plus loin en LISP
Concernant ton bloc, comment savoir l'ordre ? Y'a t-il un attribut (ou tout autre élément de référence) qui pourrait nous dire dans quel ordre les gérer ? Car sans indications, il se peut que ta première présentation face référence au bloc de gauche, la deuxième présentation face référence à l'avant dernier bloc de droite, la troisième présentation face référence au bloc du milieu, la quatrième présentation face référence au dernier bloc de droite, ... Et vu ton dessin, je ne pense pas que ce soit le résultat attendu. -
Aide création lisp pour enregistrer des calques prédéfinis
JPhil a répondu à un(e) sujet de Despe dans Débuter en LISP
1) Tu listes l'ensemble des calques. 2) Par le biais d'une boucle tester chaque calque. a) Si le calque correspond à "DIVISION" ne rien faire. b) Si le calque ne correspond pas à "DIVISION" supprimer le calque avec son contenu. 3) PURGER puis enregistrer le dessin. -
Aide création lisp pour enregistrer des calques prédéfinis
JPhil a répondu à un(e) sujet de Despe dans Débuter en LISP
Oui! Donc si tu modifies ton premier lisp pour inclure le chemin, il se pourrait que la commande SAVEAS accepte de sauvegarder ton fichier. Pour le deuxième programme, souhaites-tu effacer des éléments appartenant à un ou des calques précis, ou souhaites-tu effacer des éléments appartenant à une ou des couleurs précis (couleur du calque, couleur de l'objet), ou souhaites-tu un mixte des deux ? Bref, si t'es clair dans ton explication, généralement le programme suit. Faits les étapes en mode manuel de ce que tu veux, note à côté la commande AutoCAD pour y parvenir et ça deviendra ton programme. -
Aide création lisp pour enregistrer des calques prédéfinis
JPhil a répondu à un(e) sujet de Despe dans Débuter en LISP
Si je te demande le résultat, c'est qu'il y a une différence entre : (setq filename (strcat (vl-filename-base (getvar 'dwgname)) "_Archive.dwg")) et : (setq filename (strcat (getvar "dwgprefix") (getvar "dwgname"))) (setq new-filename (strcat (substr filename 1 (- (strlen filename) 4)) "_Archive.dwg")) Avant d'aller plus loin, vois-tu la différence ? -
Je viens de tester avec un collègue. Ca risque d'être très amusant 😁 Question : pouvez me créer un lisp qui convertit une ellipse en polyligne Réponse : (defun ellipse-to-polylines (center-x center-y radius-x radius-y segments) "Converts an ellipse to a polyline using the specified number of line segments." (let ((polylines (list))) (dotimes (i segments) (let ((angle (* i (/ pi (/ segments 2.0))))) (let ((x (+ center-x (* radius-x (cos angle))))) (let ((y (+ center-y (* radius-y (sin angle))))) ;; Ajoute un point à la polyligne (if (null (car polylines)) (setf polylines (list (list x y))) (setf (car polylines) (append (car polylines) (list x y)))))))) ;; Retourne la liste de polylignes polylines)) Question : pouvez me créer un lisp qui converti une ellipse en polyligne sur autocad Réponse : A comparer à la solution de @(gile) >>> ici <<<
-
Aide création lisp pour enregistrer des calques prédéfinis
JPhil a répondu à un(e) sujet de Despe dans Débuter en LISP
Quand tu tapes cette instruction dans la ligne de commande d'AutoCAD : (strcat (vl-filename-base (getvar 'dwgname)) "_Archive.dwg") Quel est le résultat ? -
Dessinateur (salaire / opinion)
JPhil a répondu à un(e) sujet de Nico59 dans Emploi, monde du travail
C'est plutôt cela qu'il faudrait retenir. Si tu ne veux pas te faire exploiter alors il ne faut pas travailler et dans ce cas là c'est toi qui va exploiter le système (ou les personnes) pour arriver à tes fins. -
[Résolu ] Rédéfinir un bloc dont la couleur est forcée à l'intérieur de l'éditeur d'attribut étendu
JPhil a répondu à un(e) sujet de Steven dans AutoCAD 2020-2024
La commande "DEFDUCALQUE" pourrait faire l'affaire 😉 -
Un début de réponse peut-être >>> ici <<< ? (Pas testé)
