-
Compteur de contenus
120 -
Inscription
-
Dernière visite
coxsurf56's Achievements
Newbie (1/14)
0
Réputation sur la communauté
-
C'est a ne rien comprendre, un jour ca marche , le lendemain ca plante c'est bien au lancement de la commande burst dans un lisp que ca plante (command-s "inserer" "bardage2018" "0,0" "1" "1" "0") (setq bigtest 10) (sssetfirst nil (ssadd (entlast))) (c:burst) (setq bigtest 11) la valeur bigtest reste sur 10 quand j'utilise burst a la main ca marche qu'une fois, après ca plante Commande: BURST Dépassement en négatif de (*pop-error-mode*). Impossible d'appeler (command) à partir de *error* sans appeler préalablement (*push-error-using-command*). Il est recommandé de convertir les appels (command) en (command-s). ;;; ;;; ;;; BURST.LSP ;;; Copyright © 1999-2006 by Autodesk, Inc. ;;; ;;; Your use of this software is governed by the terms and conditions of the ;;; License Agreement you accepted prior to installation of this software. ;;; Please note that pursuant to the License Agreement for this software, ;;; "[c]opying of this computer program or its documentation except as ;;; permitted by this License is copyright infringement under the laws of ;;; your country. If you copy this computer program without permission of ;;; Autodesk, you are violating the law." ;;; ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS. ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC. ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE ;;; UNINTERRUPTED OR ERROR FREE. ;;; ;;; Use, duplication, or disclosure by the U.S. Government is subject to ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) ;;; (Rights in Technical Data and Computer Software), as applicable. ;;; ;;; ---------------------------------------------------------------- (Defun C:BURST (/ item bitset bump att-text lastent burst-one burst BCNT BLAYER BCOLOR ELAST BLTYPE ETYPE PSFLAG ENAME ) ;----------------------------------------------------- ; Item from association list ;----------------------------------------------------- (Defun ITEM (N E) (CDR (Assoc N E))) ;----------------------------------------------------- ; Error Handler ;----------------------------------------------------- ;(acet-error-init ; (list ; (list "cmdecho" 0 ; "highlight" 1 ; ) ; T ;flag. True means use undo for error clean up. ; );list ;);acet-error-init ;----------------------------------------------------- ; BIT SET ;----------------------------------------------------- (Defun BITSET (A B) (= (Boole 1 A B) B)) ;----------------------------------------------------- ; BUMP ;----------------------------------------------------- (Setq bcnt 0) (Defun bump (prmpt) (Princ (Nth bcnt '("\r-" "\r\\" "\r|" "\r/")) ) (Setq bcnt (Rem (1+ bcnt) 4)) ) ;----------------------------------------------------- ; Convert Attribute Entity to Text Entity or MText Entity ;----------------------------------------------------- (Defun ATT-TEXT (AENT / ANAME TENT ILIST INUM) (setq ANAME (cdr (assoc -1 AENT))) (if (_MATTS_UTIL ANAME) (progn ; Multiple Line Text Attributes (MATTS) - ; make an MTEXT entity from the MATTS data (_MATTS_UTIL ANAME 1) ) (progn ; else -Single line attribute conversion (Setq TENT '((0 . "TEXT"))) (ForEach INUM '(8 6 38 39 62 67 210 10 40 1 50 41 51 7 71 72 73 11 74 ) (If (Setq ILIST (Assoc INUM AENT)) (Setq TENT (Cons ILIST TENT)) ) ) (Setq tent (Subst (Cons 73 (item 74 aent)) (Assoc 74 tent) tent ) ) (EntMake (Reverse TENT)) ) ) ) ;----------------------------------------------------- ; Find True last entity ;----------------------------------------------------- (Defun LASTENT (/ E0 EN) (Setq E0 (EntLast)) (While (Setq EN (EntNext E0)) (Setq E0 EN) ) E0 ) ;----------------------------------------------------- ; See if a block is explodable. Return T if it is, ; otherwise return nil ;----------------------------------------------------- (Defun EXPLODABLE (BNAME / B expld) (vl-load-com) (setq BLOCKS (vla-get-blocks (vla-get-ActiveDocument (vlax-get-acad-object))) ) (vlax-for B BLOCKS (if (and (= :vlax-false (vla-get-islayout B)) (= (strcase (vla-get-name B)) (strcase BNAME))) (setq expld (= :vlax-true (vla-get-explodable B))) ) ) expld ) ;----------------------------------------------------- ; Burst one entity ;----------------------------------------------------- (Defun BURST-ONE (BNAME / BENT ANAME ENT ATYPE AENT AGAIN ENAME ENT BBLOCK SS-COLOR SS-LAYER SS-LTYPE mirror ss-mirror mlast) (Setq BENT (EntGet BNAME) BLAYER (ITEM 8 BENT) BCOLOR (ITEM 62 BENT) BBLOCK (ITEM 2 BENT) BCOLOR (Cond ((> BCOLOR 0) BCOLOR) ((= BCOLOR 0) "BYBLOCK") ("BYLAYER") ) BLTYPE (Cond ((ITEM 6 BENT)) ("BYLAYER")) ) (Setq ELAST (LASTENT)) (If (and (EXPLODABLE BBLOCK) (= 1 (ITEM 66 BENT))) (Progn (Setq ANAME BNAME) (While (Setq ANAME (EntNext ANAME) AENT (EntGet ANAME) ATYPE (ITEM 0 AENT) AGAIN (= "ATTRIB" ATYPE) ) (bump "Converting attributes") (ATT-TEXT AENT) ) ) ) (Progn (bump "Exploding block") (acet-explode BNAME) ;(command "_.explode" bname) ) (Setq SS-LAYER (SsAdd) SS-COLOR (SsAdd) SS-LTYPE (SsAdd) ENAME ELAST ) (While (Setq ENAME (EntNext ENAME)) (bump "Gathering pieces") (Setq ENT (EntGet ENAME) ETYPE (ITEM 0 ENT) ) (If (= "ATTDEF" ETYPE) (Progn (If (BITSET (ITEM 70 ENT) 2) (ATT-TEXT ENT) ) (EntDel ENAME) ) (Progn (If (= "0" (ITEM 8 ENT)) (SsAdd ENAME SS-LAYER) ) (If (= 0 (ITEM 62 ENT)) (SsAdd ENAME SS-COLOR) ) (If (= "BYBLOCK" (ITEM 6 ENT)) (SsAdd ENAME SS-LTYPE) ) ) ) ) (If (> (SsLength SS-LAYER) 0) (Progn (bump "Fixing layers") (Command "_.chprop" SS-LAYER "" "_LA" BLAYER "" ) ) ) (If (> (SsLength SS-COLOR) 0) (Progn (bump "Fixing colors") (Command "_.chprop" SS-COLOR "" "_C" BCOLOR "" ) ) ) (If (> (SsLength SS-LTYPE) 0) (Progn (bump "Fixing linetypes") (Command "_.chprop" SS-LTYPE "" "_LT" BLTYPE "" ) ) ) ) ;----------------------------------------------------- ; BURST MAIN ROUTINE ;----------------------------------------------------- (Defun BURST (/ SS1) (setq PSFLAG (if (= 1 (caar (vports))) 1 0 ) ) (Setq SS1 (SsGet (list (cons 0 "INSERT")(cons 67 PSFLAG)))) (If SS1 (Progn (Setvar "highlight" 0) (terpri) (Repeat (SsLength SS1) (Setq ENAME (SsName SS1 0)) (SsDel ENAME SS1) (BURST-ONE ENAME) ) (princ "\n") ) ) ) ;----------------------------------------------------- ; BURST COMMAND ;----------------------------------------------------- (BURST) (acet-error-restore) );end defun (princ)
-
Bonjour je viens de passer de 2013 à 2018, oui oui ,des rapides ici :) dans un lisp la commande burst marche 1 fois , et jamais 2 fois de suite dans le même fichier. ensuite même en tapant en ligne de commande , la commande burst j'ai le message suivant: Commande: BURST Dépassement en négatif de (*pop-error-mode*). Impossible d'appeler (command) à partir de *error* sans appeler préalablement (*push-error-using-command*). Il est recommandé de convertir les appels (command) en (command-s). si je suis la c'est que forcement je commprend pas le message :) une avancée déjà j'ai enregistré en 2018 le bloc et le fichier qui me sert d'essai. dans mon lisp toutes les commandes (command) sont en (command-s) mais ca doit pas être ca le problème pour le moment vu que même la commande burst plante après 1 essai.
-
Désolé pour la réponse tardif, vacances et ratrapage de boulot Probleme RESOLU J'ai réinstallé alors que j'avais le menu express tools et maintenant ca marche. Merci pour les differentes réponses
-
le repertoire y est
-
bonjour, Je viens d'installer 2013 et plus moyen d'utiliser la commande burst j'ai installé express tools charger acettest.fas par la personalisation des menus mais pas moyen d'utilser burst d'ailleur aucune commande du menu deroulant express ne marche
-
mise à zero valeur et pb case vide dcl
coxsurf56 a répondu à un(e) sujet de coxsurf56 dans Débuter en LISP
j'ai une erreur "Erreur: type d'argument incorrect: stringp 0" rien a voir avec la modif j'ai rempli toute les cases et pareil je vais regarder ce we bon we et merci Gile -
mise à zero valeur et pb case vide dcl
coxsurf56 a répondu à un(e) sujet de coxsurf56 dans Débuter en LISP
ok pour error c'est modifé par contre je vois pas comment faire pour initialiser mes variables -
mise à zero valeur et pb case vide dcl
coxsurf56 a répondu à un(e) sujet de coxsurf56 dans Débuter en LISP
Salut, Merci gile en fait je declarais les valeurs qui sont demandées dans le dcl car theoriquement si celle la sont a zero le reste devrait suivre -j' ai tout declarer -ok pour error modifié aussi -j'ai deplacer massif dans le programme principal pas d'incidence par contre forcement maintenant si je ne rentre pas des valeurs dans chaque case du dcl ca plante :"; erreur: une erreur est survenue dans la fonction *erreur*nombre d'arguments trop important" comment on peux faire pour pour autoriser des cellules vide? code dcl inchangé code lisp: ;;; Routine principale (defun c:maa(/ lglg1 chg1 chq1 lglg2 chg2 chq2 lglg3 chg3 chq3 lglg4 chg4 chq4 chga chqa cg1 cg2 cq1 cq2 ch cq cht test2 test3 test4 *error* svgvar resvar choix lglg1da chq1da lglg2da chg2da chq2da lglg3da chg3da chq3da lglg4da chg4da chq4da chgada chqada test test2 test3 test4 mapt s50 s60 s70 s90 s110 v50 v60 v70 v90 v110 f50 f60 f70 f90 f110 fs50 fs60 fs70 fs90 fs110) ;; Sauvegarder les variables AutoCAD (defun svgvar (/ cc cmd osm) (setq cc (getvar "clayer") cmd (getvar "cmdecho") osm (getvar "osmode") ) (setq test 2) ) ;; Restaurer les variables AutoCAD (defun resvar () (setvar "clayer" cc) (setvar "cmdecho" cmd) (setvar "osmode" osm) ) ;; Redéfinition de la fonction *error* (defun *error* () (princ (strcat "\nErreur: " msg)) ; renvoie un msg d'erreur (resvar) ; Restore les variables AutoCAD (princ) ; Quitte silencieusement ) (setq dcl (load_dialog "massifdcl.dcl")) (if (not (new_dialog "massif" dcl)) (exit)) (action_tile "carre" "(setq choix \"carre\")") (action_tile "rond" "(setq choix \"rond\")") (action_tile "tauxd" "(setq tauxda $value)") (action_tile "profd" "(setq profda $value)") (action_tile "lglg1d" "(setq lglg1da $value)") (action_tile "chg1d" "(setq chg1da $value)") (action_tile "chq1d" "(setq chq1da $value)") (action_tile "lglg2d" "(setq lglg2da $value)") (action_tile "chg2d" "(setq chg2da $value)") (action_tile "chq2d" "(setq chq2da $value)") (action_tile "lglg3d" "(setq lglg3da $value)") (action_tile "chg3d" "(setq chg3da $value)") (action_tile "chq3d" "(setq chq3da $value)") (action_tile "lglg4d" "(setq lglg4da $value)") (action_tile "chg4d" "(setq chg4da $value)") (action_tile "chq4d" "(setq chq4da $value)") (action_tile "chgad" "(setq chgada $value)") (action_tile "chqad" "(setq chqada $value)") (action_tile "accept" "(done_dialog 1)") (action_tile "cancel" "(done_dialog 0)") (setq test 1) (setq ok (start_dialog)) (unload_dialog dcl) ;; Début du programme principal (svgvar) (setvar "OSMODE" 0) ;; pas d'accrochage aux objets (command "filedia" "1") (setq taux(atoi tauxda)) (setq prof(atoi profda)) (setq lglg1(atoi lglg1da)) (setq chg1(atoi chg1da)) (setq chq1(atoi chq1da)) (setq lglg2(atoi lglg2da)) (setq chg2(atoi chg2da)) (setq chq2(atoi chq2da)) (setq lglg3(atoi lglg3da)) (setq chg3(atoi chg3da)) (setq lglg4(atoi lglg4da)) (setq chg4(atoi chg4da)) (setq chq4(atoi chq4da)) (setq chga(atoi chgada)) (setq chq3(atoi chq3da)) (setq chqa(atoi chqada)) (setq mabe 2500) (setq test 5) (if (= taux 0) (progn;alors (setq taux 2.5) (setq test2 25)) (progn;sinon (if (= prof 0) (progn;alors (setq prof 2.5) (setq test3 26)) (progn;sinon (setq test4 27) ) ) )) (setvar "OSMODE" osm) (setq mapt(getpoint "\npoint d'insertion : ")) (setvar "OSMODE" 0) (command "scu" mapt "") (if (and (> chg1 0) (> chg2 0)) (progn;alors (setq atest 6) (setq cg1(+(+(*(+(*(/ lglg1 2) chg1 0.01) (*(/ lglg2 2) chg2 0.01)) 1.15)))) (setq cq1(+(+(*(+(*(/ lglg1 2) chq1 0.01) (*(/ lglg2 2) chq2 0.01)) 1.15)))) ) (progn;sinon (setq atest 7) (setq cg1(+(+(+(*(/ lglg1 2) chg1 0.01) (*(/ lglg2 2) chg2 0.01))))) (setq cq1(+(+(+(*(/ lglg1 2) chq1 0.01) (*(/ lglg2 2) chq2 0.01))))) ) ) (if (and (> chg3 0) (> chg4 0)) (progn;alors (setq atest 8) (setq cg2(+(+(*(+(*(/ lglg3 2) chg3 0.01) (*(/ lglg4 2) chg4 0.01)) 1.15)))) (setq cq2(+(+(*(+(*(/ lglg3 2) chq3 0.01) (*(/ lglg4 2) chq4 0.01)) 1.15)))) ) (progn;sinon (setq atest 9) (setq cg2(+(+(+(*(/ lglg3 2) chg3 0.01) (*(/ lglg4 2) chg4 0.01))))) (setq cq2(+(+(+(*(/ lglg3 2) chq3 0.01) (*(/ lglg4 2) chq4 0.01))))) ) ) (setq ch(+ cg1 cg2 chga)) (setq cq(+ cq1 cq2 chqa)) (setq cht(+ ch cq)) (setq test 10) ;surface en cm² (setq s50 5027) (setq s60 7854) (setq s70 9503) (setq s90 15394) (setq s110 22698) ;volume (setq v50 (*(/ s50 10000)prof)) (setq v60 (*(/ s60 10000)prof)) (setq v70 (*(/ s70 10000)prof)) (setq v90 (*(/ s90 10000)prof)) (setq v110 (*(/ s110 10000)prof)) ;F pour prof m (setq F50 (+ ch cq (* v50 2500))) (setq F60 (+ ch cq (* v60 2500))) (setq F70 (+ ch cq (* v70 2500))) (setq F90 (+ ch cq (* v90 2500))) (setq F110 (+ ch cq (* v110 2500))) ;FS pour (setq FS50 (/ F50 S50)) (setq FS60 (/ F50 S60)) (setq FS70 (/ F50 S70)) (setq FS90 (/ F50 S90)) (setq FS110 (/ F50 S110)) (if (<= FS50 taux) (progn;alors (cond ((eq choix "carre") (command "inserer" "MC50C" "0,0" "1" "1" "0")) ((eq choix "rond") (command "inserer" "MC50R" "0,0" "1" "1" "0")) )) (progn;sinon (if (<= FS60 taux) (progn;alors (cond ((eq choix "carre") (command "inserer" "MC60C" "0,0" "1" "1" "0")) ((eq choix "rond") (command "inserer" "MC60R" "0,0" "1" "1" "0")) )) (progn;sinon (if (<= FS70 taux) (progn;alors (cond ((eq choix "carre") (command "inserer" "MC70C" "0,0" "1" "1" "0")) ((eq choix "rond") (command "inserer" "MC70R" "0,0" "1" "1" "0")) )) (progn;sinon (if (<= FS90 taux) (progn;alors (cond ((eq choix "carre") (command "inserer" "MC90C" "0,0" "1" "1" "0")) ((eq choix "rond") (command "inserer" "MC90R" "0,0" "1" "1" "0")) )) (progn;sinon (if (<= FS110 taux) (progn;alors (cond ((eq choix "carre") (command "inserer" "MC110C" "0,0" "1" "1" "0")) ((eq choix "rond") (command "inserer" "MC110R" "0,0" "1" "1" "0")) )) (progn;sinon (command "inserer" "arecalculer" "0,0" "1" "1" "0")) ) )) )) )) )) (resvar) (princ) ) -
bonjour, et bon année 2012 dans un dcl j'ai 16 cases a remplir quand le les remplis toute la premiere dois pas de probleme par contre quand j'en laisse des vides ca plante de plus il ne reinitialise pas les valeurs, il me semble pourtant l'avoir fais donc quand je relance le lisp il y a des restes si quelqu'un peux m'aider a trouver mon erreur le code dcl (nom du fichier :massifdcl.dcl) massif : dialog {label="massif"; :boxed_radio_column {label="Hypothèses";key= "hypo";edit_width=1;fixed_width=true;height=1;fixed_height=false; :row { :radio_button {label="carre";key= "carre";edit_width = 6;} :radio_button {label="rond";key= "rond";edit_width = 6;} } :row { :edit_box {label="taux de travail du sol:2.5";key=tauxd;edit_width = 6;} :edit_box {label="Profondeur en m:2.5";key=profd;edit_width = 6;} }} :boxed_column {label="Lg1";edit_width=1;fixed_width=true;height=1;fixed_height=false; :row { :edit_box {label="Longueur du vide:";key=lglg1d;edit_width = 6;} :edit_box {label="Charge G:";key=chg1d;edit_width = 6;} :edit_box {label="Charge Q:";key=chq1d;edit_width = 6;} }} :boxed_column {label="Lg2";edit_width=1;fixed_width=true;height=1;fixed_height=false; :row { :edit_box {label="Longueur du vide:";key=lglg2d;edit_width = 6;} :edit_box {label="Charge G:";key=chg2d;edit_width = 6;} :edit_box {label="Charge Q:";key=chq2d;edit_width = 6;} }} :boxed_column {label="Lg3";edit_width=1;fixed_width=true;height=1;fixed_height=false; :row { :edit_box {label="Longueur du vide:";key=lglg3d;edit_width = 6;} :edit_box {label="Charge G:";key=chg3d;edit_width = 6;} :edit_box {label="Charge Q:";key=chq3d;edit_width = 6;} }} :boxed_column {label="Lg4";edit_width=1;fixed_width=true;height=1;fixed_height=false; :row { :edit_box {label="Longueur du vide:";key=lglg4d;edit_width = 6;} :edit_box {label="Charge G:";key=chg4d;edit_width = 6;} :edit_box {label="Charge Q:";key=chq4d;edit_width = 6;} }} :boxed_column {label="charge complementaire";edit_width=1;fixed_width=true;height=1;fixed_height=false; :row { :edit_box {label="Charge G:";key=chgad;edit_width = 6;} :edit_box {label="Charge Q:";key=chqad;edit_width = 6;} }} :row {ok_cancel;} :row {errtile;} } le lisp (non du fichier: massif.lsp) (defun massif() (setq dcl (load_dialog "massifdcl.dcl")) (if (not (new_dialog "massif" dcl)) (exit)) (action_tile "carre" "(setq choix \"carre\")") (action_tile "rond" "(setq choix \"rond\")") (action_tile "tauxd" "(setq tauxda $value)") (action_tile "profd" "(setq profda $value)") (action_tile "lglg1d" "(setq lglg1da $value)") (action_tile "chg1d" "(setq chg1da $value)") (action_tile "chq1d" "(setq chq1da $value)") (action_tile "lglg2d" "(setq lglg2da $value)") (action_tile "chg2d" "(setq chg2da $value)") (action_tile "chq2d" "(setq chq2da $value)") (action_tile "lglg3d" "(setq lglg3da $value)") (action_tile "chg3d" "(setq chg3da $value)") (action_tile "chq3d" "(setq chq3da $value)") (action_tile "lglg4d" "(setq lglg4da $value)") (action_tile "chg4d" "(setq chg4da $value)") (action_tile "chq4d" "(setq chq4da $value)") (action_tile "chgad" "(setq chgada $value)") (action_tile "chqad" "(setq chqada $value)") (action_tile "accept" "(done_dialog 1)") (action_tile "cancel" "(done_dialog 0)") (setq test 1) (setq ok (start_dialog)) (unload_dialog dcl) (princ) ) ;;; Routine principale (defun c:maa(/ lglg1 chg1 chq1 lglg2 chg2 chq2 lglg3 chg3 chq3 lglg4 chg4 chq4 chga chqa) ;; Sauvegarder les variables AutoCAD (defun svgvar () (setq cc (getvar "clayer") cmd (getvar "cmdecho") osm (getvar "osmode") ) (setq test 2) ) ;; Restaurer les variables AutoCAD (defun resvar () (setvar "clayer" cc) (setvar "cmdecho" cmd) (setvar "osmode" osm) ) ;; Redéfinition de la fonction *error* (defun *error* () (princ (strcat "\nErreur: " msg)) ; renvoie un msg d'erreur (resvar) ; Restore les variables AutoCAD (princ) ; Quitte silencieusement ) ;; Début du programme principal (svgvar) (setvar "OSMODE" 0) ;; pas d'accrochage aux objets (massif) (command "filedia" "1") ;(setq choix 1) (setq taux(atoi tauxda)) (setq prof(atoi profda)) (setq lglg1(atoi lglg1da)) (setq chg1(atoi chg1da)) (setq chq1(atoi chq1da)) (setq lglg2(atoi lglg2da)) (setq chg2(atoi chg2da)) (setq chq2(atoi chq2da)) (setq lglg3(atoi lglg3da)) (setq chg3(atoi chg3da)) (setq lglg4(atoi lglg4da)) (setq chg4(atoi chg4da)) (setq chq4(atoi chq4da)) (setq chga(atoi chgada)) (setq chq3(atoi chq3da)) (setq chqa(atoi chqada)) (setq mabe 2500);;masse volumique beton (setq test 5) (if (= taux 0) (progn;alors (setq taux 2.5)) (progn;sinon (setq test1 1))) (if (= prof 0) (progn;alors (setq prof 2.5)) (progn;sinon (setq test1 2))) (setq mapt(getpoint "\npoint d'insertion : ")) (command "scu" mapt "") (if (and (> chg1 0) (> chg2 0)) (progn;alors (setq atest 6) (setq cg1(+(+(*(+(*(/ lglg1 2) chg1 0.01) (*(/ lglg2 2) chg2 0.01)) 1.15)))) (setq cq1(+(+(*(+(*(/ lglg1 2) chq1 0.01) (*(/ lglg2 2) chq2 0.01)) 1.15)))) ) (progn;sinon (setq atest 7) (setq cg1(+(+(+(*(/ lglg1 2) chg1 0.01) (*(/ lglg2 2) chg2 0.01))))) (setq cq1(+(+(+(*(/ lglg1 2) chq1 0.01) (*(/ lglg2 2) chq2 0.01))))) ) ) (if (and (> chg3 0) (> chg4 0)) (progn;alors (setq atest 8) (setq cg2(+(+(*(+(*(/ lglg3 2) chg3 0.01) (*(/ lglg4 2) chg4 0.01)) 1.15)))) (setq cq2(+(+(*(+(*(/ lglg3 2) chq3 0.01) (*(/ lglg4 2) chq4 0.01)) 1.15)))) ) (progn;sinon (setq atest 9) (setq cg2(+(+(+(*(/ lglg3 2) chg3 0.01) (*(/ lglg4 2) chg4 0.01))))) (setq cq2(+(+(+(*(/ lglg3 2) chq3 0.01) (*(/ lglg4 2) chq4 0.01))))) ) ) (setq ch(+ cg1 cg2 chga)) (setq cq(+ cq1 cq2 chqa)) (setq cht(+ ch cq)) (setq test 10) ;surface en cm² (setq s50 5027) (setq s60 7854) (setq s70 9503) (setq s90 15394) (setq s110 22698) ;volume (setq v50 (*(/ s50 10000)prof)) (setq v60 (*(/ s60 10000)prof)) (setq v70 (*(/ s70 10000)prof)) (setq v90 (*(/ s90 10000)prof)) (setq v110 (*(/ s110 10000)prof)) ;F pour prof m (setq F50 (+ ch cq (* v50 2500))) (setq F60 (+ ch cq (* v60 2500))) (setq F70 (+ ch cq (* v70 2500))) (setq F90 (+ ch cq (* v90 2500))) (setq F110 (+ ch cq (* v110 2500))) ;FS pour (setq FS50 (/ F50 S50)) (setq FS60 (/ F50 S60)) (setq FS70 (/ F50 S70)) (setq FS90 (/ F50 S90)) (setq FS110 (/ F50 S110)) (if (<= FS50 taux) (progn;alors (cond ((eq choix "carre") (command "inserer" "MC50C" "0,0" "1" "1" "0")) ((eq choix "rond") (command "inserer" "MC50R" "0,0" "1" "1" "0")) )) (progn;sinon (if (<= FS60 taux) (progn;alors (cond ((eq choix "carre") (command "inserer" "MC60C" "0,0" "1" "1" "0")) ((eq choix "rond") (command "inserer" "MC60R" "0,0" "1" "1" "0")) )) (progn;sinon (if (<= FS70 taux) (progn;alors (cond ((eq choix "carre") (command "inserer" "MC70C" "0,0" "1" "1" "0")) ((eq choix "rond") (command "inserer" "MC70R" "0,0" "1" "1" "0")) )) (progn;sinon (if (<= FS90 taux) (progn;alors (cond ((eq choix "carre") (command "inserer" "MC90C" "0,0" "1" "1" "0")) ((eq choix "rond") (command "inserer" "MC90R" "0,0" "1" "1" "0")) )) (progn;sinon (if (<= FS110 taux) (progn;alors (cond ((eq choix "carre") (command "inserer" "MC110C" "0,0" "1" "1" "0")) ((eq choix "rond") (command "inserer" "MC110R" "0,0" "1" "1" "0")) )) (progn;sinon (command "inserer" "arecalculer" "0,0" "1" "1" "0")) ) )) )) )) )) (resvar) (princ) )
-
insertion avec choix dans un bloc dyn
coxsurf56 a répondu à un(e) sujet de coxsurf56 dans Pour aller plus loin en LISP
le lisp va demander des valeurs en fonction de ces valeurs il va faire un calcul, et proposer un rectangle parmis 5-6 sortes j'aimerais que toutes ces propositions soit dans le meme bloc dynamique, pour pouvoir changer le rectangle si la solution proposé ne me convient pas. en gros demande de valeur x: y: x+y=z si z=2 ->rectangle 1 si z=3 ->rectangle 2 si z=4 ->rectangle 3 .... dans un bloc dynamique rectangle il y a rectangle 1 rectangle 2 rectangle 3 .... et moi je doit pouvoir forcer en rectangle 3 quand c'est le 2 qui est proposer sans avoir à l'effacer pour le condition ca devrait le faire c'est la partie choix dans le bloc dynamique qui me bloque c'est plus clair? -
salut est il possible d'inserer un bloc dyn et c'est le lisp qui choisi en fonction d'un test quelle version inserer en fonction de ce test l'interet dans mon cas est que si le choix ne me plait pas je peux choisir une autre version si oui comment faire ca
-
ok pigé je ne connaissait pas car renvoi la 1er valeur d'une liste (donc la valeur x de mon point d'insertion) et card la 2e valeur d'une liste (donc la valeur y de mon point d'insertion) facile et tres pratique merci bien pour polar c'etait un de mes nombreux essais infructueux
-
bonjour, j'essaye de créer un rectangle centré par rapport a un point, avec comme longueur et largeur des dimensions saisi ca doit etre simple , mais j'y arrive pas ci joint mon code (defun c:rc () (setq a(getreal "\largeur : ")) (setq b(getreal "\longueur : ")) (setq a1(/ a 2)) (setq b1(/ b 2)) (setq a2(* -1 a1)) (setq b2(* -1 b1)) (setq pt(getpoint "\npoint d'insertion : ")) (setq pt1 (polar a2 b2 0)) (setq pt2 (polar a2 b1 0)) (setq pt3 (polar a1 b1 0)) (setq pt4 (polar a2 b1 0)) (command "scu" pt "") (command "_pline" pt1 pt2 pt3 pt4) (princ) ) merci d'avance
-
effectivement je tape dans les boites je cherchais a recuperer le nom de la case au lieu de la valeur à l'interieure de cettte case merci Gile RESOLU
-
re bonjour, Pa grave GILE ma connexion est lente (du au pare feu) et plante, d'ou mon double envoi dans lisp je faisais (setq lgnom(getstring "\nnom piece : ")) je suis en train de faire un dcl et j'ai ecris (action_tile "lgnom" "(setq lgnomd1 $value)") ca marche pour des valeurs mais des que j'ai des caracteres ca plante lgnom est à nil alors alors que lgnomd1 est à P1 je n'est certainement pas la bonne syntaxe si quelqu'un peut me donner la bonne syntaxe merci d'avance [Edité le 24/8/2011 par coxsurf56]
