lecrabe Posté(e) le 2 avril Posté(e) le 2 avril Hello J ai cherche dans mon stock mais je n ai pas trouve et mes autres recherches ne sont pas satisfaisantes ! Voir titre ... Mon Idee : 1) Selection classique des Blocs (statiques ET Dynamiques !) et Points 2) Selection classique des Objets lineaires (LINE, ARC, PLINE 2D/3D splinees/courbees ou pas) 3) Question: Distance FUZZ en fait Rayon de recherche - Valeur par defaut = 0.01 Ensuite on va analyser les points de Depart ET de Fin des Objets lineaires (Selection 2) pour trouver / selectionner les Eventuels Blocs / Points de la Selection 1 dans le Rayon de recherche FUZZ ... A LA FIN, on garde en selection les Objets lineaires qui correspondent et C TOUT ! Dans l attente de vos idees lumineuses ou routines magiques ... Au fait si on tombe sur une PLine 2D/3D close / fermee alors SVP on ne retient QUE le Point de Depart pour analyse ! Merci, Bye, lecrabe Autodesk Expert Elite Team
Luna Posté(e) le 2 avril Posté(e) le 2 avril Coucou @lecrabe, Il faut uniquement garder en sélection les objets linéaires et non les blocs/points aux extrémités de ces objets ? Quel est le but de la routine précisément ? Est-ce possible d'avoir un extrait de .dwg pour effectuer les tests ? Je vais voir ce qu'il est possible de faire en fonction de mes dispos 🙂 Bisous, Luna
lecrabe Posté(e) le 2 avril Auteur Posté(e) le 2 avril Hello OUI c pour trouver les Objets lineaires (au niveau du Depart / Fin) qui sont (ou presque parfaitement) aux XYZ des Blocs / Points OOPS / SORRY : Pas d AutoCAD et PC pour le moment pour t envoyer un DWG ! Bye, lecrabe Autodesk Expert Elite Team
Luna Posté(e) le 2 avril Posté(e) le 2 avril Dans ce cas, je ne comprends pas bien pourquoi analyser les extrémités des objets linéaires si dans tous les cas, les blocs/points aux extrémités ne sont pas considérés et qu'on ne garde que les objets linéaires dans la sélection finale...En quoi consiste cette "analyse" ? De plus, si je comprends bien les blocs/points se trouvant aux extrémités des objets linéaires doivent appartenir au jeu de sélection initial, donc imaginons que mon jeu de sélection comporte 8 blocs, appartenant tous à une seule et même polyligne 3D. Le programme tel que tu le décris va tourner 8 fois, sélectionner 8 fois la même polyligne (à partir de coordonnées différentes), analyser 8 fois la polyligne et renvoyer strictement les mêmes résultats (quels "résultats" du coup ?) car les blocs aux extrémités n'auront pas bougés pour au final ne garder en sélection que l'unique polyligne 3D, ne donnant aucun renseignement sur "l'analyse" réalisée (8 fois) sur les 2 extrémités de cette polyligne et en ayant mouliné 7 fois de trop >w< Ou alors j'ai le cerveau ramolli et je n'ai pas bien saisie le déroulement du programme souhaité et le but voulu... sowwy.. Bisous, Luna
didier Posté(e) le 2 avril Posté(e) le 2 avril Bonjour @Luna Ce que je comprends de la demande de @lecrabe : Présence de lignes, polylignes 2D et 3D, arcs. La demande est de créer un jeu de sélection de ceux qui ont un point ou un bloc (en prenant le fuzz en compte). Certains ont un "point" ou un bloc à une extrémité, d'autres non. Ce que je ne sais pas, c'est si l'entité a deux points, début et fin qui sont dans le fuzz, qu'en faire ? Pas vraiment compliqué, mais à préciser avant de se mettre au travail. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
lecrabe Posté(e) le 2 avril Auteur Posté(e) le 2 avril Hello @didier et @Luna OUI Didier Exemple d une Polyligne 2D/3D qui revient presque au point de départ : si 2 Blocs et/ou Points à chaque extrémité, alors on sélectionne LA Polyligne Si N linéaires au départ / arrivée sur un Bloc / Point, on sélectionne les N linéaires... Merci, Bye, lecrabe Autodesk Expert Elite Team
lecrabe Posté(e) le 2 avril Auteur Posté(e) le 2 avril Hello @Luna Je pensais avoir été "clair" ? SVP je veux détecter / selectionner les Linéaires qui ont des Blocs (Statiques ET Dynamiques) / Points aux EXTREMITES SEULEMENT (ou très proches) ... Et c tout ! Pourquoi : car parfois CES Linéaires ne sont pas sur le BON Calque par exemple ! Avec la sélection obtenue, je vais forcer Une Propriété NON UTILISEE (couleur ou type ou epaisseur) et étudier / modifier après si necessaire UNE PAR UNE Si tu as un Algo de compétition, tu n hésites pas ... Car en effet surtout dans le cas de N linéaires partant / arrivant sur un Bloc / Point, il faudrait ne pas faire N fois l analyse !? Bye, lecrabe Autodesk Expert Elite Team
lecrabe Posté(e) le 2 avril Auteur Posté(e) le 2 avril Hello @didier @Luna Idee : Peut être marquer le Linéaire avec une XDATA temporairement si elle correspond aux critères pour ne pas la traiter N fois !? Bye, lecrabe Autodesk Expert Elite Team
bonuscad Posté(e) le 2 avril Posté(e) le 2 avril Très rapidement, je testerais un truc du genre... (defun c:test ( / js ss dfzz n ent pt_start pt_end) (while (null (setq js (ssget (list '(0 . "LINE,ARC,*POLYLINE") '(-4 . "<NOT") '(-4 . "&") '(70 . 112) '(-4 . "NOT>") (cons 67 (if (eq (getvar "CVPORT") 1) 1 0)) (cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model")) ) ) ) ) ) (setq ss (ssadd)) (if (not dfzz) (setq dfzz 1E-02)) (repeat (setq n (sslength js)) (setq ent (ssname js (setq n (1- n))) pt_start (vlax-curve-getStartPoint ent) pt_end (vlax-curve-getEndPoint ent) ) (cond ((and (ssget "_X" (list '(0 . "POINT,INSERT") (cons 67 (if (eq (getvar "CVPORT") 1) 1 0)) (cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model")) '(-4 . "<AND") '(-4 . ">=,>=,>=") (cons 10 (mapcar '- pt_start (list dfzz dfzz dfzz))) '(-4 . "<=,<=,<=") (cons 10 (mapcar '+ pt_start (list dfzz dfzz dfzz))) '(-4 . "AND>") ) ) (ssget "_X" (list '(0 . "POINT,INSERT") (cons 67 (if (eq (getvar "CVPORT") 1) 1 0)) (cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model")) '(-4 . "<AND") '(-4 . ">=,>=,>=") (cons 10 (mapcar '- pt_end (list dfzz dfzz dfzz))) '(-4 . "<=,<=,<=") (cons 10 (mapcar '+ pt_end (list dfzz dfzz dfzz))) '(-4 . "AND>") ) ) ) (ssadd ent ss) ) ) ) (if ss (sssetfirst nil ss)) (prin1) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
lecrabe Posté(e) le 3 avril Auteur Posté(e) le 3 avril Hello @bonuscad Merci de tes efforts mais Desole mais je n arrive a RIEN avec ta routine ! La 1ere selection , c le Lineaire ("LINE,ARC,*POLYLINE") et la 2eme c quoi ? ... je ne peux rien selectionner ! En regardant le code je croyais que c etait TOUT le DWG (POINT,INSERT) !? A mon avis UNE SEULE Selection classique serait peut etre plus plus simple !? Je vais vous preparer un DWG de test ... Merci, Bye, lecrabe Autodesk Expert Elite Team
Olivier Eckmann Posté(e) le 3 avril Posté(e) le 3 avril Salut, Essaie avec ça. C'est un peu brutal, donc facilement exponentiel si beaucoup de linéaire et de point. (vl-load-com) (defun C:PolyOnPoint ( / dFuzz ssPoly oPoly ssPonc oPonc PtDeb PtFin PT I J iNbPoncDeb iNbPoncFin) (initget 4) (if (not (setq dFuzz (getreal "\nRayon de recherche <0.01> : "))) (setq dFuzz 0.01) ) (if (and (princ "\nSélectionner les linéaires : ") (setq ssPoly (ssget (list (cons 0 "ARC,LINE,LWPOLYLINE")))) (princ "\nSélectionner les ponctuels : ") (setq ssPonc (ssget (list (cons 0 "POINT,INSERT")))) ) (progn (setq ssOK (ssadd)) (setq I 0) (repeat (sslength ssPoly) (setq oPoly (ssname ssPoly I)) (setq I (1+ I)) (setq PtDeb (vlax-curve-GetStartPoint oPoly)) (setq PtFin (vlax-curve-GetEndPoint oPoly)) (setq iNbPoncDeb 0) (setq iNbPoncFin 0) (setq J 0) (repeat (sslength ssPonc) (setq oPonc (ssname ssPonc J)) (setq J (1+ J)) (setq PT (cdr (assoc 10 (entget oPonc)))) (if (and (= iNbPoncDeb 0) (equal PT PtDeb dFuzz)) (setq iNbPoncDeb 1) ) (if (and (= iNbPoncFin 0) (equal PT PtFin dFuzz)) (setq iNbPoncFin 1) ) ) (if (and (>= iNbPoncDeb 1) (>= iNbPoncFin 1)) (ssadd oPoly ssOK) ) ) (sssetfirst nil ssOK) ) ) ) Olivier
lecrabe Posté(e) le 4 avril Auteur Posté(e) le 4 avril Hello @bonuscad @Olivier Eckmann @Luna @didier Je dois etre tres fatigue car je n arrive "a rien" avec les 2 routines de Olivier et Bruno (Bonuscad) ! Voici un DWG de test ... Ou alors je me suis mal exprime dans mon CDC/CCTP !? Merci d avance, Bye, lecrabe Lineaire_Bloc_Select.zip Autodesk Expert Elite Team
Olivier Eckmann Posté(e) le 4 avril Posté(e) le 4 avril Dans ton dessin, aucun linéaire n'a 1 bloc à chaque extrémité. Il y en a au départ ou à l'arrivée, mais jamais au départ ET à l'arrivée. On peut modifier l'algo si la recherche doit se limiter à au moins 1 extrémité et non pas les 2, dans la ligne (if (and (>= iNbPoncDeb 1) (>= iNbPoncFin 1)) remplacer AND par OR Olivier
bonuscad Posté(e) le 4 avril Posté(e) le 4 avril Citation Ensuite on va analyser les points de Depart ET de Fin des Objets lineaires Même remarque qu'Olivier dans mon code, substitue (à la ligne 25) ((and -> ((or Citation pour trouver les Objets lineaires (au niveau du Depart / Fin) qui sont (ou presque parfaitement) aux XYZ des Blocs / Points Et au cas ou, tu ne voudrais pas tester les Z, il faudrait changer les lignes: '(-4 . ">=,>=,>=") -> '(-4 . ">=,>=") et '(-4 . "<=,<=,<=") -> '(-4 . "<=,<=") 1 Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
lecrabe Posté(e) le 4 avril Auteur Posté(e) le 4 avril Hello @Olivier Eckmann @bonuscad @Luna @didier J ai pourtant bien reflechi avec d ecrire mon Sujet / Post ! >>> suite on va analyser les points de Depart ET de Fin des Objets lineaires <<< Et donc tout le monde a compris qu il y a avait un Bloc au Depart ET a l Arrivee ! En fait pour moi, tout etait possible : 1 Bloc Depart OU Arrivee ou Depart ET Arrivee Je vous prie de bien vouloir m excuser de "mon mauvais CDC / CCTP" ! Merci Bruno et Olivier, ca marche ! Question pour Olivier : quelle serait la Modif dans ton Code si je ne voulais pas traiter le Z des Blocs Donc analyser une distance 2D au sol un peu comme la Modif proposee par Bruno ? MERCI, Bonne journee, Bye, lecrabe Autodesk Expert Elite Team
Olivier Eckmann Posté(e) le 4 avril Posté(e) le 4 avril Voilà (vl-load-com) (defun C:PolyOnPoint ( / Point2D dFuzz ssPoly oPoly ssPonc oPonc PtDeb PtFin PT I J iNbPoncDeb iNbPoncFin) (defun Point2D (PT) (list (car PT) (cadr PT) 0.0) ) (initget 4) (if (not (setq dFuzz (getreal "\nRayon de recherche <0.01> : "))) (setq dFuzz 0.01) ) (initget 1 "Oui Non") (setq b2D (= "Oui" (getkword "\nLimiter la recherche en 2D [Oui/Non] : "))) (if (and (princ "\nSélectionner les linéaires : ") (setq ssPoly (ssget (list (cons 0 "ARC,LINE,LWPOLYLINE")))) (princ "\nSélectionner les ponctuels : ") (setq ssPonc (ssget (list (cons 0 "POINT,INSERT")))) ) (progn (setq ssOK (ssadd)) (setq I 0) (repeat (sslength ssPoly) (setq oPoly (ssname ssPoly I)) (setq I (1+ I)) (setq PtDeb (vlax-curve-GetStartPoint oPoly)) (if b2D (setq PtDeb (Point2D PtDeb))) (setq PtFin (vlax-curve-GetEndPoint oPoly)) (if b2D (setq PtFin (Point2D PtFin))) (setq iNbPoncDeb 0) (setq iNbPoncFin 0) (setq J 0) (while (and (< J (sslength ssPonc)) (= iNbPoncDeb 0) (= iNbPoncFin 0) ) (setq oPonc (ssname ssPonc J)) (setq J (1+ J)) (setq PT (cdr (assoc 10 (entget oPonc)))) (if b2D (setq PT (Point2D PT))) (if (and (= iNbPoncDeb 0) (equal PT PtDeb dFuzz)) (setq iNbPoncDeb 1) ) (if (and (= iNbPoncFin 0) (equal PT PtFin dFuzz)) (setq iNbPoncFin 1) ) ) (if (or (>= iNbPoncDeb 1) (>= iNbPoncFin 1)) (ssadd oPoly ssOK) ) ) (sssetfirst nil ssOK) ) ) ) 1
lecrabe Posté(e) le 5 avril Auteur Posté(e) le 5 avril Hello @bonuscad et @Olivier Eckmann Encore MERCI pour vos Routines ! Au fait j ai "detourne" l usage de vos Routines pour trouver / selectionner simplement les Lineaires avec : -- 1 Bloc a chaque Extremite (AND) -- 1 Bloc au Depart OU a la Fin (OR) Par contre en Lisp / VLisp, il n y a pas le XOR !! SVP est ce possible d avoir une nouvelle version de vos Routines en Mode XOR ? DONC selectionner seulement les Lineaires avec 1 Bloc au Depart OU a la Fin (mais PAS aux 2 Extremites) Merci d avance, Bye, lecrabe Autodesk Expert Elite Team
Olivier Eckmann Posté(e) le 5 avril Posté(e) le 5 avril Essaie avec ça (vl-load-com) (defun C:PolyOnPoint ( / Point2D dFuzz ssPoly oPoly ssPonc oPonc PtDeb PtFin PT I J iNbPoncDeb iNbPoncFin) (defun Point2D (PT) (list (car PT) (cadr PT) 0.0) ) (initget 4) (if (not (setq dFuzz (getreal "\nRayon de recherche <0.01> : "))) (setq dFuzz 0.01) ) (initget 1 "Oui Non") (setq b2D (= "Oui" (getkword "\nLimiter la recherche en 2D [Oui/Non] : "))) (initget 1 "Departuniquement Arriveeuniquement departOUarrivee departETarrivee departETOUarrivee") (setq sChoix (getkword "\nCritère de recherche [Departuniquement/Arriveeuniquement/departOUarrivee/departETarrivee/departETOUarrivee] : ")) (if (and (princ "\nSélectionner les linéaires : ") (setq ssPoly (ssget (list (cons 0 "ARC,LINE,LWPOLYLINE")))) (princ "\nSélectionner les ponctuels : ") (setq ssPonc (ssget (list (cons 0 "POINT,INSERT")))) ) (progn (setq ssOK (ssadd)) (setq I 0) (repeat (sslength ssPoly) (setq oPoly (ssname ssPoly I)) (setq I (1+ I)) (setq PtDeb (vlax-curve-GetStartPoint oPoly)) (if b2D (setq PtDeb (Point2D PtDeb))) (setq PtFin (vlax-curve-GetEndPoint oPoly)) (if b2D (setq PtFin (Point2D PtFin))) (setq iNbPoncDeb 0) (setq iNbPoncFin 0) (setq J 0) (while (and (< J (sslength ssPonc)) (or (= iNbPoncDeb 0) (= iNbPoncFin 0)) ) (setq oPonc (ssname ssPonc J)) (setq J (1+ J)) (setq PT (cdr (assoc 10 (entget oPonc)))) (if b2D (setq PT (Point2D PT))) (if (and (= iNbPoncDeb 0) (equal PT PtDeb dFuzz)) (setq iNbPoncDeb 1) ) (if (and (= iNbPoncFin 0) (equal PT PtFin dFuzz)) (setq iNbPoncFin 1) ) ) (cond ((= sChoix "departETOUarrivee") (if (or (>= iNbPoncDeb 1) (>= iNbPoncFin 1)) (ssadd oPoly ssOK) ) ) ((= sChoix "departETarrivee") (if (and (>= iNbPoncDeb 1) (>= iNbPoncFin 1)) (ssadd oPoly ssOK) ) ) ((= sChoix "departOUarrivee") (if (or (and (>= iNbPoncDeb 1) (= iNbPoncFin 0)) (and (= iNbPoncDeb 0) (>= iNbPoncFin 1))) (ssadd oPoly ssOK) ) ) ((= sChoix "Departuniquement") (if (and (>= iNbPoncDeb 1) (= iNbPoncFin 0)) (ssadd oPoly ssOK) ) ) ((= sChoix "Arriveeuniquement") (if (and (= iNbPoncDeb 0) (>= iNbPoncFin 1)) (ssadd oPoly ssOK) ) ) ) ) (sssetfirst nil ssOK) ) ) ) Tu as les options: departOUarrivee = uniquement l'un des 2 departETarrivee = absolument les 2 departETOUarrivee = l'un OU l'autre OU les 2. Et ça fera un kilo de carottes pour ma jument 😉. Elle s'appelle CARRERA, mais elle fonctionne mieux aux carottes qu'au SP98.😂 Olivier 1
lecrabe Posté(e) le 5 avril Auteur Posté(e) le 5 avril Hello @Olivier Eckmann MERCI ... Mais je croyais qu elle se nommait Carrera 4 S !? Bon WE, Bye lecrabe Autodesk Expert Elite Team
Olivier Eckmann Posté(e) le 5 avril Posté(e) le 5 avril Non, c'est CARRERA'TROIS son vrai nom, car sa maman s'appelait GARGAMELLE'TROIS - ça ne s'invente pas -, et son père ENZO (un bel italien!!!) C'est pour la prochaine que je passerai à la version 4, mais en ce moment, mon cœur balance plutôt du côté du Portugal, avec un bel étalon Pur Sang Lusitanien, mais je crois que ma femme n'est pas d'accord 😉
bonuscad Posté(e) le 5 avril Posté(e) le 5 avril Citation Par contre en Lisp / VLisp, il n y a pas le XOR !! @lecrabe Là mon ami, tu me surprend pour un vieux de la veille comme toi... Ces possibilités existe depuis au moins la version R12, et elles existe toujours! Pour t'en convaincre lance la commande '_FILTER et dans la sélection du filtre va tout en bas de la liste. Je t'ai monté un code qui va te permettre de choisir TOUTES les options possibles pour exécuter ta requête (suivant ton CCTP) Je t'avoue que je n'ai pas tout testé les possibilités offertes, un peu la flemme...., c'est toi l’intéressé. ;; ListBox (gile) ;; Boite de dialogue permettant un ou plusieurs choix dans une liste ;; ;; Arguments ;; title : le titre de la boite de dialogue (chaîne) ;; msg ; message (chaîne), "" ou nil pour aucun ;; keylab : une liste d'association du type ((key1 . label1) (key2 . label2) ...) ;; flag : 0 = liste déroulante ;; 1 = liste choix unique ;; 2 = liste choix multipes ;; ;; Retour : la clé de l'option (flag = 0 ou 1) ou la liste des clés des options (flag = 2) ;; ;; Exemple d'utilisation ;; (listbox "Présentation" "Choisir une présentation" (mapcar 'cons (layoutlist) (layoutlist)) 1) (vl-load-com) (defun str2lst (str sep / pos) (if (setq pos (vl-string-search sep str)) (cons (substr str 1 pos) (str2lst (substr str (+ (strlen sep) pos 1)) sep) ) (list str) ) ) (defun ListBox (title msg keylab flag / tmp file dcl_id choice) (setq tmp (vl-filename-mktemp "tmp.dcl") file (open tmp "w") ) (write-line (strcat "ListBox:dialog{label=\"" title "\";") file ) (if (and msg (/= msg "")) (write-line (strcat ":text{label=\"" msg "\";}") file) ) (write-line (cond ((= 0 flag) "spacer;:popup_list{key=\"lst\";") ((= 1 flag) "spacer;:list_box{key=\"lst\";width=32;") (T "spacer;:list_box{key=\"lst\";width=32;multiple_select=true;") ) file ) (write-line "}ok_cancel_err;}" file) (close file) (setq dcl_id (load_dialog tmp)) (if (not (new_dialog "ListBox" dcl_id)) (exit) ) (start_list "lst") (mapcar 'add_list (mapcar 'cdr keylab)) (end_list) (action_tile "accept" "(or (= (get_tile \"lst\") \"\") (if (= 2 flag) (progn (foreach n (str2lst (get_tile \"lst\") \" \") (setq choice (cons (nth (atoi n) (mapcar 'car keylab)) choice)) ) (setq choice (reverse choice)) ) (setq choice (nth (atoi (get_tile \"lst\")) (mapcar 'car keylab))) ) ) (done_dialog)" ) (start_dialog) (unload_dialog dcl_id) (vl-file-delete tmp) choice ) (defun c:sel_by_object@end ( / sel_obj js ss sel_with sel_op sel_opp sel_opn op op_begin op_end n ent pt_start pt_end) (while (null (setq sel_obj (listbox "Objets à traiter" "Choisir le type d'objet" (mapcar 'cons '("LINE" "ARC" "*POLYLINE") '("LINE" "ARC" "*POLYLINE")) 2 ) ) ) ) (while (null (setq js (ssget (list (cons 0 (apply 'strcat (mapcar '(lambda (x) (strcat x ",")) sel_obj))) '(-4 . "<NOT") '(-4 . "&") '(70 . 112) '(-4 . "NOT>") (cons 67 (if (eq (getvar "CVPORT") 1) 1 0)) (cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model")) ) ) ) ) ) (setq ss (ssadd)) (if (not dfzz) (setvar "USERR1" 1E-02)) (initget 4) (if (not (setq dfzz (getdist (strcat "\nRayon de recherche? <" (rtos (getvar "USERR1") 2 2) "> : ")))) (setq dfzz (getvar "USERR1")) (setvar "USERR1" dfzz) ) (while (null (setq sel_with (listbox "Traiter avec" "Choisir le type d'objet" (mapcar 'cons '("POINT" "INSERT") '("POINT" "INSERT")) 2 ) ) ) ) (initget "XYZ XY") (setq sel_op (getkword "\nChoisir le mode de comparaison [XYZ/XY]? <XY>: ")) (if (eq sel_op "XYZ") (setq sel_opp ">=,>=,>=" sel_opn "<=,<=,<=") (setq sel_opp ">=,>=" sel_opn "<=,<=") ) (while (null (setq op (listbox "Exclure ou Inclure avec" "Choisir l'opérande" (mapcar 'cons '("AND" "OR" "XOR" "NOT") '("AND" "OR" "XOR" "NOT")) 1 ) ) ) ) (setq op_begin (strcat "<" op) op_end (strcat op ">")) (repeat (setq n (sslength js)) (setq ent (ssname js (setq n (1- n))) pt_start (vlax-curve-getStartPoint ent) pt_end (vlax-curve-getEndPoint ent) ) (cond ((or (ssget "_X" (list (cons 0 (apply 'strcat (mapcar '(lambda (x) (strcat x ",")) sel_with))) (cons 67 (if (eq (getvar "CVPORT") 1) 1 0)) (cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model")) (cons -4 op_begin) '(-4 . "<AND") (cons -4 sel_opp) (cons 10 (mapcar '- pt_start (list dfzz dfzz dfzz))) (cons -4 sel_opn) (cons 10 (mapcar '+ pt_start (list dfzz dfzz dfzz))) '(-4 . "AND>") '(-4 . "<AND") (cons -4 sel_opp) (cons 10 (mapcar '- pt_end (list dfzz dfzz dfzz))) (cons -4 sel_opn) (cons 10 (mapcar '+ pt_end (list dfzz dfzz dfzz))) '(-4 . "AND>") (cons -4 op_end) ) ) ) (ssadd ent ss) ) ) ) (if ss (sssetfirst nil ss)) (prin1) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
lecrabe Posté(e) le 8 avril Auteur Posté(e) le 8 avril Hello @bonuscad Je commence a "jouer" avec ta nouvelle Routine qui semble Tip-Top ... Au fait j ai enleve une parenthese fermante vers la fin [ avant (if ss (sssetfirst nil ss)) ] ! Bye, lecrabe Autodesk Expert Elite Team
bonuscad Posté(e) le 11 avril Posté(e) le 11 avril Le 08/04/2024 à 15:07, lecrabe a dit : Hello @bonuscad Je commence a "jouer" avec ta nouvelle Routine qui semble Tip-Top ... Au fait j ai enleve une parenthese fermante vers la fin [ avant (if ss (sssetfirst nil ss)) ] ! Bye, lecrabe @lecrabe J'ai refait la manip de copier-coller le code depuis le forum, je n'ai pas de problème d'appariement de parenthèses. Donc vérifie ta copie car je doute que ta copie fonctionne correctement et que tu puisse "jouer" avec....?!?! Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
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