Aller au contenu

Messages recommandés

Posté(e)

Un petit essai pour m'initier au vlisp :

 

(defun c:niv (/ sslist c e)

 ;;;Test de l'unité de dessin dans la configuration du dessin
 (while (not c)
   (if	(and (< (setq c (getvar "insunits")) 7) (> c 3))
     (cond ((= c 4) (setq c 1))
    ((= c 5) (setq c 10))
    ((= c 6) (setq c 1000))
     )
     (progn
(setq c nil)
(initget 2 "me cm mm")
(setq unite (getkword "\nUnité du dessin : [ME/CM/MM]"))
(cond ((= unite "me") (setvar "insunits" 6))
      ((= unite "cm") (setvar "insunits" 5))
      ((= unite "mm") (setvar "insunits" 4))
)
     )
   )
 )  

 ;;;choix de l'échelle ou doit être insérée la coupe
 (if (> (atoi (substr (getvar "acadver") 1 2)) 16)

   (if	(= (getvar "cannoscale") "1:1")
     (setq ech (/ (float(getint "échelle de la coupe : 1/")) c)) ; cannoscale = "1:1"
				
     (setq ech (/ 1 (getvar "cannoscalevalue"))) ; cannoscale /= "1:1"
   ) ; acadver > 16 (_if cannoscale)
   
   ((setq ech (/ (float(getint "échelle de la coupe : 1/")) c))); acadver < 16
 ) ;_test acadver


(progn
 (setq	pt     (getpoint "Spécifiez le point d'insertion : ")
nivref (atof (getstring "Précisez son niveau : "))
doc (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object)))
 )
 
 (vla-addpoint doc (vlax-3d-point (list 0 nivref)))
 (vla-put-layer (entlast) "0")
 (vla-put-visible (vlax-ename->vla-object (entlast)) 0)
 (setq sslist (cons (entlast) sslist))
 
(vla-addtext
 doc
 (strcat "%<\\AcObjProp Object(%<\\_ObjId "
  (itoa (vla-get-objectid (vlax-ename->vla-object (entlast))))
  ">%).Coordinates \\f \"%lu2%pt2%pr2\">%"
 )
 (vlax-3d-point (list 0 0 0))
 (* ech 2)
)  
 (vla-put-alignment (entlast) 13)
 (vla-put-TextAlignmentPoint
   (entlast)
   (vlax-3D-Point (list (car pt) (+ (* ech 3) (cadr pt))))
 )
 (vla-put-layer (entlast) "0")
 (setq sslist (cons (entlast) sslist))

 (vla-addsolid
   doc
   (vlax-3d-point pt)
   (vlax-3d-point (polar pt (/ pi 3) (* ech 3)))
   (vlax-3d-point (polar pt (/ (* 2 pi) 3) (* ech 3)))
   (vlax-3d-point (polar pt (/ (* 2 pi) 3) (* ech 3)))
 )
 (vla-put-layer (entlast) "0")
 (setq sslist (cons (entlast) sslist))
 );progn



 

 (defun makegroup (lst / dict ind)
   (setq dict (dictsearch (namedobjdict) "ACAD_GROUP")
  ind  "GRP1"
   )
   (while (member (cons 3 ind) dict)
     (setq ind (strcat "GRP" (itoa (1+ (atoi (substr ind 4))))))
   )
   (dictadd
     (cdr (assoc -1 dict))
     ind
     (entmakex
(append
  (list
    '(0 . "GROUP") '(100 . "AcDbGroup")	'(300 . "") '(70 . 1)
    '(71 . 1))
  (mapcar (function (lambda (x) (cons 340 x))) lst)
)
     )
   )
 )

 (makegroup sslist)


)

 

Le makegroup sort d'une routine de Gile. J'ai essayé en vl mais ce n'est pas évident.

 

Edit : désolé je me suis trompé de forum...

 

A suivre ici.

 

[Edité le 2/4/2008 par vinz34]

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é