Aller au contenu

Insertion de block sur le point d'un autre block


CadFrank

Messages recommandés

Bonjour à tous,

 

j'essai d'inserrer un block sur des blocks dynamic déja dans mon dessin. Je veux les localiser au meme point que leur point d'origine.

 

J'ai un routine que j'ai commencer mais les blocks qui se génère ne sont pas au point d'origine.

 

Que me manque t-il ?

 

Voici le code :

 

;¦¦¦ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¦¦¦;
;¦¦¦                        Ce sous-program défini les                       ¦¦¦;
;¦¦¦                            parametres initial                           ¦¦¦;
;¦¦¦ _______________________________________________________________________ ¦¦¦;

(defun Parametreinitial ()

 (setq retour (list
                (cons "osmode" (getvar 'osmode))
                (cons "clayer" (getvar 'clayer))
              )
 )
 (setvar 'OSMODE 0)
   
 retour ; la dernière expression est retournée par la fonction

); fin parametreinitial

;¦¦¦ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¦¦¦;
;¦¦¦                        Ce sous-program remet les                        ¦¦¦;
;¦¦¦                            parametres initial                           ¦¦¦;
;¦¦¦ _______________________________________________________________________ ¦¦¦;

(defun Parametrefin (retour)

 (foreach p retour
   (setvar (car p) (cdr p))
 )

);fin parametrefin

(defun c:mrt (/ ss1 ctr ent blk pts)
 
 (vl-load-com)
 
 
 
 (setq ss1 (ssget "_x" '((8 . "-AL TETE"))))
;(setq ss1 (ssget "_X" '((2 . "TETE M-R"))))
 (setq  ctr 0)
 
 (setq init (Parametreinitial))
 
 (repeat (sslength (entget)))

   (setq ent (entget ss1))
   (setq blk "VERIN M-R")
   (setq pts (cadr (assoc '10 ent)))
   (command "_insert" blk pts 1 1 0 "")

   (setq ctr (1+ ctr))
   
 )
 
 (parametrefin init)
 
 (princ)
 
)

Lien vers le commentaire
Partager sur d’autres sites

Pourquoi faire un LISP alors que la commande AutoCAD existe ?

 

commande "-inserer" valider puis "nombloc1=nombloc2"

Bien mettre le "-" devant le inserer pour ne pas avoir la boite de dialogue.

 

Plus personne ne connait les commande au clavier !!! Sans compter ceux qui ne lisent pas la ligne de commande quand ils lancent une commande. Je n'arrête pas de le dire à mon bureau, LISEZ CE QU'AUTOCAD VOUS PROPOSE !"

Autodesk Expert Elite Member

Lien vers le commentaire
Partager sur d’autres sites

Pourquoi faire un LISP alors que la commande AutoCAD existe ?

 

commande "-inserer" valider puis "nombloc1=nombloc2"

 

bien sur que la command existe pour remplacer un bloc ou le redefinir avec un autre.

 

Mais moi je cherche à ajouter le bloc sur le point central d'un bloc.

 

De plus, le fait que mes bloc sont dynamic la command express remplacer le bloc ne fonctionne pas.

 

Voila, le pourquoi de la routine.

 

j'espère que cela répond à ta question.

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é