Aller au contenu

Problème d'insertion des blocs


az2din

Messages recommandés

Bonjour;

C'est joint en attachement, une routine Lisp "menuis.lsp", n’insère pas correctement, dans le dessin "Menuis-Error" les blocs aux points d'insertion des *TEXTS sectionnés par la selectionSet ss1.

 

Prière de m'aider à fixer cet erreur et de pour l'utiliser même dans différents SCU.

 

Merci d'avance;

 

J'ai eu un problème pour appload le code lisp, le bloc et le plan DWG comme ci-dessous le code :

 

;;; Function: insert un bloc avec attributs "Rep-Menuis-V4.dwg" aprés selection de pbs text or mtext et prend la valeur/index du text/mtext et la mettre dans l'attribut REP-MENUIS

;;; By azzeddine EL HACHIMI ---2017

 

(defun c:Menuis ()

 

;;;Create Layer and make it current ***************************************

 

(setq lay "SMEC-MENUIS-REP")

(if (tblsearch "LAYER" lay)

(progn

(alert (strcat lay " Alreday exist in Database, it will be current"))

(setvar "CLAYER" lay))

 

(progn

(initget (+ 1 2 4))

(setq lay-col (getint "\nEnter the number of layer color :\n"))

(command "._layer" "_make" lay "_color" lay-col "" "EP" "0.8" "" "")

)

)

;;;***************************************

 

(setq ss1 nil)

 

(setq ss1 (ssget '((-4 . "<OR")

(0 . "text")

(0 . "mtext")

(-4 . "OR>")

)

)

)

 

(setq leng (sslength ss1))

(setq nr 0)

 

(setq NUM-MENUIS "")

(setq REP-MENUIS "")

;;;(setq LARG "")

;;;(setq HAUT "")

;;;(setq ALLEGE "")

;;;(setq PROTECTION "")

;;;(setq CF-PF-DB "")

;;;(setq EQUIPEMENT "")

;;;(setq DESC "")

;;;(setq mat "")

;;;(setq BLOC "")

;;;(setq EP-MUR "")

;;;(setq CALQUE-MUR "")

;;;(setq CHAMP.1 "")

;;;(setq CHAMP.2 "")

(setq CHAMP.4 "") ; I put the handle in this attribute just for cheeking

 

(setq

en nil

ent1 nil

val-txt nil

Pt nil

Pt-ins-txt nil

Ht-txt nil

RO nil

)

 

(while (< nr leng)

(setq en (ssname ss1 nr))

(setq ent1 (entget en))

 

(setq val-txt (cdr (assoc 1 ent1)))

(setq Pt (cdr (assoc 10 ent1)))

 

;;; (setq Pt-ins-txt (list (car pt) (car(cdr pt))))

 

(setq Ht-txt (cdr (assoc 40 ent1)))

(setq RO-txt (cdr (assoc 50 ent1)))

 

(setq RO (* RO-txt (/ 180.00 pi )))

 

(setq REP-MENUIS val-txt)

(setq NUM-MENUIS (1+ nr))

 

(setq CHAMP.4 (cdr(assoc 5 ent1)))

 

(Command "_insert" "Rep-Menuis-V4" Pt Ht-txt Ht-txt RO

NUM-MENUIS

REP-MENUIS

;;; LARG

;;; HAUT

;;; ALLEGE

;;; PROTECTION

;;; CF-PF-DB

;;; EQUIPEMENT

;;; DESC

;;; mat

;;; BLOC

;;; EP-MUR

;;; CALQUE-MUR

;;; CHAMP.1

;;; CHAMP.2

CHAMP.4

)

(setq nr (1+ nr))

)

)

Modifié par az2din
Lien vers le commentaire
Partager sur d’autres sites

Salut.

 

Je n'ai pas vraiment compris ton problème et ton code... Cela dit, il serait judicieux de déclarer tes variables, gros défaut que j'ai aussi de ne pas les déclarer. Remplacer certaines lignes du code, comme

;;; Function: insert un bloc avec attributs "Rep-Menuis-V4.dwg" aprés selection de pbs text or mtext et prend la valeur/index du text/mtext et la mettre dans l'attribut REP-MENUIS
;;; By azzeddine EL HACHIMI ---2017
(defun c:Menuis (/ lay lay-col)
;;;Create Layer and make it current ***************************************
 (setq lay "SMEC-MENUIS-REP")
 (if (tblsearch "LAYER" lay)
   (setvar "CLAYER" lay)
   (progn (initget (+ 1 2 4))
          (setq lay-col (getint (strcat "\nEntrez la couleur du calque '" lay "' :")))
          (command "-calque" "e" lay "_color" lay-col "" "EP" "0.8" "" "")
   ) ;_ Fin de progn
 ) ;_ Fin de if
;;;***************************************
 (setq ss1  nil
       ss1  (ssget '((0 . "TEXT,MTEXT")))
       leng (sslength ss1)
       nr   0
 ) ;_ Fin de setq
 (while (< nr leng)
   (setq en         (ssname ss1 nr)
         ent1       (entget en)
         al-txt     (cdr (assoc 1 ent1))
         Pt         (cdr (assoc 10 ent1))
         Ht-txt     (cdr (assoc 40 ent1))
         RO-txt     (cdr (assoc 50 ent1))
         RO         (* RO-txt (/ 180.00 pi))
         REP-MENUIS val-txt
         NUM-MENUIS (1+ nr)
         CHAMP.4    (cdr (assoc 5 ent1))
   ) ;_ Fin de setq
   (Command "_insert" "Rep-Menuis-V4" Pt Ht-txt Ht-txt RO NUM-MENUIS REP-MENUIS CHAMP.4)
   (setq nr (1+ nr))
 ) ;_ Fin de while
 (princ)
) ;_ Fin de defun

Je n'ai "retouché" que le début de ton code.

 

Et on aurait aussi aimé avoir ton bloc pour pouvoir faire quelques petits testes...

 

Denis...

 

PS : balise aussi ton code s'il te plait.

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Salut.

 

Je n'ai pas vraiment compris ton problème et ton code... Cela dit, il serait judicieux de déclarer tes variables, gros défaut que j'ai aussi de ne pas les déclarer. Remplacer certaines lignes du code, comme

;;; Function: insert un bloc avec attributs "Rep-Menuis-V4.dwg" aprés selection de pbs text or mtext et prend la valeur/index du text/mtext et la mettre dans l'attribut REP-MENUIS
;;; By azzeddine EL HACHIMI ---2017
(defun c:Menuis (/ lay lay-col)
;;;Create Layer and make it current ***************************************
 (setq lay "SMEC-MENUIS-REP")
 (if (tblsearch "LAYER" lay)
   (setvar "CLAYER" lay)
   (progn (initget (+ 1 2 4))
          (setq lay-col (getint (strcat "\nEntrez la couleur du calque '" lay "' :")))
          (command "-calque" "e" lay "_color" lay-col "" "EP" "0.8" "" "")
   ) ;_ Fin de progn
 ) ;_ Fin de if
;;;***************************************
 (setq ss1  nil
       ss1  (ssget '((0 . "TEXT,MTEXT")))
       leng (sslength ss1)
       nr   0
 ) ;_ Fin de setq
 (while (< nr leng)
   (setq en         (ssname ss1 nr)
         ent1       (entget en)
         al-txt     (cdr (assoc 1 ent1))
         Pt         (cdr (assoc 10 ent1))
         Ht-txt     (cdr (assoc 40 ent1))
         RO-txt     (cdr (assoc 50 ent1))
         RO         (* RO-txt (/ 180.00 pi))
         REP-MENUIS val-txt
         NUM-MENUIS (1+ nr)
         CHAMP.4    (cdr (assoc 5 ent1))
   ) ;_ Fin de setq
   (Command "_insert" "Rep-Menuis-V4" Pt Ht-txt Ht-txt RO NUM-MENUIS REP-MENUIS CHAMP.4)
   (setq nr (1+ nr))
 ) ;_ Fin de while
 (princ)
) ;_ Fin de defun

Je n'ai "retouché" que le début de ton code.

 

Et on aurait aussi aimé avoir ton bloc pour pouvoir faire quelques petits testes...

 

Denis...

 

PS : balise aussi ton code s'il te plait.

 

 

Merci Denis de ta réponse, la situation est la suivante :

 

J'ai un plan Autocad DWG, contenant les repérages des menuiseries sous forme de Text ou Mtext, j'ai écrit cette routine pour insérer un bloc dénommé "Rep-Menuis-V4" dont tous les attributs sont prédéfinis sauf (NUM-MENUIS REP-MENUIS CHAMP.4) et ayant comme (point d'insertion, Echelle en X, Echelle en Y, Rotation) ceux du *text et la valeur du text est affectée à l'attribut "REP-MENUIS" et le handle de chaque entité est affecté à l'attribut "CHAMP.4" (juste pour contrôle).

 

Le problème c'est que certains blocs sont insérés loin du text/mtext les concernant, et je sens une lenteur anormale lors de l'exécution.

 

J'ai voulais attachés les fichiers mais le serveur m'affiche "Le serveur a retourné une erreur durant l'envoi".

 

 

Bonne Journée.

Lien vers le commentaire
Partager sur d’autres sites

Salut.

 

Ils devraient au moins l'afficher quelque-part, mais ça fait plusieurs mois qu'on ne peut plus lier de fichier directement sur le forum.

 

Bref : il faut passer par un hébergeur extérieur.

 

Et pour plus de lisibilité il vaut mieux utiliser le bouton <> pour insérer des codes (cinq pas à droite des smiley).

 

Cordialy.

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Re.

 

Azzeddine, il nous manque ton bloc...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

En général un hébergeur te permet de poster un lien encartant directement le téléchargement, ou amenant sur la page de téléchargement.

 

Selon les cas, il y a par exemple Wetrensfer qui supprime la PJ au bout de 7 jours, ou à l'opposé DropBox qui instable carrément un programme sur l'ordi (les PJ ne sont qu'une fonctionnalité parmi d'autres), mais c'est l'un des meilleur pour ne pas avoir une erreur 404 dans quelques mois.

 

Il faut juste veiller à éviter Mediafire car il est inaccessible pour certains utilisateurs sur le forum.

 

A toit de trouver sur le net celui qui peut le mieux te convenir.

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Salut.

 

Le mieux est d'utiliser WeTransfer et de choisir, en bas à gauche, de créer un lien au lieu d'utiliser une adresse courriel.

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

...point d'insertion, Echelle en X, Echelle en Y, Rotation...

Un TEXT, ou un MTEXT, n'a pas d'échelle. Il faudra les fixer (X et Y) à 1

 

Mais je ne vois pas trop comment remplir les attributs d'un bloc pendant son insertion...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Denis;

 

Je t'invite à exécuter la routine sur le fichier Autocad que j'ai envoyé pour constater le problème qu'il y a certains blocs qui seront insérés loin des *TEXTS les concernant.

 

 

Pour le remplissage des attributs, sera comme suit :

 

Pt : Point d'insertion du text

Ht-txt : Hauteur du text (je n'ai fixer cette valeur à 1 lors de l'insertion pour que le bloc sera adapté à la hauteur du texte)

RO : Rotation du *TEXT

 

 

 

(Command "_insert" "Rep-Menuis-V4" Pt Ht-txt Ht-txt RO

 

 

NUM-MENUIS : Sera incrémenté automatiqument

REP-MENUIS : Reçoit la valeur du *Text

LARG : Prédéfinis (ne sera pas demandé lors de l'insertion du bloc)

HAUT : Prédéfinis (ne sera pas demandé lors de l'insertion du bloc)

ALLEGE : Prédéfinis (ne sera pas demandé lors de l'insertion du bloc)

PROTECTION : Prédéfinis (ne sera pas demandé lors de l'insertion du bloc)

CF-PF-DB : Prédéfinis (ne sera pas demandé lors de l'insertion du bloc)

EQUIPEMENT : Prédéfinis (ne sera pas demandé lors de l'insertion du bloc)

DESC : Prédéfinis (ne sera pas demandé lors de l'insertion du bloc)

mat : Prédéfinis (ne sera pas demandé lors de l'insertion du bloc)

BLOC : Prédéfinis (ne sera pas demandé lors de l'insertion du bloc)

EP-MUR : Prédéfinis (ne sera pas demandé lors de l'insertion du bloc)

CALQUE-MUR : Prédéfinis (ne sera pas demandé lors de l'insertion du bloc)

CHAMP.1 : Prédéfinis (ne sera pas demandé lors de l'insertion du bloc)

CHAMP.2 : Prédéfinis (ne sera pas demandé lors de l'insertion du bloc)

CHAMP.4 : Reçoit le handle du *Text

 

 

Bonne Journée.

Lien vers le commentaire
Partager sur d’autres sites

Pas de problème, je suis bien partie comme ça...

 

Je n'ai plus qu'un petit problème d'incrémentation automatique à résoudre...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Voilà, je pense avoir terminé... Essaye ça pour voir si ça fonctionne chez toi :

;;;***************************************************************
;;; Function: insert un bloc avec attributs "Rep-Menuis-V4.dwg"   
;;; aprés selection de pbs text or mtext et prend la valeur/index 
;;; du text/mtext et la mettre dans l'attribut REP-MENUIS         
;;; Développé par DenisHen de CadXP.com pour azzeddine EL HACHIMI 
;;;***************************************************************
(defun c:Menuis (/ lay lay-col Txt_Sel elst Pt Ht-txt RO-txt RO CHAMP4)
 (princ "\nVersion 1.0")
;;;Create Layer and make it current ***************************************
 (setvar "ATTDIA" 0)
 (setvar "ATTREQ" 0)
 (setvar "angbase" 0)
 (setvar "angdir" 0)
 (if (= (vlax-ldata-get "DenisH" "NumMenuis" 0) 0)
   (vlax-ldata-get "DenisH" "NumMenuis" 0)
 ) ;_ Fin de if
 (command "-unites" "2" "2" "1" "2" "0,0" "@0,1" "O")
 (setq lay "SMEC-MENUIS-REP")
 (if (tblsearch "LAYER" lay)
   (setvar "CLAYER" lay)
   (progn (initget (+ 1 2 4))
          (setq lay-col (getint (strcat "\nEntrez la couleur du calque '" lay "' :")))
          (command "-calque" "e" lay "_color" lay-col "" "EP" "0.8" "" "")
   ) ;_ Fin de progn
 ) ;_ Fin de if
;;;***************************************
 (setq Txt_Sel (car (entsel "\nSélectionnez le texte :")))
 (wcmatch (cdr (assoc 0 (setq elst (entget Txt_Sel)))) "*")
 (setq Val-txt (cdr (assoc 1 elst))
       Pt      (cdr (assoc 11 elst))
       Ht-txt  (cdr (assoc 40 elst))
       RO      (+ (cdr (assoc 50 elst)) (/ pi 2))
       CHAMP4  (cdr (assoc 5 elst))
 ) ;_ Fin de setq
 (Command "_insert" "Rep-Menuis-V4" Pt (* Ht-txt 10000) (* Ht-txt 10000) (angtos RO))
 (vl-catch-all-apply 'setpropertyvalue (list (entlast) "Num-Menuis" (rtos (vlax-ldata-get "DenisH" "NumMenuis" 0) 2 0)))
 (vlax-ldata-put "DenisH" "NumMenuis" (+ (vlax-ldata-get "DenisH" "NumMenuis") 1))
 (vl-catch-all-apply 'setpropertyvalue (list (entlast) "Rep-Menuis" Val-txt))
 (vl-catch-all-apply 'setpropertyvalue (list (entlast) "Champ.4" CHAMP4))
 (princ)
) ;_ Fin de defun

 

Tiens nous au courant... ;)

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Pour changer le premier nombre de l'incrémentation, il faut taper ça dans AutiCAD :

(vlax-ldata-put "DenisH" "NumMenuis" NouveauNuméro)

 

Exemple pour reprendre l'incrémentation à 16 :

(vlax-ldata-put "DenisH" "NumMenuis" 16)

 

Oops, je viens de voir qu'il fallait sélectionner plusieurs TEXT/MTEXT et non un par un...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour

 

Merci DenisHen pour votre effort et votre patience, je réexplique l'usage de ma routine et illustrer l'erreur que je veux éviter :

 

Après chargement de la routine, et son appel par "Menuis" à la barre de commande, elle invite l'usager à sélectionner plusieurs TEXT/MTEXT, ensuite, les TEXT ou MTEXT filtrés seront regroupés dans une selectionSet appelée "SS1", ensuite une boucle "While" sera déclenchée pour balayer toute la selectionSet SS1 et prendre prendre de chaque TEXT/MTEXT :

 

le nom : (setq en (ssname ss1 nr))

La valeur :(setq val-txt (cdr (assoc 1 ent1)))

Le point d'insertion : (setq Pt (cdr (assoc 10 ent1)))

La hauteur (setq Ht-txt (cdr (assoc 40 ent1)))

L'angle de rotation :(setq RO-txt (cdr (assoc 50 ent1)))

Le maintien(Handle) : (setq CHAMP.4 (cdr(assoc 5 ent1)))

 

Et aprés elle les affecte aux attributs du bloc à insérer au point d'insertion de chaque text comme suit :

le nom du bloc à insérer :"Rep-Menuis-V4"

Pt : Point d'insertion du bloc qui a reçue les coordonnées du point d'insertion du text

Ht-txt Ht-txt : Echelle en X et en Y du bloc (pour que le bloc apparait identique à la taille du text)

RO : La rotation du bloc (qui a reçue l'angle de rotation du text convertie en degré décimal

NUM-MENUIS : attribut qui reçoit un numero qui sera incrémenté automatiquement

REP-MENUIS : attribut qui reçoit la valeur du Text

CHAMP.4 : attribut qui reçoit Le maintien(Handle)

 

Pour moi la routine sa marche, juste il y a une petite erreur à détecter car certains blocs sont insérés loin du text les correspond (voir la capture d'écran qui illustre cette erreur)

 

 

Merci de trouver dans le lien https://we.tl/tkrDKXxOhl, la routine retouchée un peut + le plan avec les textes et le bloc + l’illustration de l'erreur.

 

Cordialement;

Lien vers le commentaire
Partager sur d’autres sites

Salut.

 

Relis mon dernier code, tu verras que le point d'insertion d'un TEXT ou d'un MTEXT n'est pas

(setq Pt (cdr (assoc 10 ent1))) mais

(setq Pt (cdr (assoc 11 ent1)))

 

Ensuite, le reste n'est qu'une question de petits réglages.

 

Ma routine fait tout ce que tu demande dans ton message 13 sauf qu'il faut sélectionner les TEXT/MTEXT l'un après l'autre...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Salut.

 

Bon, alors voilà mon dernier code qui fonctionne nickel chez moi... :

;;;********************************************************************
;;; Function: insert un bloc avec attributs "Rep-Menuis-V4.dwg"        
;;; aprés selection de plusieurs text or mtext et prend la             
;;; valeur/index du text/mtext et la mettre dans l'attribut REP-MENUIS 
;;; Développé par DenisHen de CadXP.com pour azzeddine EL HACHIMI      
;;;********************************************************************
(defun c:Menuis (/ lay lay-col Sel_All Sel_Comp Sel_Num elst Pt Ht-txt RO-txt RO CHAMP4)
 (princ "\nVersion 1.0")
 (setvar "ATTDIA" 0)
 (setvar "ATTREQ" 0)
 (setvar "angbase" 0)
 (setvar "angdir" 0)
 (command "-unites" "2" "2" "1" "2" "0,0" "@0,1" "O")
 (setq lay "SMEC-MENUIS-REP")
 (if (tblsearch "LAYER" lay)
   (setvar "CLAYER" lay)
   (progn (initget (+ 1 2 4))
          (setq lay-col (getint (strcat "\nEntrez la couleur du calque '" lay "' :")))
          (command "-calque" "e" lay "_color" lay-col "" "EP" "0.8" "" "")
   ) ;_ Fin de progn
 ) ;_ Fin de if
 (setq Sel_All (ssget '((0 . "TEXT,MTEXT"))))
 (setq Sel_Cour (sslength Sel_All))
 (setq Sel_Num 0)
 (while (< Sel_Num Sel_Cour)
   (setq elst (entget (ssname Sel_All Sel_Num)))
   (setq Val-txt (cdr (assoc 1 elst))
         Pt      (cdr (assoc 11 elst))
         Ht-txt  (cdr (assoc 40 elst))
         RO      (+ (cdr (assoc 50 elst)) (/ pi 2))
         CHAMP4  (cdr (assoc 5 elst))
   ) ;_ Fin de setq
   (Command "_insert" "Rep-Menuis-V4" Pt Ht-txt Ht-txt (angtos RO))
   (vl-catch-all-apply 'setpropertyvalue (list (entlast) "Num-Menuis" (rtos (vlax-ldata-get "DenisH" "NumMenuis" 1) 2 0)))
   (vlax-ldata-put "DenisH" "NumMenuis" (+ (vlax-ldata-get "DenisH" "NumMenuis" 1) 1))
   (vl-catch-all-apply 'setpropertyvalue (list (entlast) "Rep-Menuis" Val-txt))
   (vl-catch-all-apply 'setpropertyvalue (list (entlast) "Champ.4" CHAMP4))
   (setq Sel_Num (+ Sel_Num 1))
 ) ;_ Fin de while
 (princ)
)

 

Tiens-nous au courant s'il fonctionne...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Salut;

 

Merci beaucoup Mr Denis pour ton aide.

 

je tiens à vous informer que j'ai fixé l’erreur dans ma routine, elle est causé par le fait de ne pas affecter la variable système "OSMODE" à 0 au début de la routine.

 

 

Ton effort m'a poussé et m'a motivé à découvrir le visual Lisp, merci encore une fois et Merci aussi au Maître Gile pour ces 3 chapitres concernant le visual Lisp C'est passionnant.

 

Bonne Journée à Tous.

Lien vers le commentaire
Partager sur d’autres sites

Merci Denis,

 

j'ai essayé votre routine, elle fonctionne très bien, juste il faut changer la valeur de ATTREQ à 1 et ajouter OSMODE=0;

 

Nota pour le point d’insertion du TEXT/MTEXT, selon le guide "DXF Reference" :

 

*****************Pour le TEXT*************************

10 First alignment point (in OCS)

DXF: X value; APP: 3D point)

 

11 Second alignment point (in OCS) (optional)

DXF: X value; APP: 3D point

This value is meaningful only if the value of a 72 or 73 group is nonzero (if the justification is

anything other than baseline/left)

 

*****************et Pour le MTEXT*****************

10 Insertion point

DXF: X value; APP: 3D point

 

11 X-axis direction vector (in WCS)

DXF: X value; APP: 3D vector

A group code 50 (rotation angle in radians) passed as DXF input is converted to the equivalent

direction vector (if both a code 50 and codes 11, 21, 31 are passed, the last one wins). This is

provided as a convenience for conversions from text objects

 

Merci une autre fois pour votre temps et votre Aide.

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité