Nicky Posté(e) le 12 octobre Posté(e) le 12 octobre Bonjour a toutes et tous, J'ai un petit problème avec le code ci dessous : La routine permet en choisissant un multiple d'altitude (0.5/1/2/5/10/25/50/100 mètres) de placer dans un (nouveau) calque les courbes de niveau (situées dans un calque originel) répondant au critère. Cependant, depuis peu, certaine courbe ne se place pas dans le nouveau calque alors que le critère est respecté (les altitudes affichées dans les propriétés sont juste). Il y a peut être une erreur dans le code, ou une variable a modifier (précision ou arrondi proche par exemple..) ? Merci, (defun c:MAJCL ( ;/ elev ss i el ) (vl-load-com) (setq Valer (getvar "luprec")) (setvar "luprec" 0) (initget 1 "0.5 1 2 5 10 25 50 100") (setq elev (getkword "\nSelect String for filter [0.5/1/2/5/10/25/50/100]: " ) ) (setq LayerCL (car (entsel "\nClick on a layer with contour lines to modify : " ) ) ) (setq EntLay (entget LayerCL)) (setq LAY (cdr (assoc 8 EntLay))) (setq nomcalc (strcat "_NB-MajorLine_" elev)) (initget 1 "Blue Green GRey Pink Red White Yellow Other") (setq ColorCalc (getkword "\nSelect a color for the layer [Blue/Green/GRey/Pink/Red/White/Yellow/Other]: " ) ) (cond ((= ColorCalc "Blue") (setq Color 141) ) ((= ColorCalc "Green") (setq Color 91) ) ((= ColorCalc "GRey") (setq Color 253) ) ((= ColorCalc "Pink") (setq Color 211) ) ((= ColorCalc "Red") (setq Color 241) ) ((= ColorCalc "White") (setq Color 7) ) ((= ColorCalc "Yellow") (setq Color 51) ) ((= ColorCalc "Other") (setq Color 121) ) ) (if (not (tblsearch "LAYER" nomcalc)) (entmake (list (cons 0 "LAYER") (cons 100 "AcDbSymbolTableRecord") (cons 100 "AcDbLayerTableRecord") (cons 2 nomcalc) (cons 70 0) (cons 62 Color) (cons 370 -3) (cons 6 "Continuous") ) ) ) (if (setq ss (ssget "_X" (list (cons 0 "LWPOLYLINE") (cons 8 LAY)) ) ) (repeat (setq i (sslength ss)) (setq el (cdr (assoc 38 (entget (setq e (ssname ss (setq i (1- i)))))) ) ) (if (equal (distof (rtos (rem el (distof elev)) 2 2)) 0.0 1e-6) ; at elevation that is a multiple of elev? (vla-put-Layer (vlax-ename->vla-object e) nomcalc) ;(command "_.chprop" e "" "_layer" nomcalc "") ) ; if ) ; repeat ) ; if (setvar "luprec" Valer) (princ) )
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant