Aller au contenu

Messages recommandés

Posté(e)

L'astuce c'est d'avoir un décalage en X (ici 0.15) qui soit un multiple du décalage en Y (ici 0.015).

On peut aussi le faire avec une largeur de 15 cm et le même décalage en Y de 1.5 cm.

*Ardoises
0, -0.0212132034,0, 0.12727923,0.10606601, 0.0424264069,-0.21213205
225, 0,0, 0.165,-0.015, 0.15,-1.65
315, 0,0, 0.165,0.015, 0.15,-1.65

 

  • Upvote 1

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Puisqu'il est question de LISP dans le titre du sujet, je n'ai pas pu résister.

Voici un LISP qui génère un motif de hachure pour des ardoises en losange en spécifiant la longueur des segments longs (d).

image.png.3314fb5bfcb771a0ff1fe7d7474c84f4.png

(defun ardoisePat (d / z a b c)
  (setq	z (getvar 'dimzin)
	a (/ d 9.)
	b (* a (sqrt 2.))
	c (* d (sqrt 0.5))
  )
  (setvar 'dimzin 8)
  (princ
    (strcat
      "0, "
      (rtos (* -1 b) 2 12)
      ",0, "
      (rtos (+ c b) 2 12)
      ","
      (rtos c 2 12)
      ", "
      (rtos (* 2 b) 2 12)
      ","
      (rtos (* -2 c) 2 12)
      "\n225, 0,0, "
      (rtos (* 10 a) 2 12)
      ","
      (rtos (- a) 2 12)
      ", "
      (rtos d 2 12)
      ","
      (rtos (* -10. d) 2 12)
      "\n315, 0,0, "
      (rtos (* 10 a) 2 12)
      ","
      (rtos a 2 12)
      ", "
      (rtos d 2 12)
      ","
      (rtos (* -10. d) 2 12)
    )
  )
  (setvar 'dimzin z)
  (princ)
)

À lancer en ligne de commande (ou dans l'éditeur Visual LISP).

Commande: (ardoisepat 0.14)
0, -0.021998877637,0, 0.120993827003,0.098994949366, 0.043997755274,-0.197989898732
225, 0,0, 0.155555555556,-0.015555555556, 0.14,-1.4
315, 0,0, 0.155555555556,0.015555555556, 0.14,-1.4

 

  • Like 1
  • Upvote 1

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Une autre version avec un argument supplémentaire : le rapport entre le décalage en X et en Y (fixé à 10 dans le code ci dessus) pour permettre de jouer sur le rapport entre le segment long et le segment court (chanfrein).

;; Décrit un motif de hachueres "ardoises losange"
;;
;; Arguments
;; d : longueur des segments longs (REAL)
;; r : rapport entre le décalage en X et en Y du segment long (INT)

;|
Commande: (ardoisepat 0.32 20)
0, -0.023818333682,0, 0.250092503662,0.22627416998, 0.047636667364,-0.452548339959
225, 0,0, 0.336842105263,-0.016842105263, 0.32,-6.4
315, 0,0, 0.336842105263,0.016842105263, 0.32,-6.4
|;

(defun ardoisePat (d r / z a b c)
  (setq	z (getvar 'dimzin)
	a (/ d (- r 1.))
	b (* a (sqrt 2.))
	c (* d (sqrt 0.5))
  )
  (setvar 'dimzin 8)
  (princ
    (strcat
      "0, "
      (rtos (* -1 b) 2 12)
      ",0, "
      (rtos (+ c b) 2 12)
      ","
      (rtos c 2 12)
      ", "
      (rtos (* 2 b) 2 12)
      ","
      (rtos (* -2 c) 2 12)
      "\n225, 0,0, "
      (rtos (* r a) 2 12)
      ","
      (rtos (- a) 2 12)
      ", "
      (rtos d 2 12)
      ","
      (rtos (* (- r) d) 2 12)
      "\n315, 0,0, "
      (rtos (* r a) 2 12)
      ","
      (rtos a 2 12)
      ", "
      (rtos d 2 12)
      ","
      (rtos (* (- r) d) 2 12)
    )
  )
  (setvar 'dimzin z)
  (princ)
)

 

  • Upvote 2

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)
Il y a 6 heures, (gile) a dit :

Une autre version avec un argument supplémentaire : le rapport entre le décalage en X et en Y (fixé à 10 dans le code ci dessus) pour permettre de jouer sur le rapport entre le segment long et le segment court (chanfrein).

;; Décrit un motif de hachueres "ardoises losange"
;;
;; Arguments
;; d : longueur des segments longs (REAL)
;; r : rapport entre le décalage en X et en Y du segment long (INT)

;|
Commande: (ardoisepat 0.32 20)
0, -0.023818333682,0, 0.250092503662,0.22627416998, 0.047636667364,-0.452548339959
225, 0,0, 0.336842105263,-0.016842105263, 0.32,-6.4
315, 0,0, 0.336842105263,0.016842105263, 0.32,-6.4
|;

(defun ardoisePat (d r / z a b c)
  (setq	z (getvar 'dimzin)
	a (/ d (- r 1.))
	b (* a (sqrt 2.))
	c (* d (sqrt 0.5))
  )
  (setvar 'dimzin 8)
  (princ
    (strcat
      "0, "
      (rtos (* -1 b) 2 12)
      ",0, "
      (rtos (+ c b) 2 12)
      ","
      (rtos c 2 12)
      ", "
      (rtos (* 2 b) 2 12)
      ","
      (rtos (* -2 c) 2 12)
      "\n225, 0,0, "
      (rtos (* r a) 2 12)
      ","
      (rtos (- a) 2 12)
      ", "
      (rtos d 2 12)
      ","
      (rtos (* (- r) d) 2 12)
      "\n315, 0,0, "
      (rtos (* r a) 2 12)
      ","
      (rtos a 2 12)
      ", "
      (rtos d 2 12)
      ","
      (rtos (* (- r) d) 2 12)
    )
  )
  (setvar 'dimzin z)
  (princ)
)

 

Super @(gile), c'est parfait !

 

Merci beaucoup !

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é