Aller au contenu

Suppresion du dynamisme d'un block


benoitlacroix

Messages recommandés

Bonjour à tous

Je voulais savoir s'il existe une commande pour supprimer l'option "dynamique" d'un bloc tout en conservant ce bloc une fois inséré et dimensionner selon les besoins. 

Si la commande n'existe pas pourrait-on le faire en LISP?

En vous remerciant d'avance pour vos réponses.

@+

  • Like 1

Le trlalala du nain

  • - Moi c'que j'aime dans les cavernes
  • - C'est qu'on peut allez piocher.
  • - on peut extraire du minerais
  • - Et des pierres pour les tailler
Lien vers le commentaire
Partager sur d’autres sites

Salut,

(vl-load-com)
(or *acad* (setq *acad* (vlax-get-acad-object)))
(or *acdoc* (setq *acdoc* (vla-get-ActiveDocument *acad*)))
(or *blocks* (setq *blocks* (vla-get-Blocks *acdoc*)))

;; GetItem (gile)
;; Retourne le vla-object de l'item s'il est présent dans la collection (ou nil)
;;
;; Arguments
;; col : la collection (vla-object)
;; name : le nom de l'objet (string) ou son indice (entier)

(defun gc:GetItem (col name / obj)
  (vl-catch-all-apply
    (function (lambda () (setq obj (vla-Item col name))))
  )
  obj
)

;; DYN2STAT
;; Converti les blocs dynamiques sélectionnés en blocs statiques
(defun c:DYN2STAT (/ s)
  (if (ssget '((0 . "INSERT")))
    (progn
      (vla-StartUndoMark *acdoc*)
      (setq s (vla-get-ActiveSelectionSet *acdoc*))
      (vl-catch-all-apply
	(function
	  (lambda (/ i n)
	    (vlax-for b	s
	      (if (= (vla-get-IsDynamicBlock b) :vlax-true)
		(progn
		  (setq i 1)
		  (while
		    (gc:GetItem *blocks* (setq n (strcat (vla-get-EffectiveName b) "_" (itoa i))))
		     (setq i (1+ i))
		  )
		  (Vla-ConvertToStaticBlock b n)
		)
	      )
	    )
	  )
	)
      )
      (vla-Delete s)
      (vla-EndUndoMark *acdoc*)
    )
  )
  (princ)
)

 

  • Like 1

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

Lien vers le commentaire
Partager sur d’autres sites

Hello

Veux tu une routine Lisp/VLisp qui supprime le Dynamisme d'un Bloc dynamique selectionne

et donc le transforme en Bloc classic / standard ?! Sans toucher au Bloc dynamique original !?

La Sante, Bye, lecrabe (triste & fatigue)

PS: battu par notre grand maitre Gilles ! ... Et j'allais sans doute fournir la meme routine de Gilles !

 

 

  • Like 1

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...
  • 3 ans après...

Bonjour à tous!

Merci pour vos réponses!
Je ne suis pas du tout familier du lisp...
Je copie cette routine dans un fichier "Bloc-note" que j'enregistre en .lsp ? 
C'est ça?
Je la charge avec Appload???

Comment je lance la routine?

Pardonnez mon ignorance 😁

Je vais chercher des tutos LISP en attendant vos réponses 😅

Lien vers le commentaire
Partager sur d’autres sites

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é