Aller au contenu

LISP surface / Tableau / Export


drault

Messages recommandés

Bonjour,

 

Je suis à la recherche d'un -workflow / Lisp unique ou multiples- pour, une rénovation d'appartement par exemple, une fois le dessin de l'existant fait, produire un ensemble de polylignes pour les surface en produire un tableau de surface et être en mesure de le faire évoluer en excel (ou autre logiciel) afin d'établir mes métrés simplement.

Cela me prend un temps fou...

 

Après recherche sur page de Gilles / Patrick_35, pas trouvé.

 

Dans l'attente d'une discussion, je reste disponible pour plus d'informations.

 

Bonne journée

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Je suis à la recherche d'un -workflow / Lisp unique ou multiples- pour, une rénovation d'appartement par exemple, une fois le dessin de l'existant fait, produire un ensemble de polylignes pour les surface en produire un tableau de surface et être en mesure de le faire évoluer en excel (ou autre logiciel) afin d'établir mes métrés simplement.

Cela me prend un temps fou...

 

Après recherche sur page de Gilles / Patrick_35, pas trouvé.

 

Dans l'attente d'une discussion, je reste disponible pour plus d'informations.

 

Bonne journée

 

Rapidement les idées qui me viennent à l'esprit:

  • Pour la production des polylignes la commande Autocad: contour
  • Les surfaces TotalArea de (gile)
  • Produire un tableau, l'extraction d'attribut d'Autocad

 

Cdt VDH-Bruno

Apprendre => Prendre => Rendre

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

ET si tu places / inseres des Blocs/Symboles :

-- Extraction de donnees AutoCAD ...

-- + La routine Lisp "ListBlock" ci-apres de Gilles qui traite les Blocs !

 

MAIS il faudrait "ameliorer" la routine de Gilles !?

car elle ne traite pas les Blocs DANS les Reseaux associatifs (Rectangulaire, Polaire/Circulaire, Trajectoire)

OU alors il faut les decomposer / exploser ...

 

LA SANTE (Stay Safe), Bye, lecrabe "triste"

Automne 2020, la retraite

 

 
;; 
;; https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/lisp-table/m-p/7822698#M365879
;; 
;; Routine: ListBlock par GC
;; 
;; Table des Blocs : Nom , Nombre , Graphisme du Bloc
;; 
;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;; ATTENTION : la Routine ne traite pas les Blocs inclus dans les Reseaux Associatifs ! 
;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;; 
;; Voir aussi ce sujet par GC :
;; https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/block-in-table/m-p/7827274#M366031
;; 
;; To be clearer, you can set the text height bay row type:
;; Only data rows (bit 1)
;; (vla-SetTextHeight table 1 height)
;; Only title row (bit 2)
;; (vla-SetTextHeight table 2 height)
;; Only header row (bit 4)
;; (vla-SetTextHeight table 1 height)
;; You can also combinate this, e.g. for the entire table (+ 1 2 4):
;; (vla-SetTextHeight table 7 height)
;; 

;;;;; 
;;;;;  Hauteur des Textes dans la Table = 5.0 ;;;;; 
;;;;;  (vla-SetTextHeight table 7 5.0)
;;;;; 


(defun c:ListBlock (/ ss name block blocks insPt table row)
 (vl-load-com)
 (or *acdoc*
     (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))
 )
 (or *blocks*
     (setq *blocks* (vla-get-Blocks *acdoc*))
 )

 ;; Select blocks
 (prompt "\nSelect blocks to list or <All>")
 (or (setq ss (ssget '((0 . "INSERT"))))
     (setq ss (ssget "_X" '((0 . "INSERT")))
     )
 )
 (if ss
   (progn

     ;; Build a list of dotted pairs (blockName . numberOfReferences) from the selection set
     (vlax-for	x (setq ss (vla-get-ActiveSelectionSet *acdoc*))
(if (not (vlax-property-available-p x 'Path))
  (setq	name   (vla-get-EffectiveName x)
	blocks (if (setq block (assoc name blocks))
		 (subst (cons name (1+ (cdr block))) block blocks)
		 (cons (cons name 1) blocks)
	       )
  )
)
     )
     (vla-delete ss)

     ;; Prompt for insertion point
     (initget 1)
     (setq insPt (trans (getpoint "\nInsertion point: ") 1 0))

     ;; Create the table
     (setq table (vla-addtable
	    (vla-get-modelspace *acdoc*)
	    (vlax-3d-point insPt)
	    (+ 2 (length blocks)) ; number of rows (including title and header)
	    3			; number of colums
	    20			; cell height
	    80			; row width
	  )
     )
     (vla-put-VertCellMargin table 4.0)
     (vla-put-TitleSuppressed table :vlax-false)
     (vla-put-HeaderSuppressed table :vlax-false)

     ;; Fill the titel and the header
;     (vla-setText table 0 0 "Blocks")
;     (vla-setText table 1 0 "Name")
;     (vla-setText table 1 1 "Count")
;     (vla-setText table 1 2 "Symbol") 

     ;; Textes version Francaise
     (vla-setText table 0 0 "Quantitatif des Blocs")
     (vla-setText table 1 0 "Nom")
     (vla-setText table 1 1 "Nombre")
     (vla-setText table 1 2 "Symbole") 

;;;;; Hauteur des Textes dans la Table = 5.0 ;;;;; 
(vla-SetTextHeight table 7 5.0)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 

     ;; fill the following rows from the list contents
     (setq row 2)
     (foreach item blocks
(vla-settext table row 0 (car item)) ; block name
(vla-settext table row 1 (cdr item)) ; references count
(vla-SetBlockTableRecordId	; block symbol
  table
  row
  2
  (vla-get-ObjectId (vla-Item *blocks* (car item)))
  :vlax-true
)
(setq row (1+ row))
     )
   )
 )
 (princ)
) 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Merci, je vais tester.

 

EDIT post / retour :

 

-Je ne comprends pas bien l'utilité du LSIP "editblock" que ce soit pour mon cas ou en général.

-L’extraction de données est pas mal mais je ne suis pas sûr de bien l'utiliser ou toute son étendue de puissance.

A savoir que "lier les données externes" me semble obscur.

-Le tableau une fois produit dans le dessin ne se met pas à jour si je modifie une surface d'une des pièces.

Lien vers le commentaire
Partager sur d’autres sites

  • 8 mois après...

Bonjour,

 

Je relance le sujet, car "extraction de données" est trop lourd...

Après utilisation des lisp (TotalArea&TotalPerim) de Gile, vachement utiles, je cherche un processus pour faciliter l'extraction de données voir la rétroaction. 

Après que j'ai mes bloc de perim et autre, je ne vois pas où aller.

Une liste des bloc c'est intéressant (mais je ne vois pas l'utilité), car il ne classe pas en colonne ou ligne les bloc pour faire apparaitre les métrés et donc exploiter ensuite, dans un second temps, si j'arrive à extraire en excel, les données.

J'ai vu un post de gile sur un processus concernant .lisp/.csv mais j'ai je n'ai pas vu la démarche expliquée.)

Je reste dans le flou 😞

Lien vers le commentaire
Partager sur d’autres sites

39 minutes ago, drault said:

Après utilisation des lisp (TotalArea&TotalPerim) de Gile, vachement utiles, je cherche un processus pour faciliter l'extraction de données voir la rétroaction.

TotalArea et TotalPerim créent un lien entre le ou les objets sélectionné et les attributs du bloc ce qui fait que si on modifie un objet les attributs se mettent à jour automatiquement mais ceci est incompatible avec toute "rétroaction" (modifier la valeur de l'attribut ne modifiera pas le ou les objets liés).

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

Lien vers le commentaire
Partager sur d’autres sites

21 minutes ago, (gile) said:

TotalArea et TotalPerim créent un lien entre le ou les objets sélectionné et les attributs du bloc ce qui fait que si on modifie un objet les attributs se mettent à jour automatiquement mais ceci est incompatible avec toute "rétroaction" (modifier la valeur de l'attribut ne modifiera pas le ou les objets liés).

Ok, super clair et merci.

Existe-t-il une étape intermédiaire à ton ExcelAttribute_19 ? Sorte de miroir du excel ou tout simplement avant de faire EATT qu'il sorte le même tableau et de préférence qui se met à jour comme TotalArea ?

Lien vers le commentaire
Partager sur d’autres sites

11 minutes ago, drault said:

Existe-t-il une étape intermédiaire à ton ExcelAttribute_19 ? Sorte de miroir du excel ou tout simplement avant de faire EATT qu'il sorte le même tableau et de préférence qui se met à jour comme TotalArea ?

Je ne comprends pas ce que tu veux dire. EATT permet d'extraire les attributs des blocs sélectionnés dans un fichier Excel afin de pouvoir modifier les valeurs des attributs et de les ré-injecter dans AutoCAD avec IATT. Mais comme je l'expliquais plus haut, ceci est incompatible avec le fonctionnement dynamique de TotalArea ou TotalPerim.

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

Lien vers le commentaire
Partager sur d’autres sites

14 hours ago, (gile) said:

Je ne comprends pas ce que tu veux dire. EATT permet d'extraire les attributs des blocs sélectionnés dans un fichier Excel afin de pouvoir modifier les valeurs des attributs et de les ré-injecter dans AutoCAD avec IATT. Mais comme je l'expliquais plus haut, ceci est incompatible avec le fonctionnement dynamique de TotalArea ou TotalPerim.

Édit1:

Quand on fait un bloc de totalperim/area, excel attribue marche, car il comptabilise les blocs sélectionnés.

Je repose l'autre partie de ma question.

Existe t il un lisp permettant d'afficher un tableau dynamique des blocs dynamiques ou mtext ?

Lien vers le commentaire
Partager sur d’autres sites

6 hours ago, philsogood said:

han c'est du plagiat, scanDXF  c'est de Brice (ou Bryce, pas certain de l'orthographe)

Salut Philsogood, ce n'est pas du plagiat du fait que Christian ne fait que mettre SCANDXF en lien et cite Brice Studer en tant que développeur de SCANDXF ;-)

 

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.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...
On 09/05/2021 at 14:24, (gile) said:

Pas un LISP, une commande native EXTRACTDONNEES (_DATAEXTRACTION). Le tableau n'est pas dynamique, mais il suffit de le sélectionner > clic droit > Mettre à jour les liaisons de données de la table

Un peu de boulot mais très intéressant au final, merci de l'info, ça marche bien et assez complémentaire avec total perim ou totalarea !

 

On 10/05/2021 at 08:32, Raph_38 said:

Et le programme SCANDXF de Christian : http://www.rebcao.fr/telechargements_outils_AutoCAD_gratuits_page1.html

Je pense que cela peut répondre à tes besoins

Intéressant, peut-être moins fastidieux à l'usage donc plus rapide, avec le temps, mais arrive a expiration fin juin et semble sauter la phase d'un tableau dynamique dans autocad.

Merci en tout cas, ça va faire des heureux !

Lien vers le commentaire
Partager sur d’autres sites

  • 9 mois après...

Bonjour à la communauté.
J'ai un nouveau poste et j'ai réussi à tout installer sur mon AutoCAD 2022, sauf ExcelAttribut_19.dll.
Voici la réponse d'AutoCAD lors du chargement de la DLL :
"Commande:
NETLOAD
Impossible de charger l'assemblage. Détails de l'erreur: System.IO.FileLoadException: Impossible de charger le fichier ou l'assembly 'file:///C:\Opale-BET\ExcelAttribute_19.dll' ou une de ses dépendances. L'opération n'est pas prise en charge. (Exception de HRESULT : 0x80131515)
Nom de fichier : 'file:///C:\Opale-BET\ExcelAttribute_19.dll' ---> System.NotSupportedException: Tentative de chargement d'un assembly à partir d'un emplacement réseau qui aurait entraîné l'utilisation de l'assembly en mode Bac à sable (sandbox) dans les versions antérieures du .NET Framework. Cette version du .NET Framework n'activant pas la stratégie CAS par défaut, ce chargement peut être dangereux. Si ce chargement n'est pas destiné à utiliser l'assembly en mode Bac à sable (sandbox), activez le commutateur loadFromRemoteSources. Pour plus d'informations, consultez http://go.microsoft.com/fwlink/?LinkId=155569.
   à System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   à System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   à System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark)
   à System.Reflection.Assembly.LoadFrom(String assemblyFile)
   à Autodesk.AutoCAD.Runtime.ExtensionLoader.Load(String fileName)
   à loadmgd()
".

Sachant que je suis admin du poste, que je n'ai pas l'option "Débloquer" dans les propriétés du fichier et que "ExcelDynamic.dll" est dans le même répertoire que ExcelAttribut_19.dll. Je suis sous Windows 10 Pro "21H1".

J'ai aussi d'autres DLL qui ont le même problème.

J'ai donc installer Micro$oft .NET Core Runtime 3.1.10.29419.

Rien n'y fait.

Quelqu'un aurait des suggestions à me proposer ?

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Ben voilà.
Mon PC a planté, j'ai redémarrer et hop, ça fonctionne...
Je n'explique pas...

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi ! (Albert EINSTEIN)

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Ben revoilà...
Mise à jour Windows et hop, ça ne fonctionne plus...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

D'après le message d'erreur, ça ressemble bien à un problème de déblocage des DLLs ou que les DLLs ne sont pas en local sur le poste.

Citation

Tentative de chargement d'un assembly à partir d'un emplacement réseau qui aurait entraîné l'utilisation de l'assembly en mode Bac à sable (sandbox) dans les versions antérieures du .NET Framework. Cette version du .NET Framework n'activant pas la stratégie CAS par défaut, ce chargement peut être dangereux.

Dans tous les cas, installer .NET Core ne sert à rien, les DLLs utilisent .NET Framework.

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

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir (gile).
J'ai regardé sur mon poste et j'ai essayé d'installé FrameWork 4.8, Windows m'a dit qu'une version plus récente était déjà installée.
D'après toi, je dois rechercher un autre FrameWork ?
Car j'ai testé les DLL en réseau ET en local...

Et merci pour ton aide...
Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

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é