Aller au contenu

Vincent P.

Membres
  • Compteur de contenus

    328
  • Inscription

  • Dernière visite

  • Jours gagnés

    9

Tout ce qui a été posté par Vincent P.

  1. Salut! Déjà, merci zebulon_ pour ton aide! Je souhaitais désactiver l'accroche objet car ca me perturbe lorsque j'utilise la commande :wacko: Du coup, mon code ressemble désormais à ça : DEFUN c:Bordure (/ ep ent osm ) (initget "Autre T1 T2 T3 T4 T5 P1 G30") (setq ep (cdr (assoc (getkword "\nType de bordure [Autre/T1/T2/T3/T4/T5/P1/G30] <T2> : " ) '((nil . 0.15) ("T1" . 0.12) ("T2" . 0.15) ("T3" . 0.17) ("T4" . 0.20) ("T5" . 0.24) ("P1" . 0.08) ("G30" . 0.30) ("Autre" . nil) ) ) ) ) (If (= ep nil) (setq ep (getreal "\nLargeur de la Bordure? : ")) (princ ep)) (command "_POLY2D" "G" "_non" pause "_non" pause "" "") ; Créer une polyligne en suivant un contour (SETQ ent (entlast)) ; Selectionne la polyligne créée (COMMAND "_PEDIT" ent "_width" ep "") ; Modifie la largeur de la polyligne (COMMAND "_offset" (/ ep 2) ent pause "") ; Copier-décaler la polyligne (ENTDEL ent) ; Supprimer la 1er polyligne ) Bien! Ma prochaine problématique : temps que je dessine de la bordure T2, tous vas bien, mais si je me met à dessiner autre chose (par exemple de la P1), à chaque lancement de la commande je doit lui repréciser le type de bordure. Mon idée est donc de mémoriser la dernière entrée et ne plus imposer <T2> par défaut. Autrement dit, je souhaite retrouver le fonctionnement de commandes comme par exemple Décaler (offset) qui mémorise la dernière valeur de décalage et la propose par défaut lors de la prochaine utilisation. En cherchant, je suis tombé sur les variable environnementales (getenv setenv), et je voudrais savoir si elle sont une solution à ma question. Et si oui, y a t'il une méthode plus simple? (je me complique peut-être la vie)
  2. Bonjour, Alors j'ai un peu travaillé dessus (en m'inspirant de ce que je trouvais ce ci de là) et j'en suis sorti avec un lisp qui me plais plutôt bien : ;;; Créer une bordure (DEFUN c:Bordure (/ ep ent osm) (setq osm (getvar "OSMODE")) ; Mémoriser l'accroche Objet (setvar "OSMODE" 0) ; désactiver l'accroche Objet (initget "T1 T2 T3 T4 T5 P1 G30") (setq Ep (cdr (assoc (getkword "\nType de bordure [T1/T2/T3/T4/T5/P1/G30] <T2> : " ) '((nil . 0.15) ("T1" . 0.12) ("T2" . 0.15) ("T3" . 0.17) ("T4" . 0.20) ("T5" . 0.24) ("P1" . 0.08) ("G30" . 0.30) ) ) ) ) (command "_POLY2D" "G" pause pause "" "") ; créer une polyligne en suivant un contour (SETQ ent (entlast)) ; Sélectionne la polyligne créée (COMMAND "_PEDIT" ent "_width" ep "") ; Modifie la largeur de la polyligne (COMMAND "_offset" (/ ep 2) ent pause "") ; copier-décaler la polyligne (ENTDEL ent) ; supprimer la 1er polyligne (setvar "OSMODE" osm) ; Rétablir l'accroche Objet ) Donc tous marches bien, je peux faire des longueurs de bordures en suivant une polyligne. Tout fonctionne bien si j'exécute entièrement la commande. Mais, si j’interromps avant la fin (parce que j'ai sélectionné le mauvais contour à suivre, ou autre), mon accroche objet ne se rétabli pas. C'est normale puisque je le désactive en début de commande et que je le rétablie à la toute fin. Ma question du moment est donc : Est-il possible de rétablir mon accroche objet (osmode) lorsque j’interromps la commande en cour?
  3. Bien le bonjour nobles Lispeurs! Je viens à vous en ce jour car je me confronte a un blocage. Je ne suis pas un grand pacha d'AutoLisp, mais en venant ici, j'avais dans l'espoir que vous pourriez solutionner mon problème. Je vous mets dans la situation. Je travaille sur des plans de VRD, et souhaite dessiner des bordures le long de mes voiries. En plan de support, j'ai un plan de revêtement dans lequel j'ai toutes mes surfaces de projet qui sont modélisées par des hachures (un type pour les voiries, un autre pour les trottoir, les espaces vert ....), chaque hachures est bordé d'une polyligne, et entre mes contours, j'ai un espace de 15-20cm prévu pour accueillir mes bordures. Je souhaite donc me faciliter la vie avec un lisp qui me permettras de suivre mes polylignes de contour, et qui me créeras automatiquement une polyligne décalé et de la bonne épaisseur. Voici mon premier jet : ;;;Créer une bordure (defun c:Bordure (/ ep ent p1 p2) (initget 1 "0.15 0.20") (setq ep (getreal "\nSpécifiez l'épaisseur de la dordure : [0.15/0.20]")) (setq p1 (getpoint "\nSpécifiez le premier point à suivre : ")) (command "_PLINE" p1 "la" ep ep ) (command " ") (setq ent (entlast) p2 (getpoint "\nSpécifiez le coté où décaler : ")) (command "_offset" (/ ep 2) ent p2 ; décaler la polyligne " ") (entdel ent) ; supprimer la 1er polyligne ) Sauf que ça ne prend pas. Je dessin bien ma première polyligne (qui se superpose avec mes contours de hachures), elle est de la bonne épaisseur, mais pas de décalage. Merci par avance pour votre aide et vos conseils.
×
×
  • 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é