Aller au contenu

Messages recommandés

Posté(e)

bon c'est un lisp probablement impossible à faire mais je pose la question au cas ou...

 

Voila, peut on faire un lisp qui snap sur autocad, c'est à dire que je dessine un carré et ce lisp placerait automatiquement les sommets de ce carré sur le point le plus proche de la grille....

 

Posté(e)

coucou,

 

y'a beaucoup de vent chez Toi ? (hihihihi)

c'est à cause du pseudo :(

 

blague à part, concrètement

cest toi qui dessine le carré, ok

les côtés font combien ?

est ce un seul point du carré qui sera sur la grille ?

si oui lequel ?

sont ce les quatre sommets ?

 

la balle est dans ton, camp...

 

amicalement

Posté(e)

Salut,

 

Voilà déjà une routine qui retourne le point le plus proche sur la grille.

 

(defun snap-pt (pt)
 (mapcar '(lambda (x1 x2)
     (if (minusp x1)
       (* x2 (fix (- (/ x1 x2) 0.5)))
       (* x2 (fix (+ (/ x1 x2) 0.5)))
     )
   )
  pt
  (getvar "SNAPUNIT")
 )
) 

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

Posté(e)

coucou,

 

je suis bien d'accord avec Toi, mon her Patrick_35,

j'ai posé mes questions pour savoir si il souhaite des coordonnées rondes

en fonction du pas de la grille, ou autre chose.

 

c'est faisable, (gile) le prouve, les routines de carroyage aussi

mais dans son cas, quel est le réel besoin de programmation ?

 

amicalement

 

Posté(e)

Bonjour

 

Vous donnez un peu espoir la...

 

Alors, la résolution qui serait parfaite serait le cm.

 

Effectivement c'est moi qui fait le carré mais sans que je sache si l'emplacement de ces sommets est sur la grille ou pas, et sans que je sache la longueur des arêtes.

Le but serait que chaque sommet en executant le lisp se retrouve automatiquement sur un point de ma grille de 1 cm de résolution.

 

Merci encore

Posté(e)

oui F9 permet de snaper ces points, c'est à dire que lorsque snap est activé mon pointeur ce déplace uniquement sur ma grille.

Ce que je voulais c'était dessiner un carré sans la commande snap, ci bien que les sommets de mon carré sont placé sans tenir compte de la grille et que la commande me resnape tous les sommets, c'est à dire me met les sommets sur ma grille

 

Mon bon c'est probablement impossible, je posais juste la question...

Posté(e)

Toujours avec RESOL:

 

Un exemple pas à pas

 

LIGNE Spécifiez le premier point:[surligneur] < Résol inactif > [/surligneur] on désactive resol et on pointe le point de départ

Spécifiez le point suivant ou [annUler]: [surligneur]'snapbase [/surligneur] tapé au clavier!

>>Entrez une nouvelle valeur pour SNAPBASE <0.00,0.00> : [surligneur] @ [/surligneur] pour définir le dernier point entré comme point de base

Reprend la commande LIGNE.

 

Spécifiez le point suivant ou [annUler]: [surligneur]< Résol actif > [/surligneur] on réactive résol et on pointe le point suivant

Spécifiez le point suivant ou [annUler]:

Spécifiez le point suivant ou [Clore/annUler]:

Spécifiez le point suivant ou [Clore/annUler]:

Spécifiez le point suivant ou [Clore/annUler]: et on continu tant qu'on veut

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

Posté(e)

en fait ce que je fais jusquà maintenant consiste à sélectionner le sommet, faire F9 et je replace le point, ca reviens un peu au meme non?

Posté(e)

faire F9 et je replace le point

 

J'ai du mal à te suivre :casstet:

 

Ce que j'ai voulu te montrer et l'utilisation de 'SNAPBASE qui va te recaler ta grille de résolution au dernier point entré.

 

Après forcément les cotés de ton carré seront des multiple de la valeur de RESOL, ce qui ne serait pas le cas si tu ne RECALE PAS le point de base de ta résolution.

 

Ou alors on se comprend mal, as tu essayé la démarche proposée?

Si c'est le cas exprime toi avec des images

Un dessin vaut mieux qu'un long discours

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

Posté(e)

 

Coucou

 

La manip de bonuscad me semble parfaite !

 

Et donc à partir de tes explications, j'ai compris la meme chose que bonuscad ...

 

Donc 2 choses l'une :

 

soit nous (Bonuscad, Didier, Lecrabe, etc) sommes "à coté de la plaque" !

 

soit tu t'expliques mal !

 

Le Decapode "interrogatif"

 

Autodesk Expert Elite Team

Posté(e)

bon, je suis vraiment désolé de ne pas être assez clair...

je le tente avec duex images:

 

La première image correspond à une ligne dessinée sans snap

 

La seconde image correspond à ce que je voudrais obtenir automatiquement avec un lisp, c'est à dire la ligne avec chaque sommet sur un point de la grille, l'idée étant que je peux avoir des dizaine de lignes et qu'elles se placent toutes en un clic sur la grille

 

http://img525.imageshack.us/img525/8932/image1eu8.jpg

http://img161.imageshack.us/img161/9786/image2jo9.jpg

Posté(e)

Ce que je comprends : il s'agirait de mettre, à posteriori, les entités sélectionnées sur la grille.

 

Avant d'aller plus avant, je te propose un premier jet qui fonctionne avec les lignes et polylignes et les paramètres courant de RESOL.

 

(defun c:snap (/ snap-pt ss n elst)

 (defun snap-pt (pt)
   (mapcar '(lambda (x1 x2)
       (if (minusp x1)
	 (* x2 (fix (- (/ x1 x2) 0.5)))
	 (* x2 (fix (+ (/ x1 x2) 0.5)))
       )
     )
    pt
    (getvar "SNAPUNIT")
   )
 )

 (prompt
   "\nSélectionner les objets à accrocher à la grille ou : "
 )
 (or (setq ss (ssget '((0 . "LINE,LWPOLYLINE"))))
     (setq ss (ssget "_X" '((0 . "LINE,LWPOLYLINE"))))
 )
 (if ss
   (repeat (setq n (sslength ss))
     (setq elst (entget (ssname ss (setq n (1- n)))))
     (cond
((= (cdr (assoc 0 elst)) "LINE")
 (entmod
   (subst (cons 10 (snap-pt (cdr (assoc 10 elst))))
	  (assoc 10 elst)
	  (subst (cons 11 (snap-pt (cdr (assoc 11 elst))))
		 (assoc 11 elst)
		 elst
	  )
   )
 )
)
((= (cdr (assoc 0 elst)) "LWPOLYLINE")
 (entmod
 (mapcar '(lambda (x)
	    (if	(= (car x) 10)
	      (cons 10 (snap-pt (cdr x)))
	      x
	    )
	  )
	 elst
 )
 )
)
     )
   )
 )
 (princ)
) 

 

[Edité le 15/6/2007 par (gile)]

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

Posté(e)
Je ne compren pas :o

Un F9 suffit :exclam:

 

@+

 

Un F9 avant de dessiner, bien sûr ;)

 

Mais si les objets ont été dessinés alors que RESOL était inactif, ou si on en change les paramètres, le LISP accroche les entités sélectionnés sur les point les plus proches de la grille.

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

Posté(e)

oui c'est exactement ca, c'est à posteriori...

 

En fait pour expliquer un peu plus, je dessine sur autocad presque uniquement en snap parce qu'avec l'accrochage objet il y a trop d'imprecisions, c'est une technique qui marche très bien, seulement je reçois des fois des fichiers ou les imprecisions sont importantes si bien que je dois snaper les lignes et c'est assez long c'est pourquoi je rêve d'un lisp snaper!

 

j'ai essayé le lisp snap-pt:

1 je trace une rectangle

2 je lance le lisp : snapunit

3 " ENTREZ UNE NOUVELLE VALEUR POUR SNAPUNIT (.01,.01)"

4 Je clic sur l'un des sommet de mon rectangle

 

 

Mon sommet se trouve sur mon snap mais pas les autres, et l'échelle de mon snap à changer

X:2.137295526507614

Y:2.877070619494418

 

a t'il qqchose que je fais de travers?

 

[Edité le 15/6/2007 par blizard]

Posté(e)

En fait pour expliquer un peu plus

Tu aurais dû commencer par là ...

 

 

Sinon, tu charges le LISP (voir ici), tu entres snap, et tu sélectionnes les entités (lignes et polylignes pour l'instant) que tu veux accrocher à la grille.

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

Posté(e)

C'est incroyable!!!

Ca fonctionne superbement bien!

Un énorme merci, vous ne pouvez pas vous rendre compte à quel point c'est énorme!

 

Merci encore

 

MERCI, MERCI, MERCI, MERCI, MERCI, MERCI, MERCI,MERCI, MERCI, MERCI, MERCI, MERCI!!!

 

 

[Edité le 15/6/2007 par blizard]

Posté(e)

De rien...

 

Je modifie le LISP, pour pouvoir sélectionner toutes les lignes et polylignes en faisant Enter, Espace ou clic droit ou sélectionner seulement quelques objets.

 

Si tu veux aussi traiter d'autre types d'objets, fais le savoir, j'essayerais de les intégrer.

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

Posté(e)

je suis en train de tester sur mes fichiers, j'en reviens toujours pas!!!!

 

Il faut rentrer dans les blocs pour les sniper, mais c'est un gain de temps et de précision incroyable

Posté(e)

oui effectivement ca aurait été plus compréhensible...

Les choses les plus évidentes des fois....

Escusez moi pour le détour

 

 

Pour le lisp de bonuscad, j'ai un souci de chargement, j'ai enregistré le lisp sous

regular_draw et j'ai ce message d'erreur:

Commande: ; erreur: type d'argument incorrect: numberp: nil

 

C'est possible d'intégrer le point d'insertion des blocs et les côtes?

Bon je crois que j'exagère un peu... je suis déjà très content que ce lisp soit possible

 

 

 

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é