Cher invité, veuillez vous INSCRIRE afin d'accéder totalement au contenu.

Métré autocad vers excel

<<

berte600

Avatar de l’utilisateur

MGCien débutant

Messages: 10

Inscription: Mer 30 Sep 2009 12:18

Pays: senegal

Nom/prénom: berte cavalier

Statut: ingénieur

Message Jeu 29 Oct 2009 17:42

Métré autocad vers excel

Salut
je travaille sur un plan dans Autocad 2008 et je trouve le calcul de métré fastidieux.
Donc je cherche une procédure d'extraction de données de autocad vers excel.
en effet j'ai besoin par exemple qu'il me renseigne sur la longueur des tuyauteries.
j'ai essayé d'utiliser la commande Extraction de données dans Outils mais je me rend compte qu'il me renseigne sur tout le dessin or que moi je voudrais lui spécifier le calque en question.
je veux juste travailler sur un calque mais pas sur l'ensemble du dessin.
Si quelqu'un a un astuce , partageons là alors .
TOP A VOS CLAVIERS......................
<<

Fellis

Avatar de l’utilisateur

MGCien inactif

Messages: 3

Inscription: Ven 15 Mai 2009 19:55

Pays: France 95

Nom/prénom: Fellis

Statut: Dessinateur projeteu

Message Jeu 19 Nov 2009 10:39

Re: Métré autocad vers excel

tout cela reste possible a partir de la 2009 -2010 ou la tu peux spécifié le calque etc
<<

sinassim

Avatar de l’utilisateur

MGCien inactif

Messages: 2

Inscription: Mar 29 Sep 2009 14:36

Pays: canada

Nom/prénom: nassim

Statut: technicien genie civ

Message Lun 8 Fév 2010 21:55

Re: Métré autocad vers excel

il faut inserer ta tuiyauterie sous forme de bloc la l extraxction va marche
<<

gcoot

Avatar de l’utilisateur

MGCien habitué

Messages: 58

Inscription: Ven 5 Fév 2010 09:28

Pays: France

Nom/prénom: e-methodes

Statut: Ingénieur

Message Mar 9 Fév 2010 10:22

Re: Métré autocad vers excel

Une petite macro VBA pour autocad :

Renseigne sur différent objets de base mais pas d'extraction des données de blocs
ça fait un moment que je m'en sert, c'est un peu brut comme résultat mais ça permet ensuite une grande souplesse sur excel (tri...)


Sub MOP()
Dim xlApp As Object
On Error GoTo fin
Set xlApp = GetObject(, "Excel.Application")
Dim strRep As String
Dim strTest As String
Dim i As Long
Dim Haut As Double
Dim PNum As Integer
Dim oObj As AcadObject
Dim oLay As AcadObject
Dim sLay As String
Dim ssObj As AcadSelectionSet
Dim sType As String
Dim sValue As String
Dim pBase As Variant
Dim oTmp As Acad3DSolid

With xlApp.ActiveSheet
.Cells(2, 1) = "N°"
.Cells(2, 2) = "Layer"
.Cells(2, 3) = "color"
.Cells(2, 4) = "Handle"
.Cells(2, 5) = "ObjectName"
.Cells(2, 6) = "x0"
.Cells(2, 7) = "y0"
.Cells(2, 8) = "z0"
.Cells(2, 9) = "Length/Volume"
.Cells(2, 10) = "Area/Rayon"
PNum = 3
On Error Resume Next
For Each oObj In ThisDrawing.ModelSpace
sLay = oObj.Layer
Set oLay = ThisDrawing.Layers(sLay)
If (Not oLay.Freeze) And (Not oLay.Lock) Then
.Cells(PNum, 1) = PNum
.Cells(PNum, 2) = oObj.Layer
.Cells(PNum, 3) = oObj.color
.Cells(PNum, 4) = "_" & oObj.Handle
.Cells(PNum, 5) = oObj.ObjectName
If oObj.ObjectName = "AcDbPolyline" Then
.Cells(PNum, 6) = oObj.Coordinate(0)(0)
.Cells(PNum, 7) = oObj.Coordinate(0)(1)
.Cells(PNum, 8) = oObj.Coordinate(0)(2)
.Cells(PNum, 9) = oObj.Length
.Cells(PNum, 10) = oObj.Area
End If
If oObj.ObjectName = "AcDbLine" Then
pBase = oObj.StartPoint
.Cells(PNum, 6) = pBase(0)
.Cells(PNum, 7) = pBase(1)
.Cells(PNum, 8) = pBase(2)
.Cells(PNum, 9) = oObj.Length
.Cells(PNum, 10) = ""
End If
If oObj.ObjectName = "AcDbCircle" Then
pBase = oObj.Center
.Cells(PNum, 6) = pBase(0)
.Cells(PNum, 7) = pBase(1)
.Cells(PNum, 8) = pBase(2)
.Cells(PNum, 9) = oObj.Circumference
.Cells(PNum, 10) = oObj.Radius
End If
If oObj.ObjectName = "AcDbArc" Then
pBase = oObj.Center
.Cells(PNum, 6) = pBase(0)
.Cells(PNum, 7) = pBase(1)
.Cells(PNum, 8) = pBase(2)
.Cells(PNum, 9) = oObj.ArcLength
.Cells(PNum, 10) = oObj.Radius
End If
If oObj.ObjectName = "AcDb3dSolid" Then
pBase = oObj.Position
.Cells(PNum, 6) = pBase(0)
.Cells(PNum, 7) = pBase(1)
.Cells(PNum, 8) = pBase(2)
.Cells(PNum, 9) = oObj.Volume
.Cells(PNum, 10) = oObj.Area
End If
If oObj.ObjectName = "AcDbRegion" Then
Set oTmp = oObj
pBase = oObj.Position
.Cells(PNum, 6) = "" 'pBase(0)
.Cells(PNum, 7) = "" 'pBase(1)
.Cells(PNum, 8) = "" 'pBase(2)
.Cells(PNum, 9) = oObj.Perimeter
.Cells(PNum, 10) = oObj.Area
End If
If oObj.ObjectName = "AcDbBlockReference" Then
pBase = oObj.InsertionPoint
.Cells(PNum, 6) = pBase(0)
.Cells(PNum, 7) = pBase(1)
.Cells(PNum, 8) = pBase(2)
.Cells(PNum, 9) = oObj.EffectiveName
.Cells(PNum, 10) = ""
End If
PNum = PNum + 1
End If
Next oObj
End With
Exit Sub
fin:
MsgBox "Un fichier excel doit être ouvert", vbExclamation
End Sub
ressources, outils, méthodes .... > SEULS LES MEMBRES PEUVENT VOIR LES LIENS. VEUILLEZ CONNECTER OU ENREGISTRER POUR LES VOIR <

Retourner vers Développement & programmation

Articles en relation


Qui est en ligne

Utilisateurs parcourant ce forum: MOHAMED207 et 1 invité

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by Vjacheslav Trushkin for Free Forums/DivisionCore.
Traduction par: phpBB-fr.com
phpBB SEO