Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

Je n'ai pas trouvé de réponse dans les post existants alors je me lance.

J'ai exporté un shp de point en dxf. J'ai maintenant un dxf où se trouve 880 points.

J'aimerais insérer un bloc très simple, sans attribut ni rien (juste un rond noir, ce sont des gares)sur chacun des 880 points en une seule manip.

Qq1 aurait il un petit lisp? ou peut être que a existe déjà dans le logiciel mais je n'ai pas trouvé....

Je sais qu'avec Covadis on peut le faire seulement voilà, je n'ai pas Covadis, juste Autocad 2012.

 

Merci pour votre aide!

 

Bonne journée

Posté(e)

Bonjour Ronsinette,

 

Je n'ai pas retrouvé le lisp donc voici un code vite fait.

  (defun c:inspoint (/ *error echo accro ss1 ent blocname)
 (defun *error* (errmsg)
   (setvar "osmode" accro)
   (setvar "cmdecho" echo)
   (princ errmsg)
   )
 (setq echo (getvar 'cmdecho)
accro (getvar 'osmode))
 (setvar "osmode" 0)
 (setvar "cmdecho" 0)
 (princ "\n Sélectionnez les points")
 (setq ss1 (ssget '((0 . "point")))
blocname (cdr (assoc 2 (entget (car (entsel "\n Sélectionnez le bloc")))))
)
 (repeat (sslength ss1)
   (setq ent (ssname ss1 0))
   (command "_-insert" blocname (cdr (assoc 10 (entget ent))) "" "" "")
   (ssdel ent ss1)
   )
 (setvar "osmode" accro)
 (setvar "cmdecho" echo)
 (princ)
 )

 

Je suis débutant en programmation donc ce lisp n'est pas exempt de défaut.

Le bloc doit déjà être présent sur le dessin.

Pour un bon fonctionnement, privilégier le scg lors du lancement.

Ce lisp ne demande pas les échelles ni l'angle de rotation mais je peux le modifier.

 

Olivier

Posté(e)

Merci Olivier!

Finalement, un collègue m'en a trouvé un

si tu veux comparer je le met en pièce jointe

Déroulement du Lisp :

- commande : p2b

- choisir un bloc (on est obligé de taper le nom exact du bloc, qui doit appartenir au dessin en cours)

- sélectionner les points (ou par fenêtre de capture ou faire un sélection rapide avant de lancer le Lisp)

- valider (Attention : les points ne sont pas supprimés)

 

Cela m'a l'air d'être un peu comme le tien quant au fonctionnement, non?

 

Bonne journée

 

 

 

 

Bonjour Ronsinette,

 

Je n'ai pas retrouvé le lisp donc voici un code vite fait.

  (defun c:inspoint (/ *error echo accro ss1 ent blocname)
 (defun *error* (errmsg)
   (setvar "osmode" accro)
   (setvar "cmdecho" echo)
   (princ errmsg)
   )
 (setq echo (getvar 'cmdecho)
accro (getvar 'osmode))
 (setvar "osmode" 0)
 (setvar "cmdecho" 0)
 (princ "\n Sélectionnez les points")
 (setq ss1 (ssget '((0 . "point")))
blocname (cdr (assoc 2 (entget (car (entsel "\n Sélectionnez le bloc")))))
)
 (repeat (sslength ss1)
   (setq ent (ssname ss1 0))
   (command "_-insert" blocname (cdr (assoc 10 (entget ent))) "" "" "")
   (ssdel ent ss1)
   )
 (setvar "osmode" accro)
 (setvar "cmdecho" echo)
 (princ)
 )

 

Je suis débutant en programmation donc ce lisp n'est pas exempt de défaut.

Le bloc doit déjà être présent sur le dessin.

Pour un bon fonctionnement, privilégier le scg lors du lancement.

Ce lisp ne demande pas les échelles ni l'angle de rotation mais je peux le modifier.

 

Olivier

Lisp P2B.lsp

Posté(e)

Effectivement très proche.

 

Sélection du nom de bloc différente, et je en vois pas de désactivation de l'accrochage objet (pose problème s'il y a d'autre objets proche des points)

 

Sur le mien, il manque la désactivation de la demande d'attribut.

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é