Aller au contenu

Champ qui additionne les surface d'un Xref


Messages recommandés

Posté(e)

Bonjour,

 

Dans l'espace papier, j'ai un texte. Dans celui-ci, je dois additionner des surfaces de hachures qui se trouvent dans une Xref. Cette Xref est inséré dans l'espace objet.

 

Pour faire ça, je pense qu'il faudrait utiliser un champ dans ce texte, me je ne vois pas comment faire pour additionner les surfaces, qui plus est dans un Xref...

 

Y a t-il un moyen de faire ça?

Posté(e)

Salut...

 

Pour faire l'addition, faut passer par la formule et ré-insérer des champs, aire des hachures, dans la formule!

Par contre, je ne crois pas que ce soit pas possible d'aller chercher un objet dans l'espace objet, et encore moins dans une X-réf! A la sélection de l'objet, il prend la X-réf comme objet et non pas une entité dans celle ci!

 

Un lisp peut être...

 

Xav

AutoCad Map 3D 2011 - Covadis v16.0d

Windows 7 - 64b

Posté(e)
ré-insérer des champs, aire des hachures, dans la formule

 

Mon dieu... j'ai 483 hachures, faut que je les sélectionne une par une!!!

Je crois que je sélectionnerais toutes les hachures et noterais moi-même l'aire cumulée... En attendant une autre solution solution. :( :( :(

 

Merci

Posté(e)

Salut

 

Comme l'indique Demixav, tu n'as pas 50 solutions.

Et pour t'éviter une addition fastidieuse, un lisp vite fait qui fait le cumul des surfaces des hachures sélectionnées.

 

(defun c:tha(/ doc sel tot)
 (setq doc (vla-get-activedocument (vlax-get-acad-object))
tot 0
 )
 (and (ssget (list (cons 0 "HATCH")))
   (progn
     (vlax-map-collection (setq sel (vla-get-activeselectionset doc)) '(lambda(x)(setq tot (+ tot (vla-get-area x)))))
     (vla-delete sel)
     (princ (strcat "\nTotal des surfaces des hachures : " (rtos tot)))
   )
 )
 (princ)
)

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Re,

 

Ce sont toutes les mêmes tes hachures? si c'est le cas, tu les refais sans les dissocier... tu en auras plus qu'une seule!

AutoCad Map 3D 2011 - Covadis v16.0d

Windows 7 - 64b

Posté(e)

Bonjour,

 

Un essai d'utilisation de l’excellente fonctions de Lee Mac En intégralité ici

 

cela a l'air de fonctionner chez moi.

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;getharea V1.0 12/12/2018;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Tappez GHA ou getharea pour lancer le lisp
;Additionne les surfaces des hachures contenues dans une XREF
;Place le champ dans le presse papier, affiche le résultat dans la console et crée une ldata
(defun c:getharea (/ xref IOI OoO nomxref
                  )
(vl-load-com)
   (setq IOI 0 )
(while  (= IOI 0) 
  (setq xref  (entsel "\nSélectionnez une XREF: "))
  (if xref 
  (if (= (cdr (assoc 0 (entget (car xref)))) "INSERT") (setq IOI 1))
  (princ "\nVeuillez Sélectionner une XREF")
  )
)		   
(setq *SURFACE* (cdr (car (LM:ODBX2 'GTHA (list (getchemin xref)) nil))) nomxref (cdr (assoc 2 (entget (car xref)))))		   
(if *SURFACE* (progn			   
(vlax-ldata-put "SURFACES" nomxref *SURFACE*)			   
(SetClipBoardText (strcat "%<\AcVar.17.0 Lisp." (rtos *SURFACE*) ">%"))			   
(princ (strcat "\nSurface totale des hachures de l'XREF " nomxref " : "	(rtos *SURFACE*) " M²"))
   (princ)
   )
(progn (princ "\nAucune hachure trouvée.")(princ))
)	
)
(defun GTHA ( doc / area)
(setq area 0.0)
(vlax-for obj (vla-get-ModelSpace doc)
(if (= (vla-get-ObjectName obj) "AcDbHatch")
  (setq area (+ area (vla-get-Area obj)))
)
)
area
)

(defun LM:ODBX2 ( fun lst sav / *error* app dbx dir doc dwl err rtn vrs );de Lee mac 

   (defun *error* ( msg )
       (if (and (= 'vla-object (type dbx)) (not (vlax-object-released-p dbx)))
           (vlax-release-object dbx)
       )
       (if (not (wcmatch (strcase msg t) "*break,*cancel*,*exit*"))
           (princ (strcat "\nError: " msg))
       )
       (princ)
   )

   (cond
       
       (   (progn
               (setq dbx
                   (vl-catch-all-apply 'vla-getinterfaceobject
                       (list (setq app (vlax-get-acad-object))
                           (if (< (setq vrs (atoi (getvar 'acadver))) 16)
                               "objectdbx.axdbdocument" (strcat "objectdbx.axdbdocument." (itoa vrs))
                           )
                       )
                   )
               )
               (or (null dbx) (vl-catch-all-error-p dbx))
           )
           (prompt "\nUnable to interface with ObjectDBX.")
       )
       (   t
           (vlax-for doc (vla-get-documents app)
               (setq dwl (cons (cons (strcase (vla-get-fullname doc)) doc) dwl))
           )
           (foreach dwg lst
               (if (or (setq doc (cdr (assoc (strcase dwg) dwl)))
                       (and (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-open (list dbx dwg))))
                            (setq doc dbx)
                       )
                   )
                   (progn
                       (setq rtn
                           (cons
                               (cons dwg
                                   (if (vl-catch-all-error-p (setq err (vl-catch-all-apply fun (list doc))))
                                       (prompt (strcat "\n" dwg "\t" (vl-catch-all-error-message err)))
                                       err
                                   )
                               )
                               rtn
                           )
                       )
                       (if sav (vla-saveas doc dwg))
                   )
                   (princ (strcat "\nError opening file: " (vl-filename-base dwg) ".dwg"))
               )
           )
           (if (= 'vla-object (type dbx))
               (vlax-release-object dbx)
           )
           (reverse rtn)
       )
   )
)
(defun getchemin ( ref / xref chemin)
(if
 (and
   (setq xref (car ref))
   (= "INSERT" (cdr (assoc 0 (entget xref))))
   (setq def (tblsearch "block" (cdr (assoc 2 (entget xref)))))
   (= 4 (logand 4 (cdr (assoc 70 def))))
 )
  (setq chemin (cdr (assoc 1 def)))
)
)
(defun SetClipBoardText ( text / htmlfile );Place un texte dans le presse papier Windows.(TheSwamp)
(vlax-invoke
	(vlax-get
		(vlax-get
			(setq htmlfile (vlax-create-object "htmlfile"))
		   'ParentWindow
		)
	   'ClipBoardData
	)
   'SetData
	"Text"
	text
)
   (vlax-release-object htmlfile)
)
(defun c:GHA nil (c:getharea))

 

tu n'a plus qu'a faire Ctrl+v et tu as ton champ.

dit moi si cela fonctionne.

Posté(e)

Bonjour,

 

Je ne dois pas faire tout juste...

 

J'ai créé mon fichier lsp que j'insère, pas de soucis il le reconnaît.

mais une fois que je lance la commande GTHA, je sélectionne l'Xref et il me dit:

 

Erreur Automation Entrée incorrecte

Aucune hachure trouvée.

 

Je ne vois pas trop où il faut faire le coller?

Posté(e)
chez moi cela fonctionne sur un Autocad 2011 et Windows 7.

J'ai beau regarder si j' ai oublier une fonction, vois pas.

 

Ah oui ça fonctionne sur un autre fichier... merci bien

 

J'ai testé, c'est la surface totale ou alors le nombre de hachure qui est limité.

 

Seul petit bémol, ça donne le total général des hachures et non par calque...

Posté(e)

En effet, désolé.

 

C'est un plan d'étape de travaux... il a donc beaucoup d'hachures...environ 485 hachures par Xref...

 

J'ai plusieurs Xref (3 pour l'instant), 5 calques de hachures par Xref (les calques ont des couleurs différentes selon les Xref tout en ayant le même nom),

toute les hachures sont de motif Solide.

 

Merci beaucoup

Posté(e)

Salut Litelsousa,

 

Il y a peut-être une autre solution.

 

Tu pourrais faire une extraction de donné en insérant un tableau qui te donnera la surface totale de tes hachures dans le dessin qui appelle les autres dessins en Xref. Puis dans ta présentation, tu n'auras plus qu'a mettre le total qu'il y aura d'indiqué dans le tableau. Tableau que tu n'auras pas besoin d'imprimer ou d'afficher dans la présentation.

 

L'avantage de cette méthode, est que si tu modifies les hachures dans les Xref, tu pourras mettre le tableau à jour sans soucis en rchargeant la ou les Xref modifiées puis en mettant les liaison de données de la table, la surface totale des hachures se mettra à jour. Tu n'auras plus qu'à la modifier dans la présentation.

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Posté(e)

Bonjour,

 

Suis d'accord avec Steven, le tableau est inévitable.

Par contre je ne vois pas comment il fait la liaison.

 

J'ai avancé le code.Je n'aurais pas finis ce soir.

par contre si tu me donne le nom des 5 calques,cela me faciliterais les choses.

 

et voici un bout de code a charger qui te donne un aperçu du tableau (il se place au 0,0 au chargement, rien a taper).

 

(defun tabsurf ( list-Surf / Tableau int int2 list-xref list-lay nblay
)
(vl-load-com)
(setq  list-xref (ListeCAR2 list-Surf)
       list-lay (ListeCAR2 (cadr (car list-Surf)))
	   nbxref (length list-xref)
       nblay (length list-lay)
	   Tableau (vla-Addtable (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object)))
							  (vlax-3d-point 0 0 0) 
							  (+ 3 nblay) 
							  (+ 2 nbxref) 
							  10 
							  66
				)
		int 1		
)
 (vla-put-VertCellMargin Tableau 3.0)
 (vla-put-TitleSuppressed Tableau :vlax-false)
 (vla-put-HeaderSuppressed Tableau :vlax-false)
 (vla-setText Tableau 0 0 "Surfaces par Calques")
 (mapcar '(lambda (lay) 
		(setq int (+ 1 int))
		(vla-setText Tableau int 0 lay)
		) 
		list-lay
  )
 (setq int 0)
 (mapcar '(lambda (surf) 
		(setq int (+ 1 int) int2 1)
		(vla-setText Tableau 1 int (car surf))
		(mapcar '(lambda (x)
	        (setq int2 (+ 1 int2))
		(vla-setText Tableau int2 int (cdr x))
		)
		(cadr surf)
		)
	) 
	list-Surf
)
 (setq int 1)
 (vla-setText Tableau 1 (+ 1 nbxref) "Total par calque")
 (repeat nblay
(setq int (+ 1 int))
(vla-setText Tableau int (+ 1 nbxref) (strcat "%<\\AcExpr (Sum(" (chr 66) (itoa(+ int 1)) ":" (chr (+ 66 (- nbxref 1))) (itoa(+ int 1)) ")) \\f \"%lu2\">%" ))
 )
 (vla-setText Tableau (+ 2 nblay) 0 "Total par xref")
 (setq int 0)
 (repeat nbxref
   (setq int (+ 1 int))
(vla-setText Tableau (+ 2 nblay) int (strcat "%<\\AcExpr (Sum(" (chr (+ 65 int)) "2" ":" (chr (+ 65 int)) (itoa(+ nblay 2)) ")) \\f \"%lu2\">%" ))
 )
)
(defun ListeCAR2 (listedListes  / k°)
 (mapcar '(lambda (x) (setq K° (cons (car x) K°))) listedListes)
 (reverse K°)
)
(tabsurf (list (list  "XREF1" (list ( cons "Calque-1" 1102.35)
			( cons "Calque-2" 2102.35)
			( cons "Calque-3" 3102.35)
			( cons "Calque-4" 4102.35)
			( cons "Calque-5" 5102.35)
			)
				)
			
		   (list  "XREF2" (list ( cons "Calque-1" 1202.35)
			  ( cons "Calque-2" 2202.35)
					( cons "Calque-3" 3202.35)
					( cons "Calque-4" 4202.35)
					( cons "Calque-5" 5202.35)
						   )
				)
			
		    (list "XREF3" (list ( cons "Calque-1" 1302.35)
					( cons "Calque-2" 2302.35)
					( cons "Calque-3" 3302.35)
					( cons "Calque-4" 4302.35)
					( cons "Calque-5" 5302.35)
				)
				)
				
		)
)

 

cela te convient t'il?

en tout cas merci pour cette idée de programmation, cela m'a permis d'en apprendre plus, et au delà...

Posté(e)

Hello,

Merci c'est nickel.

Par contre je pense qu'il faut remplacer les valeurs que tu as mises (1302.35;2302.35;3302.35...) car c'est les valeurs que ça me met?

Pour les calques et le nom des Xref c'est bon j'ai vu comment il fallait faire mais pour les quantité pas.

Posté(e)

Ce tableau n'est qu'un exemple de présentation.

Les xref aurons leur nom d'affiché ainsi que les calques et les valeurs sont fictives.

Tu pourras avoir jusqu'a 24 xref, après les champs plantes.

et le nombre de calque est fixé à 5.

Pourrais tu me donner le nom exacte de tes calques? pour faire la liaison, c'est plus facile.

Posté(e)

Bonjour,

 

...Par contre je ne vois pas comment il fait la liaison...

Lors de la création du tableau, sur la page 1 de 7, il faut aller dans les paramètres et demander à extraire les objets dans les Xrefs Puis ensuite, à la page 2 de 7, il faut cocher hachures et décocher tout le reste, du fait qu'on ne souhaite avoir que l'aire des hachures. A la page 3 de 7, il faut cocher Aire, Calque et Nom de fichier.A la page 4 de 7, à la colonne Aire, on insère le pied de page des totaux > Somme.

De ce fait, dans le tableau, on a la surface de chaque hachures, le nom du fichier sur lequel elles sont puis le nom du calque sur lequel elles sont créées.

Il n'y aucune limite dans le nombre de Xrefs et de calques.

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Posté(e)

Je suis sur Autocad 2011 et quand je tape tableau je n'ai qu'une page...

 

Il faut ensuite choisir A partir des données d'objets du dessin (extraction de données) ou taper dans la ligne de commande: EXTRACTDONNEES

COMMENCER-UNE-EXTRACTION-DE-DONNEES.png

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Posté(e)

Re,

 

alors les calques où sont les hachures sont:

PROJ_DALLE_ETAPE 3_HACH

PROJ_DALLE_ETAPE 4_HACH

PROJ_DALLE_ETAPE 5_HACH

PROJ_DALLE_ETAPE 6_HACH

PROJ_DALLE_SPECIALE_HACH

 

Se sont les même sur les toutes les Xref

 

Merci bien

Posté(e)

voila la nouvelle version

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;getharea V2.0 17/12/2018;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Tappez GHA ou getharea pour lancer le lisp
;Place un tableau au point 0,0 contenant les surfaces de hachures par calques/xref
;;;;;;;;;;;;;;;;;;;;;;By fraiddd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:getharea (/  exref xrefs listlistareaxref n listArea listareaxref
                  )
(vl-load-com)
(setq  xrefs (ssget "_x" (list (cons 0 "INSERT")))
   n -1
)
(if xrefs (progn	
(repeat (sslength xrefs)
	(setq  exref (ssname xrefs (setq n (1+ n)))
	       listArea  (cadar (LM:ODBX2 'GTHA (list (vla-get-path (vlax-ename->vla-object exref))) nil))
              listareaxref (list (cdr (assoc 2  (entget exref)))  listArea)
	)
	(if listlistareaxref 
		(setq listlistareaxref	(append listlistareaxref  (list listareaxref))) 
		(setq listlistareaxref (list listareaxref))
	)
)
(if listlistareaxref (tabsurf listlistareaxref) (princ "\Xrefs incompatibles"))
)
   (princ "\nAucune XREF dans le dessin")
)
(princ)	
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun GTHA ( doc / lay area1 area2 area3 area4 area5 calque1 calque2 calque3 calque4 calque5
)
(setq 
calque1 "PROJ_DALLE_ETAPE 3_HACH"
calque2 "PROJ_DALLE_ETAPE 4_HACH"
calque3 "PROJ_DALLE_ETAPE 5_HACH"
calque4 "PROJ_DALLE_ETAPE 6_HACH"
calque5 "PROJ_DALLE_SPECIALE_HACH"
   area1 0.0
area2 0.0
area3 0.0
area4 0.0
area5 0.0
)
(vlax-for obj (vla-get-ModelSpace doc)
(setq lay (vla-get-Layer obj))
(if  (= (vla-get-ObjectName obj) "AcDbHatch")
(cond ((= lay calque1)(setq area1 (+ area1 (vla-get-Area obj))))
      ((= lay calque2)(setq area2 (+ area2 (vla-get-Area obj))))
	  ((= lay calque3)(setq area3 (+ area3 (vla-get-Area obj))))
	  ((= lay calque4)(setq area4 (+ area4 (vla-get-Area obj))))
	  ((= lay calque5)(setq area5 (+ area5 (vla-get-Area obj))))
)
)
)
(list (list (cons calque1 (rtos area1 2 4)) (cons calque2 (rtos area2 2 4)) (cons calque3 (rtos area3 2 4)) (cons calque4 (rtos area4 2 4)) (cons calque5 (rtos area5 2 4))))
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun LM:ODBX2 ( fun lst sav / *error* app dbx dir doc dwl err rtn vrs );de Lee mac 
   (defun *error* ( msg )
       (if (and (= 'vla-object (type dbx)) (not (vlax-object-released-p dbx)))
           (vlax-release-object dbx)
       )
       (if (not (wcmatch (strcase msg t) "*break,*cancel*,*exit*"))
           (princ (strcat "\nError: " msg))
       )
       (princ)
   )
   (cond
       
       (   (progn
               (setq dbx
                   (vl-catch-all-apply 'vla-getinterfaceobject
                       (list (setq app (vlax-get-acad-object))
                           (if (< (setq vrs (atoi (getvar 'acadver))) 16)
                               "objectdbx.axdbdocument" (strcat "objectdbx.axdbdocument." (itoa vrs))
                           )
                       )
                   )
               )
               (or (null dbx) (vl-catch-all-error-p dbx))
           )
           (prompt "\nUnable to interface with ObjectDBX.")
       )
       (   t
           (vlax-for doc (vla-get-documents app)
               (setq dwl (cons (cons (strcase (vla-get-fullname doc)) doc) dwl))
           )
           (foreach dwg lst
               (if (or (setq doc (cdr (assoc (strcase dwg) dwl)))
                       (and (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-open (list dbx dwg))))
                            (setq doc dbx)
                       )
                   )
                   (progn
                       (setq rtn
                           (cons
                               (cons dwg
                                   (if (vl-catch-all-error-p (setq err (vl-catch-all-apply fun (list doc))))
                                       (prompt (strcat "\n" dwg "\t" (vl-catch-all-error-message err)))
                                       err
                                   )
                               )
                               rtn
                           )
                       )
                       (if sav (vla-saveas doc dwg))
                   )
                   (princ (strcat "\nError opening file: " (vl-filename-base dwg) ".dwg"))
               )
           )
           (if (= 'vla-object (type dbx))
               (vlax-release-object dbx)
           )
           (reverse rtn)
       )
   )
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun tabsurf ( list-Surf / acdoc tables enttable Tableau int int2 list-xref list-lay nbxref nblay 
               )
   (if (setq tables (ssget "_X" (list (cons 0 "ACAD_TABLE"))))
(progn
	(setq int -1)
    (repeat (sslength tables)
	    (setq enttable (ssname tables (setq int (1+ int))))
         (if (= (vla-getText (vlax-ename->vla-object enttable) 0 0) "Surfaces par Calques")
			(vla-delete (vlax-ename->vla-object enttable))
		 )
	)
)
)	
(setq  acdoc (vla-get-ActiveDocument (vlax-get-acad-object))
       list-xref (ListeCAR2 list-Surf)
       list-lay (ListeCAR2 (cadr (car list-Surf)))
	   nbxref (length list-xref)
       nblay (length list-lay)
	   Tableau (vla-Addtable (vla-get-ModelSpace acdoc)
							  (vlax-3d-point 0 0 0) 
							  (+ 3 nblay) 
							  (+ 2 nbxref) 
							  10 
							  66
				)
		int 1		
)
 (vla-put-VertCellMargin Tableau 3.0)
 (vla-put-TitleSuppressed Tableau :vlax-false)
 (vla-put-HeaderSuppressed Tableau :vlax-false)
 (vla-setText Tableau 0 0 "Surfaces par Calques")
 (mapcar '(lambda (lay) 
		(setq int (+ 1 int))
		(vla-setText Tableau int 0 lay)
		) 
		list-lay
  )
 (setq int 0)
 (mapcar '(lambda (surf) 
		(setq int (+ 1 int) int2 1)
		(vla-setText Tableau 1 int (car surf))
		(mapcar '(lambda (x)
	        (setq int2 (+ 1 int2))
			(vla-setText Tableau int2 int (cdr x))
			)
			(cadr surf)
		)
	) 
	list-Surf
)
 (setq int 1)
 (vla-setText Tableau 1 (+ 1 nbxref) "Totaux par calques");%<\AcExpr(Sum(B3:D3)) \f "%lu2">% %<\AcExpr (Sum(B4:D4)) \f "%lu2">%
 (repeat nblay
(setq int (+ 1 int))
(vla-setText Tableau int (+ 1 nbxref) (strcat "%<\\AcExpr (Sum(" (chr 66) (itoa(+ int 1)) ":" (chr (+ 66 (- nbxref 1))) (itoa(+ int 1)) ")) \\f \"%lu2\">%" ))
 )
 (vla-setText Tableau (+ 2 nblay) 0 "Totaux par xref")
 (setq int 0)
 (repeat nbxref
   (setq int (+ 1 int))
(vla-setText Tableau (+ 2 nblay) int (strcat "%<\\AcExpr (Sum(" (chr (+ 65 int)) "2" ":" (chr (+ 65 int)) (itoa(+ nblay 2)) ")) \\f \"%lu2\">%" ))
 )
 
 (vla-ZoomWindow (vlax-get-acad-object) (vlax-3d-point 0 0 0) (vlax-3d-point 335 -100 0))
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun ListeCAR2 (listedListes  / k°)
 (mapcar '(lambda (x) (setq K° (cons (car x) K°))) listedListes)
 (reverse K°)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:GHA nil (c:getharea))

 

Je vais quand même regarder l'extraction de données cela m'a l'air très intéressant.

Posté(e)

Salut

 

Bravo pour ton lisp, ce n'est pas souvent que l'on voit une proposition en vlisp. :D

 

J'aurais deux questions.

 

1) Pourquoi utiliser ObjectDbx alors que les xrefs sont déjà chargés et qu'on les retrouvent dans la table des blocs ?

2) Pourquoi te limiter à 5 calques et de plus nommés alors qu'on peux facilement les retrouver grace à assoc

Par exemple

(if (assoc Mon_calque lst)
 (setq lst (subst (list Mon_calque Mes_surfaces) (assoc Mon_calque lst) lst)
 (setq lst  (cons (list Mon_calque Mes_surfaces) lst)
)

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

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é