Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

Le Programme pline_block est vraiment excellent (merci Gilles), cependant je me pose une question et de ce fait je vous la suggère:

 

Quand je sélectionne ma polyligne, il m'ouvre la boite de dialogue pour sélectionner un nom...

 

Ensuite, une fois sélectionné, je me retrouve avec mon curseur pour poser le bloc!

 

Serait il possible de l'avoir en vu avant de le poser, en fait savoir exactement ou je vais le placer.... (je suis pas sur d'etre clair)

 

Si vous avez des idées sur le sujet :P

 

Merci

 

"Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."

J-C Van Damme

Posté(e)

Salut,

 

Je ne sais pas quelle version tu utilises, je suis donc parti de la dernière version en téléchargement sur cette page.

 

Le périmètre est converti des centimètres en mètre et la surface des centimètres carré en mètres carré.

Le bloc est inséré sur le centre de gravité de la polyligne et se trouve au bout du pointeur.

Il suffit de faire ECHAP pour le laisser sur le centre de gravité ou de le placer où on veut avec le pointeur.

 

;;; Pline_block -Gilles Chanteau- 13/04/07
;;; Insère le bloc "pline_block" après sélection d'une polyligne
;;; Attribut 1 : Nom de la pièce
;;; Attribut 2 : Longueur de la polyligne
;;; Attribut 3 : Aire de la polyligne
;;;
;;; Possibilité de placer le bloc "à vue" (06/06/07)

(defun c:pline_block (/	AcDoc Space bloc nom ent obj ins op reg	ech id
	      long aire	ref)
 (vl-load-com)
 (setq	AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))
Space (if (= (getvar "CVPORT") 1)
	(vla-get-PaperSpace AcDoc)
	(vla-get-ModelSpace AcDoc)
      )
 )
 (if (or
(tblsearch "BLOCK" (setq bloc "Pline_block"))
(findfile (setq bloc "Pline_block.dwg"))
     )
   (progn

     ;; attribut "nom de la pièce"
     (if (not (setq nom (getname "Nom de la pièce")))
(setq nom "")
     )

     (while (not (setq ent (car (entsel)))))
     (setq obj (vlax-ename->vla-object ent))
     (if (= "AcDbPolyline" (vla-get-ObjectName obj))
(progn
  (if (= (vla-get-closed obj) :vlax-false)
    (progn
      (vla-put-closed obj :vlax-true)
      (setq op T)
    )
  )
  (setq	reg (vlax-invoke space 'addRegion (list obj))
	ins (vlax-get (car reg) 'Centroid)
  )
  (if op
    (vla-put-closed obj :vlax-false)
  )
  (vla-delete (car reg))
  (if (not (vlax-ldata-get "Pline_block" "ech"))
    (vlax-ldata-put "Pline_block" "ech" 1)
  )
  (if (not (setq
	     ech
	      (getreal
		(strcat	"\nEntrez le facteur d'échelle 				(rtos (vlax-ldata-get "Pline_block" "ech"))
			">: "
		)
	      )
	   )
      )
    (setq ech (vlax-ldata-get "Pline_block" "ech"))
    (vlax-ldata-put "Pline_block" "ech" ech)
  )
  (setq	id   (vla-get-ObjectID obj)

	;; Attribut périmètre (cm -> m)
	long (strcat "%			     (itoa id)
		     ">%).Length \\f \"%lu2%pr2%ct8[0.01]\">%"
	     )

	;; Attribut surface (cm² -> m²)
	aire (strcat "%			     (itoa id)
		     ">%).Area \\f \"%lu2%pr2%ct8[0.001]\">%"
	     )
  )

  (setq	ref
	 (vla-InsertBlock
	   Space
	   (vlax-3d-point (trans ins 1 0))
	   bloc
	   ech
	   ech
	   1
	   0.0
	 )
  )

  ;; attribution de leur valeur aux attributs
  (mapcar '(lambda (x y) (vla-put-TextString x y))
	  (vlax-invoke ref 'GetAttributes)
	  (list nom long aire)
  )

  (vla-regen AcDoc acActiveViewport)

  (command "_.move" (vlax-vla-object->ename ref) "" ins pause)
)
(alert "L'objet sélectionné n'est pas une polyligne.")
     )
   )
   (alert "Le bloc \"Pline_block\" est introuvable.")
 )
 (princ)
) 

 

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

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

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é