Aller au contenu

Messages recommandés

Posté(e)

bonjour lesourd2

je ne peu pas acceder au fichier.

voila le message que j'obtient

""Désolé, vous ne pouvez pas accéder à ce fichier directement ...""

 

a+

 

[Edité le 3/3/2010 par jalloul]

Posté(e)

Juste un exemple vite fait, pour montrer le résultat.

Si cela peut convenir, il faudra approfondir le code.

 

L'avantage: une seule entité crée. L'inconvénient: pas de vraies courbes possible.

 

Pour tester, un copier-coller en ligne de commande

 

((lambda ( / pt l_pt n count)
 (while (setq pt (getpoint "\nPoint suivant: "))
   (setq l_pt (cons pt l_pt))
 )
 (setq n (length l_pt) count 1)
 (command "_.pface")
 (while l_pt
   (command "_none" (car l_pt))
   (setq l_pt (cdr l_pt))
 )
 (command "")
 (repeat (1- n)
   (command "_color" count)
   (command count)
   (command (setq count (1+ count)))
   (command "")
 )
 (command "")
))

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

Posté(e)

Un petit peu plus poussé...

 

Génère une entité bicolore (ici rouge-jaune) avec la longueur de tiret voulu.

 

(defun c:line_multi-color ( / js e_curv e_tiret vlaobj pt_start pt_end param_start param_end perim_obj d_x lst_pt n count first_color)
 (princ (strcat"\nSélectionner une entité curviligne: "))
 (while
   (not
     (setq js
       (ssget "_+.:E:S" 
         (list
           (cons 0 "*POLYLINE,LINE,ARC,CIRCLE,ELLIPSE,SPLINE")
           (cons 67 (if (eq (getvar "CVPORT") 2) 0 1))
           (cons 410 (if (eq (getvar "CVPORT") 2) "Model" (getvar "CTAB")))
           (cons -4 "              (cons -4 "&") (cons 70 112)
           (cons -4 "NOT>")
         )
       )
     )
   )
 )
 (redraw (setq e_curv (ssname js 0)) 3)
 (initget 7)
 (setq e_tiret (getdist "\nLongueur du tireté à généré: "))
 (setq
   vlaobj (vlax-ename->vla-object e_curv)
   pt_start (vlax-curve-getStartPoint vlaobj)
   pt_end (vlax-curve-getEndPoint vlaobj)
   param_start (vlax-curve-getStartParam vlaobj)
   param_end (vlax-curve-getEndParam vlaobj)
   perim_obj (vlax-curve-getDistAtParam vlaobj param_end)
 )
 (setq d_x 0.0 lst_pt nil)
 (while (< d_x perim_obj)
   (setq
     lst_pt (cons (vlax-curve-getPointAtDist vlaobj d_x) lst_pt)
     d_x (+ d_x e_tiret)
   )
 )
 (setq n (length lst_pt) count 1 first_color 1)
 (redraw e_curv 4)
;  (entdel e_curv)
 (setvar "cmdecho" 0)
 (command "_.pface")
 (while lst_pt
   (command "_none" (car lst_pt))
   (setq lst_pt (cdr lst_pt))
 )
 (command "")
 (repeat (1- n)
   (command "_color" first_color)
   (command count)
   (command (setq count (1+ count)))
   (command "")
   (setq first_color (rem (1+ first_color) 3))
   (if (zerop first_color) (setq first_color 1))
 )
 (command "")
 (setvar "cmdecho" 1)
 (prin1)
)

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

Posté(e)

bonsoir à toutes et à tous

 

merci pour les lisp

 

maintenant, une autre idee pour la couleur des traits.

quelqu'un peu nous faire un lisp dessinant une polyligne en 3 ou plusieurs couleurs, mais cette fois-ci superposées (empillees les unes sur les autres), à la maniere de 3 ou plusieurs polylignes superposées avec des largeurs différentes.

a+

 

 

[Edité le 10/3/2010 par jalloul]

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é