Mokobop Posté(e) le 23 juillet 2007 Posté(e) le 23 juillet 2007 Bonjour tous le monde !!! :) Cela fait depuis environ 4 ou 5 jours que je suis bloqué :mad: Je cherche une ligne de code qui me permette de retourné le nom du calque d'un objet qui se trouve au point 0,0. Merci !!
rebcao Posté(e) le 23 juillet 2007 Posté(e) le 23 juillet 2007 tu peux utiliser la commande _AI_MOLC puis exploiter la variable système CLAYER Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
Mokobop Posté(e) le 23 juillet 2007 Auteur Posté(e) le 23 juillet 2007 Bonjour rebcao, merci de m'avoir répondu :) mais c'est bizarre , AI_molc marche dans la commande mais ne marche pas sous forme lisp : (command "_AI_MOLC") Commande: (command "_AI_MOLC")_AI_MOLC Commande inconnue "AI_MOLC". Appuyez sur F1 pour obtenir de l'aide.Commande: nil Comment faire y'a t'il un autre moyen ?
Bred Posté(e) le 23 juillet 2007 Posté(e) le 23 juillet 2007 Salut e bienvenue !ta question n'est vraiment pas clair !mais bon : Choix d' objets à 0 0 0 :(setq sel (ssget (list (list 10 0.0 0.0 0.0)))) Claque du premier objet selectionné :(setq lay (cdr (assoc 8 (entget (ssname sel 0))))) ... mais soit plus explicite dans ta question, afin que nous puissions mieux répondre !(type d'objet, de selection, ce que tu veux faire du nom du calque....)voir, poste ton code ! Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Mokobop Posté(e) le 23 juillet 2007 Auteur Posté(e) le 23 juillet 2007 Bonjour Bred, merci pour ta réponse, J'ai essayé ton code mais il ne marche pas chez moi ça me met : Commande: (setq sel (ssget (list (list 10 0.0 0.0 0.0))))Choix des objets: 0 trouvé(s)Choix des objets:nil (setq lay (cdr (assoc 8 (entget (ssname sel 0))))); erreur: type d'argument incorrect: lselsetp nil Je vais mieux expliquer le déroulement de mon programme :Je lance le programme, - Récupère automatiquement dans une variable appelé CALQUE le nom du calque du trait polyligne situé au point 0,0 (ce que je cherche à faire) - Test si le nom du calque est égal a 0 ou 1 (déja fait)- Effectue zoom etendu si 0 Ferme fichier si 1 (déja fait) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Voici pour l'instant mon programme : (setq calque1 (cdr(assoc 8(entget(car(entsel)))))) Je cherche à changer cette commande pour qu'il selectionne automatiquement l'objet en 0,0 (if (= calque1 "0")(command "ZOOM" "ETENDU")(command "_close")) [Edité le 23/7/2007 par Mokobop]
Mokobop Posté(e) le 23 juillet 2007 Auteur Posté(e) le 23 juillet 2007 Super !!! Merci Bred je viens de modifier un petit peu ton code et cela fonctionne !! (setq sel (ssget (getvar "extmin")))(setq lay (cdr (assoc 8 (entget (ssname sel 0)))))
Bred Posté(e) le 23 juillet 2007 Posté(e) le 23 juillet 2007 Re, Récupère automatiquement dans une variable appelé CALQUE le nom du calque du trait polyligne situé au point 0,0 (ce que je cherche à faire) (setq sel (ssget "_X" (list '(0 . "LWPOLYLINE")(list 10 0.0 0.0)))) (if (= (sslength sel) 1) (setq CALQUE (cdr (assoc 8 (entget (ssname sel 0))))) (princ "\n Plusieurs LwPolylignes en 0,0 ! \n Annulé.") ) Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Mokobop Posté(e) le 23 juillet 2007 Auteur Posté(e) le 23 juillet 2007 Merci bred ca marche super bien !! Mais j'ai un autre soucis encore !! Je voudrais savoir si c'est possible de recupéré le numero de couleur d'index du calque selectionner en 0,0 afin de tester si le calque est blanc ou pas. Nom: Blanc(Coul. index: 7) Merci
Bred Posté(e) le 23 juillet 2007 Posté(e) le 23 juillet 2007 Re,(setq coul-CLAQUE (cdr (assoc 62 (entget (tblobjname "LAYER" CALQUE))))) Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Mokobop Posté(e) le 23 juillet 2007 Auteur Posté(e) le 23 juillet 2007 Pourquoi Autocad me dit : (setq coul-CALQUE (cdr (assoc 62 (entget ( tblobjname "LAYER" CALQUE))))); erreur: type d'argument incorrect: stringp nil Je vais vous poster mon programme pour vous eclaircir : ---- ----- ---- ---- ----- ----- ------ ------- ------ ------- ------ (setq SELECTION (ssget (getvar "extmin")))(setq CALQUE (cdr (assoc 8 (entget (ssname SELECTION 0))))) (if (AND (= CALQUE 0) (= coul-CALQUE 7) Je n'arrive pas à avoir coul-CALQUEqui est la couleur du calque(command "zoom" "etendu")(command "close"))
Mokobop Posté(e) le 23 juillet 2007 Auteur Posté(e) le 23 juillet 2007 Ah mince excuse moi bred j'avais pas définie calque =/ Merci beaucoup pour ton aide !
Mokobop Posté(e) le 23 juillet 2007 Auteur Posté(e) le 23 juillet 2007 Aaaaaaaah mais c'est pas possible ca !!!!!!!!!!!!! Y'a vraiment des personne qui crée n'importe comment leur schéma :mad: Bred j'aurais besoin de ton aide pour une derniere fois s'il te plait, après mon programme est terminé, j'aurais besoin d'avoir la couleur (pas celle du calque) la couleur du controle de couleur celle ou il y'a Couleur du calque comme choix; Merci beaucoup
Bred Posté(e) le 23 juillet 2007 Posté(e) le 23 juillet 2007 La couleur de l'objet tu veux dire je pense : (setq Coul-Objet (cdr (assoc 62 (entget (ssname sel 0))))) Mais attention !!! il faut que tu fasses un test sur son existence, car si couleur objet = couleur DuCalque, le code 62 n'existe pas !!! ;) Je te laisse faire.... Pour info, il y a une une section LISP dans CADxp.... Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Mokobop Posté(e) le 24 juillet 2007 Auteur Posté(e) le 24 juillet 2007 Merci beaucoup pour tous tes conseils ! :D J'ai réussi à finir mon programme il marche super bien :D Merci encore
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