Aller au contenu

(Command \"ligne\")


Tramber

Messages recommandés

(setq PP (getpoint "Cliquez un point") PP1(getpoint " -> Cliquez un second point"))

(command "ligne" PP PP1 "")

(command "_UCS" "N" PP1)

(setq orient (* (angle PP PP1) (/ 180 PI)))

(command "_UCS" "N" "Z" orient)

 

Tout ca c'est très bien, mais l'utilisateur ne peut profiter de l'ORTHO, de la visualisation de l'objet en train de se créer. Etc, ...il clique 2 points à l'aveugle.

 

Alors j'essaie:

 

(command "ligne")

(setq SS (entget(ssname (ssget "_l") 0)))

(setq PP (cdr (assoc 10 SS)))

(setq PP1 (cdr (assoc 11 SS)))

 

Mais évidemment, il n'aime pas trops le (command "ligne") et ca ne marche pas.

Sauriez-vous m'aider ? Ou comment demander de lancer ligne 1 seule fois et ensuite traaviller avec les données.

 

Excusez le débutant (en fait pas tant débutant que cela mais qui coince bien sur un problème de base !).

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Laissez tomber, je viens d'aller voir "Commande _dtext", le sujet lancé par Dominique76, et je crois avoir trouvé ma réponse.

 

(command "ligne" pause pause "")

 

Et ca a l'air de marcher, c'est bien ca ?

 

 

 

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Je crois que ca doit être un problème récurent chez les lispeurs mais je veux créer un lisp qui me fait des poly qui seront décalées.

Mais si je veux faire les décalages (_offset) en temps réel de chaque segment, je n'y arrive pas. Alors, je me résoud à faire des lignes et arcs puis à suivre la direction à chaque fois sous forme de nouveau SCU, quitte à faire un PEDIT final. Heureusement les directions de chacun de ces segments ou arcs sont dans la continuité orthogonale.

 

Je en sais pas si vous me suivez (!)

 

là, vous me direz, c'est pas possible de faire (command "_pline" pause pause pasue pause,...etc).

Ou alors il faut faire du lisp que j'appelerais de 2ème niveau (2ème étoile pour ceux qui font du ski), et faire du ENTMOD,...etc.

 

C'est bien ça ?

 

Merci les gars (les filles).

 

Je parle souvent tout seul (ou dans le vent). C'est une philosophie !

 

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

C'est vrai qu'on a du mal à se concentrer quand tu es dans la pièce !!

EN bref tu veux saisir et calculer une série de points que tu veux introduire dans une ou plusieurs polylignes ??

 

Pour le problème de la saisie de points en aveugle j'ai pas bien compris...

Connais tu la fonction (setq point-init (getpoint "taratata"))

et (setq point-final (getpoint point-init "retaratata"))

le 2ème getpoint permet la création d'un élastique qui permet à l'utilisateur de voir les 2 points qu'il est en train de saisir .

ensuite un petit (grdraw point-init point-final) laisse une trace du trait (qui s'enlevera au prochain redess ou zoom).

 

Pour le problème de la saisie ou le calcul de plusieurs points afin d'être introduit dans une polyligne par exemple ....

tu saisis tout les points que tu peux avec les getpoint précédents

tu calcules tous les points que tu peux avec les mpcar apply et companies ...

 

tu convertis tes points (liste) en chaine de caractère genre:

(34 45 24) >>> "34,45,24"

avec une fonction comme celle-là:

(defun tpoint (lp)

....(if (> (length lp) 2) (setq tz (strcat "," (rtos (caddr lp) 2 2))) (setq tz ""))

....(setq ty (rtos (cadr lp) 2 2))

....(strcat (rtos (car lp) 2 2) "," ty tz)

)

Tu concatènes tous tes points chaines obtenus dans une liste par exemple: liste-point.

("34,34,25" "56,26,10" ....)

tu écris une phrase comme celle-là:

(setq ordre1 '(command "_pline"))

(setq ordre2 (append ordre1 liste-point (list "")))

le symbole ordre2 sera donc une liste comme ca:

(command "_pline" "34,34,25" "56,26,10" .... "")

tu n'as plus qu'à ajouter la ligne suivante:

(eval ordre2) et il lisp va evaluer le contenu du contenu de ton symbole et va donc effectuer l'ordre de dessin de ta polyligne sur un nombre variable de points dépendant de ta liste liste-point.

 

Je ne sais pas si tes tribulations t'amènent à cela mais si c'est le cas ces quelques lignes devraient t'aider ...

 

 

Formateur

ATC Autocad - Mechanical - Inventor - Electrical

Lien vers le commentaire
Partager sur d’autres sites

Formidable,

 

Ce petit truc de glisser le premier point dans le getpoint est excellent.

Je cherchais le mot "élastique" mais tu l'as trouvé. Cela ne marchera pas pour les séquences en arcs de cercles mais c'est vraiment tout bête et très intéressant.

 

Tu m'as aussi rafraichi la mémoire sur la possibilité d'injecter ainsi une liste de point dans la commande. Je me rappelle maintenant de la possibilité de faire un (eval ) sur une chaine construite contenant (command...).

C'est très bien.

 

Vivement le Week-End prochain, je vais faire du lisp en regardant la danse chez Pascal Sevran (ben oui, j'aime les séquences de danse chez Pascal Sevran, si quelqu'un a quelque chose à en dire ?!). Le lisp c'est vraiment du fun.

 

Dank U Well. Tot Ziens !

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

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é