Toute l’activité
- Dernière heure
-
erreur: type d'argument incorrect: numberp: nil
didier a répondu à un(e) sujet de Iu63 dans Débuter en LISP
Bonjour @Iu63 Pas simple de lire votre message, car vous n'utilisez pas les balises de code, et en plus quand c'est aussi long, il vaut mieux mettre le fichier lsp en pièce jointe. Nous n'avons pas le fichier "dcl" donc pour faire les essais, c'est mort. On en est réduit à faire des hypothèses, la première est sur la transformation des "string" en numérique. Interrogez toutes vos variables une par une pour voir laquelle est restée en string (chaine de caractères), voire passée ou restée à nil. Amicalement -
AD90 a rejoint la communauté
-
Aubin a rejoint la communauté
- Aujourd’hui
-
Bonjour à tous, merci à ceux qui gère les modifications de lisp et explique la manière de faire avant tout 🙂 J'utilise actuellement un lisp qui me permet de dessiner un habillage de mur ( coton ) de certaines hauteurs, je peux renseigner la couleur, la hauteur et si c'est une face ou deux. celui ci me crée un calque en fonction de la couleur renseigné ( ex : couleur = bleu1015 / le calque crée est coton bleu1015 ) J'aurais aimé modifié ce lisp de la manière suivante : -> pas de création de calque mais plutôt se mettre au préalable sur un calque déjà crée sur mon gabarit -> j'aurais aimé savoir si un lisp comme sa pouvait être également utilisé pour de l'habillage au sol, différente largeur avec indication en supplément de la référence au milieu de celle ci et sa largeur merci pour l'aide apporté : voici le lisp en question : ;; CotonGratte.lsp : préparation et dessin des multilignes pour représenter des faces de coton gratté. ;; ;; Fichiers et styles nécessaires : ;; 1. Style de texte : ;; nom=CotonGratté, police=romans.shx, ht.=0.18 ;; ;;============================================================================================= ;; Contrôle d'erreur (defun *cgr_err* (s) (if U:F (eval (read U:F)) ) (if (not (member s '("Fonction annulée" "interruption de la console") ) ) (princ (strcat "\nErreur: " s)) ) (if old_tx (setvar "textstyle" old_tx) ) (if old_cycle (setvar "selectioncycling" old_cycle) ) (if old_fd (setvar "filedia" old_fd) ) (if old_cd (setvar "cmddia" old_cd) ) (if old_ce (setvar "cmdecho" old_ce) ) (if old_celtscale (setvar "celtscale" old_celtscale) ) (if old_cecolor (setvar "cecolor" old_cecolor) ) (if old_trans (setvar "cetransparency" old_trans) ) (if old_lay (setvar "clayer" old_lay) ) (if cgr:err (setq *error* cgr:err cgr:err nil ) ) (princ) ) ;;;============================================================================================= (defun c:cgr () (c:CotonGratte) ) ;;;============================================================================================= (defun c:CotonGratte (/ old_fd old_cd old_ce old_tx temp temp_coul temp_lai U:D U:F list_coul tex p1 p2 p3 mlines mlineslist whatnext lstyltxt temp_face old_trans old_lay fillcolor ) (setq cgr:err *error* *error* *cgr_err* old_fd (getvar "filedia") old_cd (getvar "cmddia") old_ce (getvar "cmdecho") old_tx (getvar "textstyle") old_lay (getvar "clayer") old_cycle (getvar "selectioncycling") coul_coton (if (or (= nil coul_coton) (= "" coul_coton)) "" (strcase coul_coton) ) coul_temp "" hauteur_face (if (or (= nil hauteur_face) (= "" hauteur_face)) "" hauteur_face ) df_ou_sf (if (or (= nil df_ou_sf) (= "" df_ou_sf)) "" df_ou_sf ) lstyl (getvar "cmlstyle") temp T temp_lai "" ) (setvar "filedia" 0) (setvar "cmddia" 0) (setvar "cmdecho" 0) (setvar "selectioncycling" 0) (setq U:D "(command-s \"_UNDO\" \"_be\")" U:F "(command-s \"_UNDO\" \"_e\")" ) (eval (read U:D)) (if (= 1 (cgr:definestyles)) ;define text style and charge pointillé line type (progn (if (= 1 (makemlinelist)) (cgr:userchoice) ;main command line ) ) ) (if U:F (eval (read U:F)) ) (if old_tx (setvar "textstyle" old_tx) ) (if old_cycle (setvar "selectioncycling" old_cycle) ) (if old_fd (setvar "filedia" old_fd) ) (if old_cd (setvar "cmddia" old_cd) ) (if old_ce (setvar "cmdecho" old_ce) ) (if old_celtscale (setvar "celtscale" old_celtscale) ) (if old_cecolor (setvar "cecolor" old_cecolor) ) (if old_trans (setvar "cetransparency" old_trans) ) (if old_lay (setvar "clayer" old_lay) ) (if cgr:err (setq *error* cgr:err cgr:err nil ) ) (princ) ) ;;;============================================================================================= (defun cgr:definestyles () (if (not (tblsearch "STYLE" "CotonG")) (progn (if (vl-cmdf "_.-style" "CotonG" "romans.shx" "0.18" "1" "0" "" "" "") (setq whatnext 1) (setq whatnext 0) ) (setvar "textstyle" "CotonG") ) (progn (setvar "textstyle" "CotonG") (setq whatnext 1) ) ) ;(if (not (tblsearch "LTYPE" "POINTILLE")) (if (not (tblsearch "LTYPE" "POINTILLE")) (progn (if (vl-cmdf ".-typeligne" "ch" "POINTILLE" "acad.lin" "") (setq whatnext 1) (setq whatnext 0) ) ) (setq whatnext 1) ) ) ;;;============================================================================================ ;; make list of mlinestyles (defun makemlinelist () (setq mlines (dictsearch (namedobjdict) "ACAD_MLINESTYLE")) (foreach x mlines (if (= 3 (car x)) (setq mlineslist (cons (cdr x) mlineslist)) ) ) ;;; (if (setq mlineslist (reverse mlineslist)) (setq whatnext 1) ;;; ) ) ;;;============================================================================================= (defun cgr:userchoice () (setq p1 T) (while (/= nil p1) (initget (+ 1024 128) "Paramètres") (setq p1 (getpoint (strcat "\nParamètres courants : Coton gratté = " ;;; lstyl coul_coton " / Simple ou double face = " df_ou_sf "\nSélectionnez un point du départ ou [Paramètres] : " ) ) ) (cond ((or (= p1 "Paramètres") (= nil coul_coton) (= "?" coul_coton) (= "" coul_coton) (= nil hauteur_face) (= "?" hauteur_face) (= "" coul_coton) (= nil df_ou_sf) (= "?" df_ou_sf) (= "" coul_coton) ) (setq ptemp T) (while (/= nil ptemp) (Initget "Couleur Hauteur Nombre Faces") (setq ptemp (getkword (strcat "\nModifier les paramètres [Couleur<" coul_coton ">/Hauteur<" hauteur_face ">/Nombre de Faces<" df_ou_sf ">] : " ) ) ) (cond ((= ptemp "Couleur") (setq coul_temp (strcase (getstring (strcat "\nRéférence de coton <" coul_coton "> : " ) ) ) ) (if (and (/= nil coul_temp) (/= "" coul_temp)) (setq coul_coton coul_temp) ) ) ((= ptemp "Hauteur") (initget "0.25 0.5 1 1.10 1.25 1.5 1.6 1.7 2 2.25 2.5 2.7 3 3.2 3.5 4 4.30 5") (setq temp_lai (getkword (strcat "\nHauteur de face 0.25 / 0.5 / 1 / 1.10 / 1.25 / 1.5 / 1.6 / 1.7 / 2 / 2.25 / 2.5 / 2.7 / 3 / 3.2 / 3.5 / 4 / 4.30 / 5 /<" hauteur_face "> : " ) ) ) (if (and (/= nil temp_lai) (/= "" temp_lai)) (setq hauteur_face temp_lai) ) ) ((or (= ptemp "Nombre") (= ptemp "Faces")) (initget "SF DF") (setq temp_face (getkword (strcat "\nSimple ou double face <" df_ou_sf "> : " ) ) ) (if (and (/= nil temp_face) (/= "" temp_face)) (setq df_ou_sf (strcase temp_face)) ) ) (T (if (and coul_coton hauteur_face) (progn (setq lstyl (strcat "CG_" coul_coton "_X_" hauteur_face) ;;; lstyltxt (strcat coul_coton "x" hauteur_face) ) (if (/= 0 (- (atof hauteur_face) (atoi hauteur_face))) (setq lstyl (strcat "CG_" coul_coton "_X_" (substr hauteur_face 1 1) "-" (substr hauteur_face 3 3) ) ) ) (if (member lstyl mlineslist) (setq ptemp nil) (progn (cgr:mlstylemake lstyl hauteur_face) (if (= 1 whatnext) (setq ptemp nil) ) ) ) ) ) ) ) ) ) (T (setq lstyltxt (strcat coul_coton "x" hauteur_face)) (if (tblsearch "LAYER" (strcat "Coton Gratté " coul_coton) ) (progn (vl-cmdf "_.-layer" "_Thaw" (strcat "Coton Gratté " coul_coton) "_On" (strcat "Coton Gratté " coul_coton) "_Unlock" (strcat "Coton Gratté " coul_coton) "E" (strcat "Coton Gratté " coul_coton) "" ) (setq whatnext 1) ) (progn (if (= nil fillcolor) (setq fillcolor (acad_colordlg 1)) ) (vl-cmdf "_.-layer" "E" (strcat "Coton Gratté " coul_coton) "CO" fillcolor (strcat "Coton Gratté " coul_coton) "" ) (setq whatnext 1) ) ) (if p1 (cgr:draw p1 lstyl lstyltxt) ) ) ) ) ) ;;;============================================================================================= (defun cgr:mlstylemake (newstyle newlarg / datalist xname decal_haut) (alert "Creation de nouveau style. Vous allez choisir un couleur du fond." ) (if (setq fillcolor (acad_colordlg 1)) (progn (setq ;;; fillcolor (cons ;;; 62 ;;; fillcolor ;;; ) decal_haut (cons 49 0.25) datalist '((0 . "MLINESTYLE") (100 . "AcDbMlineStyle") (70 . 1) (3 . "") ;;; (62 . 10) (51 . 1.5708) (52 . 1.5708) (71 . 2) (49 . 1) (62 . 7) (6 . "CONTINUOUS") (49 . 0.0) (62 . 7) (6 . "POINTILLE") ) ;;; datalist (subst fillcolor '(62 . 10) datalist) datalist (subst decal_haut '(49 . 1) datalist) xname (entmakex datalist) ) (dictadd (cdr (assoc -1 (dictsearch (namedobjdict) "ACAD_MLINESTYLE")) ) newstyle xname ) (makemlinelist) ;update list mlines (setq whatnext 1) ) (setq whatnext 0) ) ) ;;;============================================================================================= (defun cgr:draw (p1 mline mlinetxt / p2) ;;; (while (setq p1 (getpoint "\nDu point : ")) (if (setq p2 (getpoint p1 "\nAu point : ")) (progn (cgr:draw2 p1 p2 mline mlinetxt) (if (= df_ou_sf "DF") (cgr:draw2 p2 p1 mline mlinetxt) ) ) ) ;;; ) ) ;;;============================================================================================= (defun cgr:draw2 (p1 p2 mline mlinetxt / p1 p2 old_celtscale old_cecolor) (setq old_celtscale (getvar "celtscale")) (setvar "celtscale" 100) (setq ptemp p1 p1 (polar p1 (+ (angtof "90.0") (angle ptemp p2)) 0.15 ) p2 (polar p2 (+ (angtof "90.0") (angle ptemp p2)) 0.15 ) ) (command "mligne" "_j" "_z" "_st" mline "_s" "1" p1 p2 "") (setvar "celtscale" old_celtscale) (setq old_cecolor (getvar "cecolor") old_trans (getvar "cetransparency") ) (setvar "cecolor" "7") (setvar "cetransparency" 0) (setq ptemp p1 p1 (polar p1 (+ (angtof "90.0") (angle ptemp p2)) 0.125 ) p2 (polar p2 (+ (angtof "90.0") (angle ptemp p2)) 0.125 ) ) (vl-cmdf "_text" "_j" "mc" (polar p1 (angle p1 p2) (/ (distance p1 p2) 2)) (angtos (angle p1 p2) 0 4) mlinetxt ) (setvar "cecolor" old_cecolor) (setvar "cetransparency" old_trans) ) ;;;============================================================================================= ;;CGext.lsp : routine pour calculer les longueurs des lignes utilis‚s ;;pour longueurs de coton (y compris multilignes). ;;=========================================================================== ;; Extraire second partie d'une paire pointé (type dxf) (defun dxf (n ed) (cdr (assoc n ed))) ;;=========================================================================== ;; Construire liste par addition (defun cdr_cg++ (key alist dist) ((lambda (x) (cond (x (subst (cons (car x) (+ dist (cdr x))) x alist)) (t (cons (cons key dist) alist)) ) ) (assoc key alist) ) ) ;;=========================================================================== ;; Trouver le nombre de caractères jusqu'à une clé donnée (defun list_str (string key) (setq cs (strlen string) l1 '() ) (repeat cs (setq l1 (cons (cons (substr string cs 1) cs) l1) cs (1- cs) ) ) (cdr (assoc key l1)) ) ;;============================================================================ ;; Imprimer les résultats dans un fichier sous form de table, 1 par bloc (defun table_print_cg (alist title1 title2 headsub coltab padchr car-form cdr-form / maxlen maxline padstr ) (setq *cpage-disable* nil car-form (cond (car-form) (t '(lambda (x) x)) ) cdr-form (cond (cdr-form) (t '(lambda (x) x)) ) maxlen (mapcar '(lambda (pair) (cons (strlen (car pair)) (strlen (cdr pair)) ) ) (setq alist (mapcar '(lambda (pair) (cons (apply car-form (list (car pair))) (apply cdr-form (list (cdr pair))) ) ) alist ) ) ) maxlen (+ -2 (apply 'max (mapcar 'car maxlen)) (apply 'max (mapcar 'cdr maxlen)) ) maxline 50 ;(max (+ maxlen coltab) (+ (strlen title1 title2) coltab)) padstr (repl_cg padchr 70) ) (cprinc-init_cg) (cprinc_cg (strcat title1 " " (ctab_cg (cons title1 title2) maxline (repl_cg " " 70) ) " " title2 ) ) (cprinc_cg (repl_cg headsub (+ maxline 2))) (mapcar '(lambda (pair) (cprinc_cg (strcat (car pair) " " (ctab_cg pair maxline padstr) " " (cdr pair) ) ) ) alist ) ) (defun repl_cg (char len / res) (apply 'strcat (repeat len (setq res (cons char res)))) ) (defun ctab_cg (pair ctabmax padstr) (substr padstr 1 (- ctabmax (strlen (car pair) (cdr pair)))) ) (defun cprinc-init_cg () (setq *console-lines* (cond (*console-lines*) (t 25) ) *cprinc-msg* (cond (*cprinc-msg*) (t "--- Press any key ---") ) *cprinc-rubout* (cond ((or textpage *clear-screen*) "") (t (strcat "\r" (repl_cg " " (strlen *cprinc-msg*)) "\r")) ) *cprinc-line* -1 ) (cond ((= nil fichier) (cond (textpage (textpage)) (*clear-screen* (*clear-screen*)) (t (textscr) (terpri)) ) ) ) ) (defun cprinc-page_cg () (princ *cprinc-msg*) (grread) (cond ((= nil fichier) (cond (textpage (textpage)) (*clear-screen* (*clear-screen*)) (t (textscr) (terpri)) ) ) ) (princ *cprinc-rubout*) (setq *cprinc-line* 0) ) (defun cprinc_cg (s) (cond (*cpage-disable*) ((not *cprinc-line*) (cprinc-init_cg) ) ((eq (setq *cprinc-line* (1+ *cprinc-line*)) (1- *console-lines*) ) (cprinc-page_cg) ) ) (cond (fichier (write-line s fichier)) (t (write-line s)) ) ) ;;=========================================================================== (defun c:cgext (/ ent_grp ct en1 ct2 p1 p2 d_list temp_list ans fichier titre comment ) (setq cgr:err *error* *error* *cgr_err* d_list3 nil d_list2 nil ) ;; Selectionner (if ;;; (setq ent_grp (ssget "X" '((0 . "MLINE") (2 . "CG_*")))) (setq ent_grp (ssget '((0 . "MLINE") (2 . "CG_*")))) ;; Pour chaque multiligne, calculer la distance entre chacun des sommets ;; et rajouter ce distance, avec le nom de style, dans une liste. (progn ;; Imprimer ou non les r‚sultats dans une fichier (initget 1 "Ecran Fichier") (setq ans (getkword "Impression Ecran/Fichier : ")) (cond ((= ans "Fichier") (setq fichier ;;AJ - WARNING: The DWGNAME sysvar has changed. (getstring T (strcat "\nNom de fichier <" (getvar "dwgprefix")(getvar "dwgname") "> : ") ) ) (if (or (= "" fichier) (= nil fichier)) ;;AJ - WARNING: The DWGNAME sysvar has changed. (setq fichier (open (strcat (getvar "dwgprefix") (getvar "dwgname") ".coton.txt" ) "w" ) ) (setq fichier (open (strcat (getvar "dwgprefix") fichier ".txt") "w")) ) (setq titre (getstring t "\nAffaire : ") comment (getstring t "\nZone : ") ) (write-line (strcat "Affaire : " titre) fichier) (write-line (strcat "Zone : " comment) fichier) (write-line (strcat "Extraction : " (getvar "dwgprefix") (getvar "dwgname") ) fichier ) (write-line (strcat "Dessinateur : " (getvar "loginname")) fichier ) (write-line (strcat "Date : " (menucmd "M=$(edtime,$(getvar,date),DDDD DD MONTH YYYY - H:MM)" ) ) fichier ) (write-line "Version : CotonGratte.lsp 27.01.2014" fichier) (write-line "" fichier) ) (T nil) ) (setq ct 0) (repeat (sslength ent_grp) (princ ".") (setq en1 (entget (ssname ent_grp ct))) (if (= "MLINE" (dxf 0 en1)) (progn (setq ct2 0) (while (< ct2 (length en1)) (if p2 (setq p1 p2) ) (setq pair (nth ct2 en1)) (if (= 11 (car pair)) (progn (if (not p1) (setq p1 (cdr pair)) (setq p2 (cdr pair)) ) (if p2 (setq d_list (cdr_cg++ (dxf 2 en1) d_list (fix (+ 0.5 (distance p1 p2)))) ) ) ) ) (setq ct2 (1+ ct2)) ) ;fin while (setq p1 nil p2 nil ) ) ;fin progn ) ;fin if (setq ct (1+ ct)) ) ;fin repeat (princ "Terminé.") (if (= nil fichier) (princ "\nRésultats:\n") ) ;;Trier la liste des distances totaux (setq temp_list (acad_strlsort (mapcar 'car d_list)) d_list2 (mapcar '(lambda (x) (assoc x d_list) ) temp_list ) temp_list nil ;; Section … garder; cr‚er liste des coloris de coton seules ; (mapcar '(lambda (x) ; (setq item (substr (car x) 1 (1- (list_str (car x) "_")))) ; (if (= nil (member item d_list3)) ; (progn (setq d_list3 (cons item d_list3)) (print d_list3)) ; ) ; ) ; (reverse d_list2) ; ) ;; Imprimer la liste, une table par coloris ; mettre la liste en sens inverse pour garantir le bon ; fonctionnement de wcmatch d_list2 (reverse d_list2) ct3 (length d_list2) ) ; Tant que la liste n'est pas vide... (while (>= ct3 1) (setq en_tete (car (nth 0 d_list2)) en_tete (substr en_tete 1 (1- (list_str en_tete "_"))) ) ; ...pour chaque pair qui correspond au coloris... (while (and (>= ct3 1) (wcmatch (car (nth 0 d_list2)) (strcat en_tete "*")) ) (setq temp_list (cons (nth 0 d_list2) temp_list) ; ...tronquer la liste au fur et … mesure... d_list2 (cdr d_list2) ct3 (1- ct3) ) ) (if (= nil fichier) (terpri) ) ; ...imprimer la liste (table_print_cg temp_list en_tete "Longueur" "-" 8 " " nil 'rtos) (if fichier (write-line "" fichier) ) (setq temp_list nil) ) (if fichier (close fichier) ) ) (alert "Pas de multiligne à compter") ) (setq ent_grp nil *error* cgr:err cgr:err nil ) (princ) ) (defun c:cgx () (c:cgext) ) (princ "\nCotonGrattév2.lsp chargé. Tapez CGR pour dessiner ou CGX pour extraire les longueurs de coton gratté." ) (princ)
-
Espace de travail "AutoCAD classique"
philsogood a répondu à un(e) sujet de (gile) dans AutoCAD 2015
merci @(gile), 10 ans plus tard ton post est toujours d'actualité (et la vidéo est toujours dispo!!) j'ai du migrer vers une version 2023 sur un poste client et j'ai dû refaire tout ce paramétrage car il n'était aps possibole de faire passer ma config V2025 vers la V2023 plus l'emplacement de chargement des lisp, des DWT, le AutoCAD.pgp, la taille du rétibule, j'en passe et des meilleures... un vrai plaisir que de travailler sur une nouvelle version Phil - Hier
-
Bonsoir @didier, comment sur une page de garde, avoir par des champs dynamique l'ensemble des noms des onglets pour faire un recap de ce que la personne va lire ensuite ? Par avance, merci, bonne soirée
-
Bonsoir, comment sur une page de garde, avoir par des champs dynamique l'ensemble des noms des onglets pour faire un recap de ce que la personne va lire ensuite ? PAr avance, merci, bonne soirée
-
Bonjour, Je suis en train de réaliser un programme qui me permet de calculer une hauteur spécifique en fonction de plein de paramètre. J'ai fais en parallèle de cela une boite de dialogue. Cependant, j'ai l'impression que la fonction me permettant d'afficher la hauteur marche de manière aléatoire, c'est à dire qu'elle me renvoie "erreur: type d'argument incorrect: numberp: nil" 1 fois sur 5 et je n'arrive pas à voir l'origine du problème. Voici le lisp : ; -------------------------------------------------------------------------------------------------- (defun c:BoiteVa () (setq dcl_id (load_dialog "boiteneo.DCL")) ;; Charger le fichier DCL (if (new_dialog "boite1" dcl_id) ;; Ouvrir la boîte de dialogue (progn ;; Variables pour stocker les choix (setq choixFE "") ;; Initialisation de choixFE (setq choix "") ;; Initialisation de choix ;; Choix de la sélection Demi-feuillet ou Enrobage (visible ou non visible) (action_tile "btn_demi_feuillet" "(setq choixFE \"Demi feuillet\") (mode_tile \"enrobage\" 1) (princ (strcat \"\\nChoix sélectionné : \" choixFE)) (setq dernier_choixFE choixFE)" ) (action_tile "btn_enrobage" "(setq choixFE \"Enrobage\") (mode_tile \"enrobage\" 0) (princ (strcat \"\\nChoix sélectionné : \" choixFE)) (setq dernier_choixFE choixFE)" ) ;; Actions des boutons radio pour les vues possibles (action_tile "a" "(setq choix \"Coupe Longitudinale\")") (action_tile "b" "(setq choix \"Coupe Transversale\")") (action_tile "c" "(setq choix \"Vue en Plan\")") ;; Action du bouton OK pour récupérer les valeurs (action_tile "accept" (strcat "(setq ep_feuillet (/ (atof (get_tile \"ep_feuillet\")) 1000)) " ;; Conversion en mètres "(setq ep_frette (/ (atof (get_tile \"ep_frette\")) 1000)) " ;; Conversion en mètres "(setq nb_feuillet (atoi (get_tile \"nb_feuillet\"))) " ;; Récupérer le nombre de feuillets "(setq valeur_a (/ (atof (get_tile \"valeur_a\")) 1000)) " ;; Conversion en mètres "(setq valeur_b (/ (atof (get_tile \"valeur_b\")) 1000)) " ;; Conversion en mètres ;; Récupérer la valeur d'enrobage seulement si le choix est "Enrobage" "(if (equal choixFE \"Enrobage\") " " (setq enrobage (/ (atof (get_tile \"enrobage\")) 1000)) " " (setq enrobage nil)) " ;; Sauvegarder les valeurs pour les reprendre plus tard "(setq dernier_ep_feuillet (* ep_feuillet 1000)) " "(setq dernier_ep_frette (* ep_frette 1000)) " "(setq dernier_nb_feuillet nb_feuillet) " "(setq dernier_valeur_a (* valeur_a 1000)) " "(setq dernier_valeur_b (* valeur_b 1000)) " "(if (equal choixFE \"Enrobage\") (setq dernier_enrobage (* enrobage 1000))) " "(done_dialog)" ) ) ;; Action du bouton Reprendre les dernières valeurs (action_tile "recuperer_valeurs" "(progn (set_tile \"ep_feuillet\" (rtos dernier_ep_feuillet 2 3)) ; Remplir la case avec l'épaisseur du feuillet (set_tile \"ep_frette\" (rtos dernier_ep_frette 2 3)) ; Remplir la case avec l'épaisseur de la frette (set_tile \"nb_feuillet\" (itoa dernier_nb_feuillet)) ; Remplir la case avec le nombre de feuillets (set_tile \"valeur_a\" (rtos dernier_valeur_a 2 3)) ; Remplir la case avec la valeur de a (set_tile \"valeur_b\" (rtos dernier_valeur_b 2 3)) ; Remplir la case avec la valeur de b ;; Récupérer le dernier choix pour la sélection de feuillet (if (equal dernier_choixFE \"Demi feuillet\") (progn (set_tile \"btn_demi_feuillet\" \"1\") ;; Sélectionner le bouton Demi-feuillet (mode_tile \"enrobage\" 1) ;; Afficher le champ d'enrobage ) (progn (set_tile \"btn_enrobage\" \"1\") ;; Sélectionner le bouton Enrobage (mode_tile \"enrobage\" 0) ;; Masquer le champ d'enrobage (set_tile \"enrobage\" (rtos dernier_enrobage 2 3)) ;; Restaurer la valeur d'enrobage ) ) (princ (strcat \"\\nDernier choix de feuillet restauré : \" dernier_choixFE)) )" ) ;; Réinitialiser les variables si annulation (action_tile "cancel" (strcat "(setq ep_feuillet nil ep_frette nil nb_feuillet nil valeur_a nil valeur_b nil enrobage nil choixFE nil choix nil dernier_choixFE nil dernier_enrobage nil) " ;; Réinitialiser les variables "(done_dialog)" ) ) ;; Démarrer la boîte de dialogue (start_dialog) ) ) ;; Décharger le fichier DCL après utilisation (unload_dialog dcl_id) ;; Vérifier si les valeurs sont valides avant d'afficher les résultats (if (and ep_feuillet ep_frette nb_feuillet valeur_a valeur_b) (progn (princ (strcat "\n[BoiteNeo] Epaisseur du feuillet (m) : " (rtos ep_feuillet 2 3))) (princ (strcat "\n[BoiteNeo] Epaisseur de la frette (m) : " (rtos ep_frette 2 3))) (princ (strcat "\n[BoiteNeo] Nombre de feuillets : " (itoa nb_feuillet))) (princ (strcat "\n[BoiteNeo] Valeur de a (m) : " (rtos valeur_a 2 3))) (princ (strcat "\n[BoiteNeo] Valeur de b (m) : " (rtos valeur_b 2 3))) (if (numberp enrobage) (princ (strcat "\n[BoiteNeo] Valeur d'enrobage (m) : " (rtos enrobage 2 3))) (princ "\n[BoiteNeo] Valeur d'enrobage (m) : N/A") ) ) (princ "\nOpération annulée.") ) ;; Ajouter un message (princ "\nCalcul de la hauteur et des frettes en cours.") (princ) ;; Calcul de nb_frette et hauteurAp et espacement entre frettes (setq nb_frette (+ nb_feuillet 1)) (setq espfret (- (+ ep_feuillet ep_frette))) ;; Condition pour la hauteur car variable en fonction des choixFE (setq hauteurAp (cond ((equal choixFE "Demi feuillet") (+ (* nb_feuillet ep_feuillet) (* nb_frette ep_frette) ep_feuillet)) (t (+ (* nb_feuillet ep_feuillet) (* nb_frette ep_frette) (* enrobage 2)))) ) ;; Afficher les résultats (princ (strcat "\nhauteurAp = " (rtos hauteurAp 2 3))) (princ (strcat "\nnb_frette = " (rtos nb_frette 2 3))) (princ (strcat "\nespfret = " (rtos espfret 2 3))) ;; Afficher le choix sélectionné dans la console (princ (strcat "\nChoix de feuillet : " choixFE)) (princ (strcat "\nChoix : " choix)) ) et voila ce que me renvoie Autocad : Commande: BOITEVA Dernier choix de feuillet restauré : Enrobage [BoiteNeo] Epaisseur du feuillet (m) : .008 [BoiteNeo] Epaisseur de la frette (m) : .004 [BoiteNeo] Nombre de feuillets : 6 [BoiteNeo] Valeur de a (m) : .200 [BoiteNeo] Valeur de b (m) : .100 [BoiteNeo] Valeur d'enrobage (m) : N/A Calcul de la hauteur et des frettes en cours.; erreur: type d'argument incorrect: numberp: nil Mon problème vient surement d'ici : ;; Condition pour la hauteur car vairiable en fonction des choixFE (setq hauteurAp (cond ((equal choixFE "Demi feuillet") (+ (* nb_feuillet ep_feuillet) (* nb_frette ep_frette) ep_feuillet)) (t (+ (* nb_feuillet ep_feuillet) (* nb_frette ep_frette) (* enrobage 2)))) ) car lorsque j'ai pas de condition et que j'ai uniquement (setq hauteurAp (+ (* nb_feuillet ep_feuillet) (* nb_frette ep_frette) ep_feuillet)) Alors tout fonctionne, j'ai essayer aussi en de mettre if au lieu de cond mais pareil j'ai le même problème.
-
@nG! Hebus, il est rappelé que ce forum est destiné aux dessinateurs projeteurs ... retourne chez tes potes les chargés de rien faire !! 😛
-
Qu utilisez vous pour vos métrés ?
ArnaudFla a répondu à un(e) sujet de Marc Blancher dans Devis, métré, estimation, quantitatif
Je suis dans la même recherche. -
elvendetta76 a rejoint la communauté
-
Bonjour tout le Monde, je cherche une vidéo /Procedure me permettant de projeter sur les talus remblai les redans d'accrochage. Ci dessous mon profil type, je souhaite le compléter par les redans -cas remblais- Merci pour à vous .
-
résolu Type de forme dans ltypeshp.shx
PATRICE69 a répondu à un(e) sujet de PATRICE69 dans AutoCAD 2020-2024
Bonjour, Nickel, merci Patrice - La dernière semaine
-
Autocad <-> Python <-> L' infini et au-delà
Fraid a répondu à un(e) sujet de Fraid dans ObjectARX/DBX, C++, .NET, RealDWG
Sinon, imprimer dans Autocad au format png, c'est pas mal aussi. Cordialement -
Autocad <-> Python <-> L' infini et au-delà
Fraid a répondu à un(e) sujet de Fraid dans ObjectARX/DBX, C++, .NET, RealDWG
Ensuite la méthode Export à 3 arguments. Voir l'aide Désolé, je n'ai pas beaucoup de temps. -
Autocad <-> Python <-> L' infini et au-delà
Fraid a répondu à un(e) sujet de Fraid dans ObjectARX/DBX, C++, .NET, RealDWG
Bonjour, Elle vient de la méthode open qui ne fonctionne pas. Je te conseil d'ouvrir le dessin avant d'exécuter du python. Sinon pour remplacer Open def f_open_dwg(dirf:str): AutoCAD = None while not AutoCAD: AutoCAD = Autocad() doc = AutoCAD.ActiveDocument doc.SendCommand(f'(vla-activate (vla-open (vla-get-documents (vlax-get-acad-object)) "{dirf}")) ') A bientôt. -
Autocad <-> Python <-> L' infini et au-delà
nona a répondu à un(e) sujet de Fraid dans ObjectARX/DBX, C++, .NET, RealDWG
j'essaie d'exécuter le code suivant : from pyautocad import Autocad import time def export_dwg_to_image(dwg_path, output_path): acad = Autocad(create_if_not_exists=True) # Lancer AutoCAD si pas ouvert time.sleep(2) # Attendre 2s pour éviter des erreurs de démarrage # Vérifier si AutoCAD est bien lancé if not acad.app: print("Erreur : AutoCAD ne s'est pas ouvert.") return doc = acad.app.Documents.Open(dwg_path) doc.Export(output_path, "PNG") doc.Close() export_dwg_to_image("Plan.dwg", "Plan_img.png") et j'ai obtenu l'erreur suivante : OSError: [WinError -2147221005] Chaîne de classe incorrecte Si quelqu'un sait la source de l'erreur qu'il m'aide svp -
nona a rejoint la communauté
-
Lisp pour ajuster la taille du papier PDF à la taille d'une impression
Mayyllis a répondu à un(e) sujet de Mayyllis dans Routines LISP
Vous auriez un lien à partager pour que je regarde ? merci -
Lisp pour ajuster la taille du papier PDF à la taille d'une impression
Vincent P. a répondu à un(e) sujet de Mayyllis dans Routines LISP
Perso, je passe par Kofax PDF (anciennement nommé Nuance PDF) qui à une fonction de crop. -
Bonjour M.Rimbo, Pouvez vous SVP nous expliquer la démarche pour concevoir les redans avec covadis 18.0 mode expert. Merci d'avance.
-
Bonjour M.Tiphhon , je souhaite également concevoir des profils avec redans mais je ne vois pas cette touche la?? Merci pour votre aide
-
Merci bcq M.Garré
-
Profil type par point ou Mode expert ?
thierry.garré a répondu à un(e) sujet de Humlun dans Autopiste
Bonjour @Boom15, Je vous propose de contacter le support qui saura parfaitement vous aider sur ce problème spécifique -
résolu Type de forme dans ltypeshp.shx
Olivier Eckmann a répondu à un(e) sujet de PATRICE69 dans AutoCAD 2020-2024
Tu as la version non compilée nommée LTYPESHP.SHP (C:\Program Files\Autodesk\AutoCAD 2025\Support) qui contient les définitions suivantes ;;; ;;; ;;; Copyright 2024 Autodesk, Inc. All rights reserved. ;;; ;;; Use of this software is subject to the terms of the Autodesk license ;;; agreement provided at the time of installation or download, or which ;;; otherwise accompanies this software in either electronic or hard copy form. ;;; ;;; ltypeshp.SHP - shapes for complex linetypes ;;; *130,6,TRACK1 014,002,01C,001,01C,0 *131,3,ZIG 012,01E,0 *132,6,BOX 014,020,02C,028,014,0 *133,4,CIRC1 10,1,-040,0 *134,6,BAT 025,10,2,-044,02B,0 *135,14,AMZIGZAG 9,(108,0),(15,56),(30,-112),(15,56),(107,0),(0,0),0 Olivier -
Lisp pour ajuster la taille du papier PDF à la taille d'une impression
Mayyllis a répondu à un(e) sujet de Mayyllis dans Routines LISP
Mon antivirus ne me permet pas de le télécharger 😕 -
PATRICE69 a commencé à suivre Type de forme dans ltypeshp.shx
-
Bonsoir, Je recherche toutes les syntaxes possibles qui sont dans ltypeshp.shx J'ai trouvé CIRC1 - BOX - ZIG -TRACK Y-a-t-il d'autres ? Merci et bonne journée Patrice
-
Impression du nom partiel du fichier (à partir d'un champ DIESEL)
PATRICE69 a répondu à un(e) sujet de PATRICE69 dans AutoCAD 2020-2024
Bonsoir, Je cherche à trouver la position des caractères de \ONEDRIVE\ car avant, c'est le nom de l'utilisateur, longueur qui est variable. Belle journée