Aller au contenu

Type de ligne : gazon


Messages recommandés

Posté(e)

Re,

 

peut-être à ça ?

 

 

http://www.rebcao.fr/cadxp/gazon_type_ligne.png

 

ça donnerait le type de ligne suivant :

 

 

*GAZON,Gazon ----'''----'''----'''----'''

A,8,["í",WEBDINGS,S=5.0,U=0.0,X=0.00,Y=0.8833],8

 

Il faut que le style de texte WEBDINGS existe qui utilise la police du même nom.

 

Christian

 

 

 

[Edité le 13/11/2010 par rebcao]

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Posté(e)

dessiner directement du gazon (stylisé)

 

Ce n'est pas un type de ligne, mais c'est plus stylisé...

 

J'avais trouvé ça sur le Net il y a longtemps et je l'ai conservé car je l'avais trouvé sympa.

 

Merci à l'auteur Watson Kilbourne

 

Juste françisé, même si ce n'est pas le code original, j'ai gardé la philosophie du code.

 

; GRASS.LSP 
; Realistic Grass for Elevations
; (c)1994,  Watson Kilbourne
; Draws row of grass with random height, 
; spacing and angle in elevation
; Random number generator, from 0.000 to 0.999
(defun rn ( / md mx nc) 
  (if (not sd) (setq sd (getvar "DATE")))
  (setq md 65536
        mx 25173
        nc 13849
        sd (rem (+ (* mx sd) nc) md)
  )
  (/ sd md)
)
(defun c:GRASS ( / sp ep gh dn dx an p1 p2 p3 p4 p5 sd)
  (initget 9)
  (setq sp (trans (getpoint "\nPoint de départ de l'herbe: ") 1 0))
  (initget 41)
  (setq ep (trans (getpoint (trans sp 0 1) "\nPoint final de l'herbe: ") 1 0))
  (initget 6)
  (setq gh (getdist "\nHauteur approximative de l'herbe <2.5>: "))
  (if (not gh) (setq gh 2.5))
  (initget 6)
  (setq dn (getint "\nFacteur de densité de 1à 6 <3>: "))
  (if (or (not dn) (> dn 6)) (setq dn 3))
  (setq dx (distance sp ep)
        an (angle sp ep)
        p1 sp p2 sp
  )
  (while (< (distance p2 sp) dx)
     (setq p2 (polar p1 an (/ (+ (rn) (/ gh 2)) dn))
           p3 (polar p2 (* pi 0.5) (* gh (rn)))
           p4 (polar p3 (* pi 0.6) (* gh (rn)))
           p5 (polar p4 (* pi 0.4) (* gh (rn)))
     )
     (entmake (append '((0 . "LINE")) (list (cons 8 (getvar "clayer"))) (list (cons 10 p3) (cons 11 p5))))
     (setq p1 p2)
  )
  (princ)
)

 

[Edité le 15/11/2010 par bonuscad]

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

Posté(e)

Merci pour vos réponses à tous.

J’y réponds moi-même en vrac :

 

@rebcao : mon AutoCad (en anglais) n’a pas aimé ton type de ligne. Il me répond : « bad definition of GAZON » etc…

 

@bonuscad : le LISP a l’air super, mais quand je m’en sers, il ne crée pas d’entités sans pour autant me renvoyer de msg d’erreur. J’ai essayé en variant les paramètres, éventuellement d’un facteur 100 (je dessine en centimètres), mais sans succès…

 

@pierrevigneux : je ne sais pas comment utiliser tous ces utilitaires sous Acad2010. Cela dit j’y ai prélevé le LISP «GRASSY.LSP qui fait presque ce que je veux (et qui est sans doute le même LISP que celui proposé par Bonuscad). Il crée une série de petites lignes plus ou moins verticales qui figurent bien du gazon (je le donne ci-dessous pour ceux que ça intéresse).

 

Cela dit, c’est bien pour du rendu, mais pour travailler dans le long terme sur des coupes, une ligne zigzaguant aléatoirement serait bien plus pratique qu’un million de petits traits.

 

 

Donc je reste preneur de trucs et astuces divers pour dessiner du gazon en coupe !

 

Merci à tous.

 

 

(defun c:GRASSY (/ ce bm om oe sp ep gh dn dx an p1 p2 p3 p4 p5)
(setq ce (getvar "CMDECHO") bm (getvar "BLIPMODE") om (getvar "OSMODE"))
(defun NE28 (NE28) (setvar "CMDECHO" ce) (setvar "BLIPMODE" bm)
(setvar "OSMODE" om) (princ "\nFunction cancelled ") (princ))
(setq oe *error* *error* NE28)
(defun rn () (if (not sd) (setq sd (getvar "DATE")))
(setq md 65536 mx 25173 nc 13849 sd (rem (+ (* mx sd) nc) md))
(setq nx (/ sd md))) (setvar "CMDECHO" 0)(setvar "OSMODE" 0)
(while (= sp nil) (setq sp (getpoint "\nStart point of grass: ")))
(while (= ep nil) (setq ep (getpoint "\nEnd point of grass: ")))
(setq gh (getdist "\nApproximate height of grass : "))
(if (= gh nil) (setq gh 2))
(setq dn (getint "\nEnter density factor, number from 1 to 6 <3>: "))
(if (or (= dn nil) (> dn 6)) (setq dn 3))
(setvar "BLIPMODE" 0)
(setq dx (distance sp ep))
(setq an (angle sp ep))
(setq p1 sp p2 sp)
(while (< (distance p2 sp) dx)
(setq p2 (polar p1 an (/ (+ (rn) (/ gh 2)) dn)))
(setq p3 (polar p2 (* pi 0.5) (* gh (rn))))
(setq p4 (polar p3 (* pi 0.6) (* gh (rn))))
(setq p5 (polar p4 (* pi 0.4) (* gh (rn))))
(command "LINE" p3 p5 "")
(setq p1 p2))
(setvar "BLIPMODE" bm) (setvar "CMDECHO" ce) (setq *error* oe oe nil) (princ)
)

Posté(e)

Salut.

 

ça fait pas mal de temps que je me contente de dessiner une polyligne verte décalée (0.025m) par rapport au trait de "sol" avec une épaisseur (0.050m) sur mes coupes pour figurer les espaces engazonnés.

C'est facile à dessiner et le rendu est acceptable (surtout en couleur).

Mais ce n'est pas très "réaliste".

 

Et AutoCAD se tourna vers le dessinateur à bout de nerfs, et lui dit:

"ERREUR FATALE: Unhandled Access Violation Reading 0x5e43dff0 Exception at 5e43dff0h"

Ce à quoi le dessinateur répondit:

"Ca tombe bien je vais en profiter pour écouter un peu de rock qui décrasse les esgourdes"

http://www.facebook.com/pages/Ex-Voto/206836112741129?sk=wall

Posté(e)

GRASSY fonctionne et pas GRASS, ce sont exactement les mêmes !!! Faudra qu'on m'explique :P

 

Si tu veux essayer un type de ligne (cela évitera de multiple lignes)

Voici une définition:

 

Le fichier GRASS.LIN

*GRASS,|\l/vI'Ni|\l/vI'Ni|\l/vI'Ni
A,.1,[GRASS,sashp.shx,s=.1],-1.6

 

Le fichier sashp.shp (à compiler avec la commande AutoCad du même nom "_COMPILE")

*137,37,GRASS
014,01E,024,2,012,1,03C,023,02C,010,8,1,3,02C,01E,023,02C,010,014,01E,2,024,1,02D,010,034,02D,01C,010,023,02C,2,012,1,01C,012,0

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

Posté(e)

Merci pour tes réponses.

 

Je ne sais pas pourquoi GRASSY ne marchait pas, mais ça marche maintenant...!

 

J'ai essayé d'ajouter le type de ligne GRASS à AutoCAD.lin, ou de charger un fichier grass.lin ne contenant que les 2 lignes que tu as indiquées, mais dans les 2 cas j'obtiens la même réponse : "bad definition of GRASS (...)"

 

Quand au fichier .shp, je ne sais pas comment m'en servir.

 

Help !

 

Posté(e)

GRASSY fonctionne et pas GRASS, ce sont exactement les mêmes !!! Faudra qu'on m'explique

 

J'ai peut être parlé trop vite, il manquait les fonction (trans) pour que cela fonctionne quelque soit le SCU.

J'ai modifié le code précédent.

 

Quand au fichier .shp, je ne sais pas comment m'en servir.

 

Il est indispensable au fichier .LIN mais il faut au préalable le compiler (à l'aide de la commande "_COMPIL" d'Autocad, je me répète...) pour obtenir un SHX.

Ce SHX devra être accessible pour Autocad, il faut donc déplacer ce fichier SHX dans un dossier de recherche.

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

Posté(e)

Merci pour tes réponses.

 

Pour la version qui nécessite de créer un fichier .shx, d'autres utilisateurs (sur d'autres postes) pourront-ils :

- voir les lignes ?

- les éditer ?

 

Il me semble que non. De ce point de vue, le plus "universel" serait peut-être un LISP qui crée une polyligne qui zigzague entre 2 points en imitant vaguement de l'herbe (ces polylignes seraient toujours visibles et éditables par une tierce personne) ?

 

Posté(e)

Pour la version qui nécessite de créer un fichier .shx, d'autres utilisateurs (sur d'autres postes) pourront-ils :

- voir les lignes ?

- les éditer ?

 

Tout dépend de la transmission du fichier. Avec Etransmit (qui n'est pas un réflexe pour la plupart) il n'y aura pas de problème.

 

Si le fichier SHX et LIN sont absent se sera par défaut des lignes simples que l'on peut toujours éditer.

 

Autrement tu peut modifier ton fichier GRASSY que tu as posté.

 

change

(while (< (distance p2 sp) dx)
(setq p2 (polar p1 an (/ (+ (rn) (/ gh 2)) dn)))
(setq p3 (polar p2 (* pi 0.5) (* gh (rn))))
(setq p4 (polar p3 (* pi 0.6) (* gh (rn))))
(setq p5 (polar p4 (* pi 0.4) (* gh (rn))))
(command "LINE" p3 p5 "")
(setq p1 p2))

 

par

(command "_.pline")
(while (< (distance p2 sp) dx)
(setq p2 (polar p1 an (/ (+ (rn) (/ gh 2)) dn)))
(setq p3 (polar p2 (* pi 0.5) (* gh (rn))))
(setq p4 (polar p3 (* pi 0.6) (* gh (rn))))
(setq p5 (polar p4 (* pi 0.4) (* gh (rn))))
(command p3 p5)
(setq p1 p2))
(command "")

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

Posté(e)

Merci Bonuscad, ça marche très bien (effectivement, eTransmit n'est pas encore entré dans les moeurs).

 

Juste un détail : comment faire pour que la hauteur du gazon soit donnée en centimètres et pas en pouces ?

Posté(e)

comment faire pour que la hauteur du gazon soit donnée en centimètres et pas en pouces ?

 

avec:

(setq gh (getdist "\nApproximate height of grass : "))

(if (= gh nil) (setq gh 2))

 

Ce n'est qu'une histoire de message d'invite de (getdist) décidé par l'auteur. La valeur réelle que tu lui introduira soit au clavier, soit graphiquement sera interprétée en conséquence. Si ton dessin est en système métrique, la valeur entrée sera donc du mètre (ou centimètre)

 

Change simplement l'invite du message ;)

Pour la valeur par défaut change (setq gh TA_VALEUR_NUMERIQUE_SOUHAITEE)

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

Posté(e)

bonjour,

 

donne moi ton adresse perso, tu auras un super type de ligne,

car je ne sais pas comment insérer un fichier SHX,

tu sais cela fait 2 ans et demi que je suis en retraite, je n'ai plus AutoCAD mais j'ai gardé mes fichiers.

 

A+

 

 

 

Posté(e)

A la demande de richard-c, je poste les contenu des fichiers necessaire à la définition(le fichier SHX ne pouvant être joint d'une façon durable sur le forum)

 

Ce qui suit est à réaliser avec un copié-collé dans le bloc-note et à sauvegarder avec la bonne extension.

 

Le contenu du fichier HERBE.SHP

*1,70,HERBE
4,250,4,4,3,59,3,23,3,17,3,221,2,9,(0,0),1,
9,(-29,72),(37,-63),(-15,60),(32,-57),(0,48),(8,-48),(5,51),(0,-51),(32,49),(-26,-54),
(50,53),(-37,-52),(39,32),(-27,-28),(30,-12),(0,0),2,9,(-99,0),(0,0),
1,4,221,4,17,4,23,4,59,3,4,3,250,0

Ce fichier est à compiler dans Autocad avec la commande _COMPILE pour obtenir le fichier HERBE.SHX

 

Le contenu du fichier HERBE.LIN

*Herbe,Herbe
A,0,-.000035,[HERBE,Herbe.shx,y=.000057,s=1],-.019478

 

Ces fichiers SHX et LIN doivent être accessibles à Autocad (Dossier de recherche existant ou à définir) pour pouvoir les utiliser sans erreurs.

 

Il vous faudra peut être régler l'échelle du type de ligne de l'objet pour voir les motifs.

 

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

Posté(e)

 

Hello

 

Et moi j'obtiens ceci avec un MAP 2010 English/US :

 

Command: COMPILE

 

Compiling shape/font description file

Bad shape definition at line 1 of C:\Documents and Settings\patrice\Mes

documents\SHP.shp:

Expected '*n,len,name' shape header

 

SVP peux tu m'envoyer le SHP et le SHX dans ma MP :

cadxp at hotmail point fr

 

Le Decapode

 

 

Autodesk Expert Elite Team

Posté(e)

L'interprétation sur ce forum du copier-coller avec les BBcodes est une sinécure... :mad:

Des lignes supplémentaires vierges sont systématiquement insérées, on ne sait pas ou ce situe les fin de lignes.

Donc pour le postage de macro, de contenu de fichier de personnalisation, cela est toujours mal interprété.

 

Un bon conseil, utiliser Notepad2. :)

 

Si vous arrivez à reproduire ceci, il n'y aura plus de problème...

 

http://www.mabul.org/moe/up/10/11/24/c7jg5q8r.png

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

Posté(e)

Re,

 

Merci pour le complément d'info bonuscad,

 

richard-c m'a transmis le fichier par mail, très gentil de sa part,...

 

C'est cool de voir "les anciens" à nouveau sur CADxp, ;)

 

Heu, nouveau pb, je ne sais plus du tout comment on se sert sur autoCAD de ces fichiers avec cette extension,... :o

 

Merci d'avance,

 

Un bon conseil, utiliser Notepad2.

 

Je m'en sers déjà depuis la première fois ou tu m'avais donné ce conseil, il y a déjà quelques temps,... :P

Civil 3D 2025 - COVADIS_18.3b

https://www.linkedin...3%ABt-95313341/

Posté(e)

comment on se sert sur autoCAD de ces fichiers avec cette extension,...

 

Je suppose que tu parles des SHX ?!

 

En mode forme, avec la commande _LOAD, puis la commande _SHAPE.

 

Associer dans un fichier LIN, il suffit qu'il soit accessible pour AutoCad (chemin de recherche), il n'y a rien à faire, il est chargé avec la définition du type de ligne lorsque tu charge celle-ci.

 

Je m'en sers déjà depuis la première fois ou tu m'avais donné ce conseil

 

Alors tu aurais du arriver à compiler ce fichier... en enlevant les retours de ligne en trop, ou mal placé (en tête de fichier ou multiple en fin). :exclam:

car ton problème venait de là !

 

Ah si on pouvait joindre des fichier directement sur CadXp...

Les partages de fichiers par des sites auxiliaires finissent rapidement avec des liens morts. Pas cool pour les nouveaux venu qui pourraient exploiter d'ancien posts.

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

Posté(e)

Bonjour à toutes et tous,

 

Merci encore bonuscad,

 

Je suppose que tu parles des SHX ?!

 

Oui, ;)

 

J'ai essayé le ".lin", sans succès,... :o

 

http://img.ahst.fr/data/images/typesligne.jpg

 

Pourtant, j'ai bien

 

http://img.ahst.fr/data/images/lignespers.jpg

 

J'ai bien chargé la forme, (Est-ce qu'il faut charger ce fichier à chaque démarrage AutoCAD ?

 

http://img.ahst.fr/data/images/lignesiui.jpg

 

 

Une idée ?

 

Merci d'avance,

 

 

Civil 3D 2025 - COVADIS_18.3b

https://www.linkedin...3%ABt-95313341/

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é