Aller au contenu

Classement

Contenu populaire

Affichage du contenu avec la meilleure réputation le 16/01/2025 dans toutes les zones

  1. Bonjour, Il y a plusieurs soucis dans la macro. Déjà pour définir le point central, c'est \ et non / Ensuite, il vaut mieux faire un select au départ pour pouvoir utiliser la sélection précédente après. Le select permet de sélectionner autant d'objets que l'on veut et c'est seulement après avoir validé que la macro continue alors que la sélection dans la commande réseau demande autant de pause utilisateur \ que de nombre d'objets à sélectionner et ce nombre d'objets peut varier d'une utilisation à l'autre. La macro devrait donc plutôt ressembler à ceci : ^C^C_select;\RESEAUPOLAIRE;p;;\E;2;AN;270;Q;DECOMPOS;d;
    1 point
  2. Salut, En sélectionnant la fenêtre : (setpropertyvalue (car (entsel "\nSélectionnez une fenêtre flottante: ")) "CustomScale" 0.02)
    1 point
  3. Pour optimiser le temps d'exécution, tu peux remplacer les appels à 'command' par des 'entmake[x]'. Pour simplifier le processus, tu pourrais utiliser une lite d'association au lieu de définir une quarantaine de variables (LISP est très bien équipé pour traiter les listes. Un exemple avec les fonctions gc:InsertBlockReference et gc:SetDynPropValue extraites de la bibliothèque Blocks en bas de cette page. (while (< index nb-row) ;; Récupération de la liste courante (setq lst (nth index data-list)) ;; Liste d'association des noms de propriété dynamique aux valeurs récupérées (setq pairs (mapcar '(lambda (var index) (cons (vl-symbol-name var) (vlax-variant-value (nth index lst)))) '(ID A B phi H D C Nb N1 N1_larg N1_long S1 L1 fL1 fL2 N2 S2 E2 L2 fX2 fY2 N31 N312 S31 E31 L31 fY31 N32 N322 S32 E32 L32 fX32 V_béton P_tot Ratio pos_X pos_Y visi_sch) '(6 7 8 9 10 11 12 15 16 17 18 19 20 21 22 24 25 26 27 28 29 32 33 34 35 36 37 40 41 42 43 44 45 50 51 52 61 62 63) ) ) ;; Conversion explicite des coordonnées en réel (setq pos_X (if (numberp pos_X) pos_X (atof pos_X))) (setq pos_Y (if (numberp pos_Y) pos_Y (atof pos_Y))) ;; insertion du poteau (setq insertion-point (list pos_X pos_Y 0)) (if (setq ent (gc:InsertBlockReference "# ptx 2 rangs - Barre droite" insertion-point 0. 1.)) (foreach pair (reverse (cdddr (reverse pairs))) (gc:SetDynPropValue ent (strcat "AcDbDynBlockProperty" (car pair)) (cdr pair)) ) ) ;; insertion du schéma (setq insertion-point (list (+ 454 pos_X) (- pos_Y 17) 0)) (if (setq ent (gc:InsertBlockReference "# Schéma ptx Y2" insertion-point 0. 1.)) ;; Association des variables aux valeurs récupérées (progn (setq pairs (reverse pairs)) (foreach pair (list (car pairs) (cadr pairs) (caddr pairs)) (gc:SetDynPropValue ent (strcat "AcDbDynBlockProperty" (car pair)) (cdr pair)) ) ) ) ;; Incrémentation de l'index pour passer à l'itération suivante (setq index (1+ index)) )
    1 point
  4. Bonjour à Tous, La mise à jour est faite. Merci Brice. Je me suis créé un petit raccourci pour récupérer la mise à jour : Uniquement le .EXE à remplacer (ça suffit) L'ensemble SCANDXF : https://app.box.com/s/15d6fd514e7599864834 Christian
    1 point
×
×
  • 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é