Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Mass-Reihe nach Excel auslesen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Mass-Reihe nach Excel auslesen (1088 mal gelesen)
marc1303
Mitglied



Sehen Sie sich das Profil von marc1303 an!   Senden Sie eine Private Message an marc1303  Schreiben Sie einen Gästebucheintrag für marc1303

Beiträge: 80
Registriert: 17.03.2003

Intel Core i7 960 3.2 MHz, Win 7 Pro, 12 GB RAM, Nvidia Quadro FX 1800,AutoCAD 2010 SP1 mit Metallbaulösung Athena 2010

erstellt am: 08. Mrz. 2005 10:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Newsgroupers

Ich habe folgendes Problem. Ich bemasse in AutoCAD mit Basisbemassung bzw. Koordinatenbemassung. Diese Werte muss ich anschliessend manuell nach Excel übertragen.

Kennt jemand ein Tool (Lisp oder ARX) welches diesen Vorgang automatisiert? Bemassen, Tool wählen, gewünschte Masse wählen, Auswahl beenden und in Excel einfügen.
Ich hab wirklich sehr wenig Ahnung von Programmierung. Lacht mich bitte nicht aus, wenn meine Idee total abwegig ist.

Ich wäre auch bereit etwas dafür zu bezahlen. Es kommt immer wieder vor, dass ich solche Werte nach Excel übernehmen muss.

Gruss
Marc

[Diese Nachricht wurde von marc1303 am 08. Mrz. 2005 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Roland768
Mitglied


Sehen Sie sich das Profil von Roland768 an!   Senden Sie eine Private Message an Roland768  Schreiben Sie einen Gästebucheintrag für Roland768

Beiträge: 2
Registriert: 08.03.2005

AutoCad LT 2000

erstellt am: 08. Mrz. 2005 11:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc1303 10 Unities + Antwort hilfreich

Hallo marc 1303,

vielleicht ist das Problem leichter mit Excel zu lösen:
Befehl: Abfrage/auflisten, Objekte wählen, Bericht als Text in Excel einfügen und diesen Text mit Textfunktionen sezieren (gewünschte Information herauspolken), evtl mit Autofilter zusammenfassen, rüberkopieren in neue Tabelle, fertig.
Wenn man das Vorgehen erst mal kennt, ist es egal, ob pro Durchgang 5 oder 5000 Objekte dabei sind.
Poste mal eine Abfrageliste und benenne die Informationen, die du daraus brauchst, dann kann ich die notwendigen Textfunktionen genauer beschreiben.

Lacht mich ruhig aus, aber ich kenne mich mit Excel nun mal recht gut und mit ACad recht wenig aus, deswegen lese ich ja auch dieses Forum.

Gruß Roland

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

marc1303
Mitglied



Sehen Sie sich das Profil von marc1303 an!   Senden Sie eine Private Message an marc1303  Schreiben Sie einen Gästebucheintrag für marc1303

Beiträge: 80
Registriert: 17.03.2003

Intel Core i7 960 3.2 MHz, Win 7 Pro, 12 GB RAM, Nvidia Quadro FX 1800,AutoCAD 2010 SP1 mit Metallbaulösung Athena 2010

erstellt am: 08. Mrz. 2005 11:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Roland768

Hier die Abfrage-Liste eines einzelnen Bemassungspunktes.
In diese Fall hier müsste ich den Y-Wert (1781) in Excel übernehmen:


                  BEMASSUNG  Layer: "MASZE"
                          Bereich: Modellbereich
                Referenz = CE3
assoziativ: nein
Typ: Y-Achse
zu bearbeitendes Objekt      Definitionspunkt: X=    -9.3  Y=  1781.0  Z=   
0.0
Führung      Definitionspunkt: X=  -100.4  Y=  1781.0  Z=      0.0
BKS Funktion Definitionspunkt: X=      0.0  Y=      0.0  Z=      0.0
Vorgabe Textposition: X=  -150.4  Y=  1811.5  Z=      0.0
Vorgabetext
Bemaßungsstil: "ISO-25"
Bemaßungsstil überschreibt:
DIMDLI      10.0
DIMRND      0.0
DIMSCALE    7.5
DIMTDEC    1
DIMTXT      6.0

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bernd P
Ehrenmitglied V.I.P. h.c.
cook-general



Sehen Sie sich das Profil von Bernd P an!   Senden Sie eine Private Message an Bernd P  Schreiben Sie einen Gästebucheintrag für Bernd P

Beiträge: 3358
Registriert: 07.06.2001

W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365

erstellt am: 08. Mrz. 2005 11:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc1303 10 Unities + Antwort hilfreich

Servus

Wenn du die Punkte Selbst erstellst, dann verwende einen Block mit Attribut.

die Koordinaten der Einfügepunkte kann man dann mit Attribustextraktion "_eattext" in eine CSV speichern.

------------------
Warum Einfach es geht auch kompliziert schöne Grüsse aus der Steiermark  Bernd P.
Bitte Supportangaben eintragen, warum siehst du hier

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Proxy
Ehrenmitglied
Stateless-DHCP v6-Paketfragmentierer


Sehen Sie sich das Profil von Proxy an!   Senden Sie eine Private Message an Proxy  Schreiben Sie einen Gästebucheintrag für Proxy

Beiträge: 1629
Registriert: 13.11.2003

Tastaturen, Mäuse,
Pladden, Monitore, ...

erstellt am: 08. Mrz. 2005 12:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc1303 10 Unities + Antwort hilfreich

Mit VBa könnte es ungefähr so aussehen:

Code:

Sub DimValue2Excel()
  Dim doc As AcadDocument
  Dim sel As AcadSelectionSet
  Dim mode As Integer
  Dim groupCode As Variant, dataCode As Variant
  Dim gpCode(0) As Integer
  Dim dataValue(0) As Variant
  Dim i As Long
  Dim cad As Object
  Dim acad As AcadApplication
  Dim autocad_gestartet As Boolean
  autocad_gestartet = True
  On Error Resume Next
  Set cad = GetObject(, "AutoCAD.Application")
  If Err.Number <> 0 Then
    Err.Clear
    MsgBox "AutoCAD ist nicht gestartet", vbOKOnly, "Fehler"
    Exit Sub
  End If
  Set acad = cad
MsgBox ("TEST " & acad.ActiveDocument.Name & " "), vbInformation
If IsNull(acad.ActiveDocument) Then
    MsgBox "Keine Zeichnung geöffnet", vbOKOnly, "Fehler"
    Exit Sub
  End If
  gpCode(0) = 0
  dataValue(0) = "DIMENSION"
  groupCode = gpCode
  dataCode = dataValue
 
  mode = acSelectionSetAll

  Set sel = acad.ActiveDocument.SelectionSets.Add("SSET2")
  sel.Select mode, , , groupCode, dataCode

  Range("A1").Select
  ActiveCell.FormulaR1C1 = "Messwert"
 
  Range("B1").Select
  ActiveCell.FormulaR1C1 = "ID"
  Range("C1").Select
  ActiveCell.FormulaR1C1 = "ObjektTyp"
  Range("D1").Select
  ActiveCell.FormulaR1C1 = "Layer"
  Range("E1").Select
  ActiveCell.FormulaR1C1 = "XXX"
  If sel.Count > 0 Then
    For i = 0 To sel.Count - 1
      Range("A" + Trim(Str(i + 2))).Select
      ActiveCell.FormulaR1C1 = sel.Item(i).Measurement
      Range("B" + Trim(Str(i + 2))).Select
      ActiveCell.FormulaR1C1 = sel.Item(i).Handle
      Range("C" + Trim(Str(i + 2))).Select
      ActiveCell.FormulaR1C1 = sel.Item(i).ObjectName
      Range("D" + Trim(Str(i + 2))).Select
      ActiveCell.FormulaR1C1 = sel.Item(i).Layer
      Range("E" + Trim(Str(i + 2))).Select
      ActiveCell.FormulaR1C1 = sel.Item(i).OwnerID
    Next i
  End If
  sel.Clear
  sel.Delete
End Sub

Zum Code siehe Post von Startrek.

------------------
"Lisp?!?! Why the Hell did you pick the most arcane, obscure, and hopelessly-rooted-in-the-computer-science-department language in the world for an AutoCAD programming language?"  Read the whole story: The Autodesk File ca. 890 Seiten | 7500 KB PDF

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Roland768
Mitglied


Sehen Sie sich das Profil von Roland768 an!   Senden Sie eine Private Message an Roland768  Schreiben Sie einen Gästebucheintrag für Roland768

Beiträge: 2
Registriert: 08.03.2005

AutoCad LT 2000

erstellt am: 08. Mrz. 2005 13:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc1303 10 Unities + Antwort hilfreich

Hallo Marc,

wenn der Text in der ersten Spalte steht, muss in der zweiten Spalte folgende Formel stehen:

=WENN(LINKS(ZS(-1);7)="Führung";WERT(WECHSELN(TEIL(ZS(-1);SUCHEN("Y";ZS(-1))+4;6);".";","));"")

oder in der A1-Darstellung:

=WENN(LINKS(A38;7)="Führung";WERT(WECHSELN(TEIL(A38;SUCHEN("Y";A38)+4;6);".";","));"")

Ein Problem ist allerdings, dass vermutlich vor dem Wort Führung noch Leerzeichen sind, die beim cut and paste in das Posting verlorengegangen sind. Entweder setzt man die Leerzeichen mit vor das Wort Führung in die "" (und muß natürlich auch die Anzahl der Zeichen (7) entsprechend erhöhen, oder man läßt sich die Zeile erst per Autofilter anzeigen (ganzen Bereich markieren, Daten/Filter/Autofilter wählen, dann in dem Klappfeld mit dem Pfeil Benutzerdefiniert, in der Dialogbox links "enthält" auswählen, rechts "Führung" eintragen, OK, dann sind nur noch die Zeilen mit "Führung" zu sehen, und beim kopieren und einfügen der Formel wird diese auch nur in die sichtbaren Felder eingetragen.
Für diesen Fall muß die Formel so aussehen:
=WECHSELN(WERT(TEIL(ZS(-1);SUCHEN("Y";ZS(-1))+4;6));".";",") oder
=WECHSELN(WERT(TEIL(A48;SUCHEN("Y";A48)+4;6));".";",")
So findet die Formel dann eben jeden y-Wert.

Eins noch: in der A1-Darstellung muß man natürlich die Zeilennummer anpassen (statt der 38 bzw. der 48 die Zeilennummer, in der die Formel steht.
Ich arbeite immer mit der Z1S1-Darstellung, da kann man die Formel einfach hineinkopieren.

Ach ja, um die Zahlen vernünftig weiterzubearbeiten, sollte man den Bereich mit den eben errechneten Werten markieren, Bearbeiten/Kopieren und dann in einer neuen Tabelle Bearbeiten/Inhalte einfügen (Werte ankreuzen) wählen. Dann hat man die berechneten Zahlen statt der Formel in der Zelle stehen.


Viel Erfolg

Roland

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz