Aller au contenu

Remplacer un point par un bloc ?


Messages recommandés

Posté(e)

Bonjour,

 

Par une fonction ou un lisp, est-il possible de remplacer un point par un bloc ? et vice versa ?

 

ex :

Sur un fichier il y a 100 arbres représentés par 100 points. Je souhaite remplacer chaque point par un bloc "ARBRE"

 

 

Peut-on déplacer automatiquement des points vers une polyligne par un accrochage objet "perpendiculaire" et ce en définissant la périmétre de recherche par le point ?

 

Merci.

Posté(e)

Est-ce que tes points sont dans un calque précis ? Ou tous les points existants doivent être remplacés ?

 

"Chacun compte pour un, et nul ne compte pour plus d'un."

Posté(e)

Salut,

Par une fonction ou un lisp, est-il possible de remplacer un point par un bloc ? et vice versa ?

;;; Remplace Nodal par Bloc demandé
(defun c:pt-blc (/ sel i nb)
 (vl-load-com)
 (princ "\n Choix des points :")
(or (setq sel (ssget '((0 . "POINT"))))
 (setq sel (ssget "_X" '((0 . "POINT")))))
 (setq nb (getstring T (strcat "\n Entrez le nom du bloc <"(getvar "INSNAME")">:")))
 (if (equal nb "") (setq nb (getvar "INSNAME")))

 (repeat (setq i (sslength sel))
   (command "_insert" nb (cdr (assoc 10 (entget (ssname sel (setq i (1- i))))))
     1 1 0)
   (vla-delete (vlax-ename->vla-object (ssname sel i)))
   )
 (princ (strcat "\n " (rtos (sslength sel)) " Points remplacé par Bloc "(getvar "INSNAME")""))
 (princ)
 )


;;;Remplace Bloc Selectionné par Nodal
(defun c:bloc-pt (/ sel i)
 (vl-load-com)
 (princ "\n Choix des Blocs :")
(or (setq sel (ssget '((0 . "INSERT"))))
 (setq sel (ssget "_X" '((0 . "INSERT")))))

 (repeat (setq i (sslength sel))
   (command "_point" (cdr (assoc 10 (entget (ssname sel (setq i (1- i)))))))
   (vla-delete (vlax-ename->vla-object (ssname sel i)))
   )
 (princ (strcat "\n " (rtos (sslength sel)) " Blocs remplacé par Point."))
 (princ)
 )

 

[Edité le 13/12/2007 par Bred]

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)
Peut-on déplacer automatiquement des points vers une polyligne par un accrochage objet "perpendiculaire" et ce en définissant la périmétre de recherche par le point ?

Est-ce que ce lisp de (gile) ne te conviendrais pas ?

 

(Ecrire une demande par post !!!)

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Re,

Peut-on rajouter dans le script une "fonction" requête (nom du bloc ?)

je pense que c'est de mon code que tu veux parler... (et oui, c'est le problème avec plusieurs demande dans un même message ... ;) )

C'est fait, j'ai modifié le code pour qu'un nom de bloc soit demandé (ou par défaut le bloc insérer précedement)

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

bonjour,

 

je suis sous V2002.

 

voila ce que me retourne AutoCAd après avoir lancé pt-arb :

 

[surligneur] Commande: ; erreur: no function definition: VLAX-ENAME->VLA-OBJECT[/surligneur]

 

il a quand même dessiné le 1er bloc.

 

A+

Posté(e)

Salut Richard-c,

Sous 2002 les fonctions visual-lisp ne doivent pas être chargé automatiquement.

Il faut donc lui demander de le faire.

Il faut rajouter (vl-load-com) en début de code.

J'ai modifié les codes ci-dessus en conséquence.

 

 

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

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é