Aller au contenu

LIAISON BLOCS PAR LIGNE ou POLYLIGNE


Messages recommandés

Posté(e)

Bonjour à toutes et à tous,

 

J'ai besoin d'un peu d'aide pour le développement d'une routine.

J'ai développé la routine suivante, elle permet d'insérer des blocs avec incrémentation d'attributs. Le problème que je désire maintenant résoudre est de pouvoir relier les blocs insérés au fur et à mesure de l'insertion par un ligne ou une polyligne. Ou après l'insertion des blocs. Je pense qu'il faut que je récupère les points d'insertion des blocs, mais je ne vois pas du tout comment exécuter cela.

 

Voici la routine actuelle:

 

(defun c:TITI ()

(setq saveblip (getvar "blipmode") )

(setq savecmde (getvar "cmdecho") )

(setvar "blipmode" 0)

(setvar "cmdecho" 0)

(setq num (getint "\nNumero du detecteur de depart: ")

inc (getint "\nPas incrementation : ")

pref (getstring "\nPrefixe = F + ID centrale: ")

suff (getstring "\nSuffixe: ")

num2 (getint "\nAdresse du detecteur de depart: ")

inc2 (getint "\nPas incrementation adresse : ")

pref2 (getstring "\nPrefixe = numero de la boucle: ")

suff2 (getstring "\nSuffixe: ")

)

(setq pos (getpoint "\nLocalisation du premier point: "))

(while (/= nil pos)

(setq i (strcat pref " " (itoa num) suff))

(setq s (strcat pref2 " " (itoa num2) suff2))

(command "_insert" "DETECT" pos 1 1 0 i s )

(setq num (+ num inc))

(setq num2 (+ num2 inc2))

(setq pos (getpoint "\nLocalisation du point suivant: "))

)

(setvar "blipmode" saveblip)

(setvar "cmdecho" savecmde)

(princ)

)

 

Une autre évolution que j'aimerais mettre au point, c'est la possibilité de pouvoir utiliser une boite à dialogue pour choisir dans une liste de blocs et définir les préfixe, suffixe et incréments de ma routine. Si quelqu'un peu m'aiguiller à ce sujet cela m'intéresse également. Je ne suis peut-être sur le bon forum pour cela.

 

Merci d'avance des réponses.

 

Titicool

Posté(e)
Bonjour à toutes et à tous,

 

J'ai besoin d'un peu d'aide pour le développement d'une routine.

J'ai développé la routine suivante, elle permet d'insérer des blocs avec incrémentation d'attributs. Le problème que je désire maintenant résoudre est de pouvoir relier les blocs insérés au fur et à mesure de l'insertion par un ligne ou une polyligne. Ou après l'insertion des blocs. Je pense qu'il faut que je récupère les points d'insertion des blocs, mais je ne vois pas du tout comment exécuter cela.

 

Voici la routine actuelle:

 

(defun c:TITI ()

(setq saveblip (getvar "blipmode") )

(setq savecmde (getvar "cmdecho") )

(setvar "blipmode" 0)

(setvar "cmdecho" 0)

(setq num (getint "\nNumero du detecteur de depart: ")

inc (getint "\nPas incrementation : ")

pref (getstring "\nPrefixe = F + ID centrale: ")

suff (getstring "\nSuffixe: ")

num2 (getint "\nAdresse du detecteur de depart: ")

inc2 (getint "\nPas incrementation adresse : ")

pref2 (getstring "\nPrefixe = numero de la boucle: ")

suff2 (getstring "\nSuffixe: ")

)

(setq pos (getpoint "\nLocalisation du premier point: "))

(setq lpts nil)

(while (/= nil pos)

(setq i (strcat pref " " (itoa num) suff))

(setq s (strcat pref2 " " (itoa num2) suff2))

(command "_insert" "DETECT" pos 1 1 0 i s )

(setq num (+ num inc))

(setq num2 (+ num2 inc2))

(setq pos (getpoint "\nLocalisation du point suivant: "))

(setq lpts (append lpts (list pos)))

)

(command "_pline")

(mapcar 'command lpts)

(command "")

(setvar "blipmode" saveblip)

(setvar "cmdecho" savecmde)

(princ)

)

 

Une autre évolution que j'aimerais mettre au point, c'est la possibilité de pouvoir utiliser une boite à dialogue pour choisir dans une liste de blocs et définir les préfixe, suffixe et incréments de ma routine. Si quelqu'un peu m'aiguiller à ce sujet cela m'intéresse également. Je ne suis peut-être sur le bon forum pour cela.

 

Merci d'avance des réponses.

 

Titicool

Carboléüm, qui dessine aussi à la main -> Carboleum's sketchblog

Posté(e)

Bonjour à totes et à tous,

 

Carboleum, merci pour cette réponse.

Cela marche pas mal. Le souci, la polyligne ne démarre qu'à partir du 2ème bloc. J'ai modifié l'instruction (setq lpts nil) par (setq lpts pos) mais le résultat n'est pas correct.

 

De même, j'ai essayé de remplacer la commande polyligne (_pline) par la commande ligne (_line).

Avec cette comande, il y a un message d'erreur et aucune ligne n'est tracée.

 

Quel pourrais être le souci?

 

Merci de l'aide reçue.

 

Titicool

Posté(e)
Bonjour à totes et à tous,

 

Carboleum, merci pour cette réponse.

Cela marche pas mal. Le souci, la polyligne ne démarre qu'à partir du 2ème bloc. J'ai modifié l'instruction (setq lpts nil) par (setq lpts pos) mais le résultat n'est pas correct.

 

bien vu, sauf qu'il faut plutot mettre (setq lpts (list pos))

Parce que append n'accepte que des listes omme arguments.

 

 

Carboléüm, qui dessine aussi à la main -> Carboleum's sketchblog

Posté(e)

Merci Carboleum,

 

Ca marche nickel.

Par contre pour le problème de l'utilisation de la commande ligne, pourquoi cela ne fonctionne-t-il pas?

 

Dans l'énoncé de ma demande, je précisais que je désirais passer par un boîte à dialogue pour encoder mes différents données et choisir mon bloc.

 

Quelqu'un pourrait-il m'aiguiller à ce sujet?

 

Merci d'avance de vos conseils.

 

Ttiticool

Posté(e)

 

Dans l'énoncé de ma demande, je précisais que je désirais passer par un boîte à dialogue pour encoder mes différents données et choisir mon bloc.

 

Quelqu'un pourrait-il m'aiguiller à ce sujet?

 

Si j'étais toi, sans vouloir te vexer évidemment, je ne me lancerai pas encore tout de suite dans les boites de dialogue. Il te manque un peu de maitrise de l'AutoLisp. (c'est un avis perso)

 

Sinon, si tu persistes ;-) va voir du coté des DCL dans le help de ton autocad. Ou encore OpenDCL (cfr google), mais je ne l'ai jamais utilisé.

 

Carboléüm, qui dessine aussi à la main -> Carboleum's sketchblog

Posté(e)

Carboleum,

 

Ok je vais suivre ton conseil.

C'est vrai qu'il faut travailler pas mal avec autolisp, je pense, pour maitriser cet outil.

 

Concernant la routine, je viens de m'apercevoir que la routine fonctionne une seule fois correctement dans un dessin. Lorsque je relance la routine, la polyligne n'es plus dessiné correctement par rapport aux points définis à la souris. Il y a un décalage. Pour l'instant, je n'ai as encore saisi d'où pourrait provenir le souci.

 

Si tu pouvais vérifier de ton côté si tu as le même résultat.

 

Merci beaucoup.

 

Titicool

Posté(e)

Bonjour,

 

Un truc que j'avais fais il y a plusieurs années.

 

Si ça peut être d'une inspiration pour toi...

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

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é