Aller au contenu

LISP: programme cotation automatique d\'une polyligne


Invité pleche.damien

Messages recommandés

Invité pleche.damien

Bonjour, je débute en lisp et je veut réaliser une cotation linéaire automatique de mon programme lisp (dessin automatique d'une polyligne d'une fondation en BETON ARME). La premiere cotation entre le point pt00 et pt09 fonctione bien mais la cotation de d'autre point de mon programme lisp ne fonctione pas. Je vous mais ci joint le début de mon programme. Je vous remercie d'avance pour votre aide:

 

Remarque: voir la cotation automatique en lisp à la fin du programme.

 

;;     fondation polyligne    ;

(defun c:fondation ()
 (setvar "cmdecho" 0)

 ;; type de calque 03 - BETONVU couleur 5 bleu,
 (command "-calque" "n" "03 - BETONVU" "co" 5 "03 - BETONVU" "ch" "03 - BETONVU" "")

 (setq pt01 (getpoint "\n point d'insertion fondation: coupe "))
 (setvar "osmode" 0)

 ;;les données sur le dimenssionements:
 ;; massif,  
 (setq longGA (getdist "\n longueur A du massif"))
 (setq longGB (getdist "\n largeur B du massif"))
 (setq longGH (getdist "\n longueur H du massif"))
 ;;fût,
 (setq longPA (getdist "\n longueur a du fût"))
 (setq longPB (getdist "\n largeur b du fût"))
 (setq longPH (getdist "\n hauteur h du fût"))
 ;; longueur aide pour tracer,
 (setq longDA (getdist "\n débort fondation"))

 ;; tracer vue en coupe
 ;; tracer du massif, définition des point, et application de la commande polyligne,
 (setq angl (getangle "\n donner l'orientation de la fondation"))
				; détermine un angle de rotation de la base de la fondation
 (setq pt02 (polar pt01 (+ angl (/ 0)) longGA))
				; détermine les coordonés du point pt02 par rapport à pt01 
 (setq pt03 (polar pt02 (+ angl (/ pi 2)) longGH))
 (setq pt04 (polar pt03 (+ angl (/ pi)) longDA))
 (setq pt05 (polar pt04 (+ angl (/ pi 2)) longPH))
 (setq pt06 (polar pt05 (+ angl (/ pi)) longPA))
 (setq pt07 (polar pt06 (- angl (/ pi 2)) longPH))
 (setq pt08 (polar pt07 (+ angl (/ pi)) longDA))


 (command "polylign" pt01 pt02 "c")	; trace la polyligne pt01 pt02
 (command "polylign" pt02 pt03 "c")	; trace la polyligne pt02 pt03
 (command "polylign" pt08 pt01 "c")	; trace la polyligne pt08 pt01
 (command "polylign" pt03 pt04 "c")	; trace la polyligne pt03 pt04
 (command "polylign" pt04 pt05 "c")	; trace la polyligne pt04 pt05
 (command "polylign" pt05 pt06 "c")	; trace la polyligne pt05 pt06
 (command "polylign" pt06 pt07 "c")
 (command "polylign" pt07 pt08 "c")
 (command "polylign" pt08 pt01 "c")

 ;; tracer vue de dessus

 (setq pt00 (getpoint "\n point d'insertion fondation: vue de dessus "))
 (setq pt09 (polar pt00 (+ angl (/ 0)) longGA))
 (setq pt10 (polar pt09 (+ angl (/ pi 2)) longGB))
 (setq pt11 (polar pt10 (+ angl (/ pi)) longGA))

 (command "polylign" pt00 pt09 "c")
 (command "polylign" pt09 pt10 "c")
 (command "polylign" pt10 pt11 "c")
 (command "polylign" pt11 pt00 "c")

 ;; Cotation
 ((command "dimaligned" pt00 pt09 "c")
   (* 5 (getvar "DIMTXT"))
 )
 ((command "dimaligned" pt01 pt02 "c")
   (* 5 (getvar "DIMTXT"))
 )
 
;; fin,
)

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Avant même de regarder plus en détail le lisp, je vois que tu fais par exemple (command "polylign" pt01 pt02 "c") : tu traces une polyligne entre 2 points, et tu utilises l'option Clore.

Le résultat est une polyligne constituée de 2 segments identiques superposés (décompose une des polylignes pour voir)... :casstet:

 

Ensuite :

 

- (+ angl(/ 0 )), c'est-à-dire angl + 0/??? : il manque un argument à la fonction /

- (+ angl(/ pi )), idem

 

- ((command "dimaligned" pt00 pt09 "c") (* 5 (getvar "DIMTXT"))) : il y a des parenthèses en trop, je suppose que tu voulais écrire

(command "dimaligned" pt00 pt09 "c" (* 5 (getvar "DIMTXT")))

 

- il n'y a pas d'option "c" dans la commande dimaligned :casstet:

- je ne vois pas à quoi doit servir (* 5 (getvar "DIMTXT"))...

 

 

 

[Edité le 18/4/2011 par bryce]

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Pour que ton code soit plus lisible, utilise les bbcodes :

[surligneur][[/surligneur][surligneur]code[/surligneur][surligneur]][/surligneur] ici le code [surligneur][[/surligneur][surligneur]/code[/surligneur][surligneur]][/surligneur]

 

donne :

 ici  le code 

 

Accessible via l'icône [#] :

http://img94.imageshack.us/img94/8380/bbcode.png

 

 

Pour répondre à ta question, sans avoir testé le code, il me semble qu'il y a trop de parenthèses dans les deux dernières expressions :

 

  ((command "dimaligned" pt00 pt09 "c")
   (* 5 (getvar "DIMTXT"))
 )
 ((command "dimaligned" pt01 pt02 "c")
   (* 5 (getvar "DIMTXT"))
 ) 

 

essaye avec :

 

(command "dimaligned" pt00 pt09 "c" (* 5 (getvar "DIMTXT")))
 (command "dimaligned" pt01 pt02 "c" (* 5 (getvar "DIMTXT")))

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

Lien vers le commentaire
Partager sur d’autres sites

Bonjour ,

Toujours aussi précis gile !!

 

A tu deja fais un lisp de citation auto gile ? Merci d'avance de ta réponse

DAO: AutoCAD(2D & 3D), Covadis

CAO: 3D's MAX, Rhinoceros 3D, REVIT

GeoModeliSation: AutoCAD MEP, RhinoTerrain

Rendu: Vray for Rhino, Keyshot, Lumion

Programmation: Grasshopper, Dynamo, VisualStudio

 

C.V.

Profil LinkedIn

Book

Site web

 

http://nsa37.casimages.com/img/2016/09/26/160926023334168603.jpg

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

Escusez mon iPhone avec cette putain de correction automatique....

 

Je voulais dire biensur (c'etait facile à trouver) cotation automatique...

DAO: AutoCAD(2D & 3D), Covadis

CAO: 3D's MAX, Rhinoceros 3D, REVIT

GeoModeliSation: AutoCAD MEP, RhinoTerrain

Rendu: Vray for Rhino, Keyshot, Lumion

Programmation: Grasshopper, Dynamo, VisualStudio

 

C.V.

Profil LinkedIn

Book

Site web

 

http://nsa37.casimages.com/img/2016/09/26/160926023334168603.jpg

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é