asptt9 Posté(e) le 5 mars 2013 Posté(e) le 5 mars 2013 Bonjour, J'ai un petit soucis dans mon jeu de sélection...Je voudrais sélectionner tous les blocs dont le nom est "numeroderepere" et qui sont sur un calque variable selon la commune ou je me trouve. En fonction de la commune le calque se nomme "repérage commune". Le nom de ce calque est stocké dans la variable calquecommune. J'ai essayé ce bout de code: (setq ssnum (ssget "_X" (list '(0 . "INSERT") '(2 . "numeroderepere") (cons 8 calquecommune)))) mais il ne marche pas... Que n'ai-je pas bien fait ? Merci d'avance pour vos réponses.
-Olivier- Posté(e) le 5 mars 2013 Posté(e) le 5 mars 2013 Bonjour asptt9, Ta variable calquecommune est bien enregistrée sous forme de string ?Olivier
asptt9 Posté(e) le 5 mars 2013 Auteur Posté(e) le 5 mars 2013 Elle est enregistrée comme suit: (setq calquecommune (strcat "Repérage" " " commune))
-Olivier- Posté(e) le 5 mars 2013 Posté(e) le 5 mars 2013 Chez moi, cela fonction très bien, donc vérifie la valeur que te renvoi cette variable.Un nom de calque sans espace serait plus simple à utiliser.Olivier
asptt9 Posté(e) le 5 mars 2013 Auteur Posté(e) le 5 mars 2013 Ça me renvoie la valeur "Repérage "commune"" Le problème c'est que quand je charge la ligne du ssget dans visual lisp, il ne me sélectionne rien alors que des blocs sont présent dans mon espace objet du dessin courant...
-Olivier- Posté(e) le 5 mars 2013 Posté(e) le 5 mars 2013 Il cherche un calque nommé Repérage "commune" qui ne doit sans doute pas correspondre à son nom exact (je doute que ton nom de calque comporte des guillemets).Utilise tu la fonction getstring pour entrée le nom de la communne ?
asptt9 Posté(e) le 5 mars 2013 Auteur Posté(e) le 5 mars 2013 Le programme pour choisir la commune est le suivant: (Defun commune_syndicat (/) (setq filtex "C:/Mes documents/Commune_Syndicat.txt") (setq x (open filtex "r") ct 0 ) (Setq llisttxt nil) (While (Setq exte (read-line x)) (Setq exte (read exte)) (Setq llisttxt (cons exte llisttxt)) (Setq ct (+ ct 1)) ) (close x) (Setq Commune(nth 2 llisttxt)) (Setq Syndicat(nth 1 llisttxt)) (Setq District(nth 0 llisttxt)) ) Ce programme va chercher les renseignement dans un fichier .txt généré par microsoft acces. Le nom de calque est "repérage paris" si la commune est paris.(sans les guillemets bien sur) et il est bien présent dans le dessin.
-Olivier- Posté(e) le 5 mars 2013 Posté(e) le 5 mars 2013 C'est donc la ligne (strcat "Repérage" " " commune) que tu doit modifier pour obtenir un nom de calque correct.
bryce Posté(e) le 5 mars 2013 Posté(e) le 5 mars 2013 Bonjour, Pourquoi pas tout simplement(setq calquecommune (strcat "Repérage " commune)) :huh: Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
asptt9 Posté(e) le 5 mars 2013 Auteur Posté(e) le 5 mars 2013 Oui pourquoi pas??? :) Je viens de modifier mais ça ne marche toujours pas. Dans la console visual lisp il m'affiche <Selection set: 5b5e> lorsque je charge la ligne, mais il ne m'a fait aucune sélection dans le dessin courant...
alala Posté(e) le 5 mars 2013 Posté(e) le 5 mars 2013 bonjour, Pour sélectionner à l'écran un sssetfirst sera necessaire : (sssetfirst nil ssnum)A mettre après la commande de sélection bien sur. Sinon un sslength te donnera le nombre d'élément dans la sélection, et donc si ta sélection est vide ou non! @+ C'est en forgeant que l'on devient forgerons.Et c'est en sciant que Léonard DeVinci!
asptt9 Posté(e) le 5 mars 2013 Auteur Posté(e) le 5 mars 2013 Bah tout de suite ça va mieux.Merci beaucoup alala pour cette petite précision.Et merci à tous pour m'avoir consacré un peu de votre temps.
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