Aller au contenu

az2din

Membres
  • Compteur de contenus

    14
  • Inscription

  • Dernière visite

az2din's Achievements

Newbie

Newbie (1/14)

0

Réputation sur la communauté

  1. 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.
  2. 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.
  3. 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;
  4. 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.
  5. az2din

    F11 et plein écran

    Bonjour; >> la fonction F11 dans Autocad est réservée au "Repérage d'accrochage aux objets" >> le plein écran il sera activé/désactivé par le bouton en bas à droite ou via le raccourcis clavier "Ctrl+0" >> pour avoir les calques en mode plein écran : taper calque + entrée tu aura la fenêtre du gestionnaire des calque. Bonne Journée.
  6. Salut Denis; Comme vous avez indiqué ci-joint le lien contenant les fichiers sus-indiqués. https://we.tl/8wzSgjlrPO Cordialement;
  7. Merci ALeck pour ta réponse et ton effort; Veuillez trouver dans le lien ci-dessous : https://drive.google.com/open?id=0B0uktwk2IyorT3RlT3ctWEZhQVk 1-Menuis-Error.DWG (Dessin Autocad qui contient les repérages des menuiseries et le bloc à inserer) 2-Menuis (La routine Lisp) Merci à tous.
  8. Merci Aleck pour ta réponse et ton effort; Veuillez trouver dans le lien ci-dessous : https://drive.google.com/open?id=0B0uktwk2IyorT3RlT3ctWEZhQVkMon lien 1-menuis-Error.dwg (Dessin Autocad qui contient les repérages des menuiseries et le bloc à insérer2) 2-Menuis.lsp (La routine Lisp) Merci à tous;
  9. Bonjour Denis. Est ce qu'il y a une autre méthode de lier les fichiers directement sur le forum? Pour pouvoir envoyer les dits fichiers. Cordialement;
  10. 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.
  11. Merci à Gilles et Patrick pour le partage de l'information. Veuillez aussi trouver 63 vidéos tutoriels très intéressants sous le lien suivant : Bonne Journée à tous.
  12. az2din

    Polysolid

    Je partage avec vous cette routine, à améliorer par les professionnels en ajoutant plus de contrôle. Nota : avec les lignes et polylignes si en change l'épaisseur et la largeur ils seront pris en compte dans la création du polysolid. Bonne Journée. ;;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ;;;Azzeddine EL HACHIMI - 2016 ;;; ;;;This routine allows to create polysolids from sevral lineaire objects ;;; ;;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ (defun c:pls (/ olderr oldcmdecho errexit undox ss1 nr en) (vl-load-com) (defun errexit (s) (restore) ) ;;; (defun undox () ;;; (command "._undo" "_E") ;;; (setvar "cmdecho" oldcmdecho) ;;; (setq *error* olderr) ;;; (princ) ;;; ) ;;; (setq olderr *error* ;;; restore undox ;;; *error* errexit ;;; ) (setq oldcmdecho (getvar "cmdecho")) (setvar "cmdecho" 0) ;;; (command "._UNDO" "_BE") ;;;Données pour creation du polysolide (setq JUST (getstring "\nChoisir la justification du polysolide <Gauche/Centre/Droite>:\n" ) ) (initget (+ 1 4)) (setq haut (getreal "\nEntre la hauteur du polysolide :\n ")) (initget (+ 1 4)) (setq larg (getreal "\nEntre la largeur du polysolide :\n ")) (setvar "PSOLHEIGHT" haut) (setvar "PSOLWIDTH" larg) (if (setq ss1 (ssget '((-4 . "<OR") (0 . "*POLYLINE") (0 . "CIRCLE") (0 . "ARC") (0 . "ELLIPSE") (0 . "SPLINE") (0 . "LINE") (-4 . "OR>") ) ) ) (progn (setq nr 0) (setq en (ssname ss1 nr)) (while en (setq ent (entget en)) (setq couch (cdr (assoc 8 ent))) (setvar "clayer" couch) ;;; (command "zoom" "_o" en "") (Command "_Polysolid" "j" JUST "_object" en) (setq nr (1+ nr)) (setq en (ssname ss1 nr)) ) ) ) ;;; (restore) )
  13. 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)) ) )
  14. voir la rubrique "get the code" du site www.Cadalyst.com
×
×
  • 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é