Aller au contenu

Selection automatique


Messages recommandés

Posté(e)

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 !!

Posté(e)

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 ?

Posté(e)

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...

Posté(e)

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]

Posté(e)

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)))))

Posté(e)

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...

Posté(e)

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

Posté(e)

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...

Posté(e)

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")

)

Posté(e)

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

Posté(e)

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...

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité