Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Excel und AutoCAD

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
  
NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung
Autor Thema:  Excel und AutoCAD (1605 mal gelesen)
CADLER06
Mitglied
Techniker

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

Beiträge: 6
Registriert: 22.06.2006

erstellt am: 22. Jun. 2006 15:27    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 liebe CAD´ler,

möchte mich doch gerne auch aktiv am Forum beteiligen, bin aber noch ziemlich grün hinter den Ohren.
Habe hier im Forum schon viele nützliche Tipps gefunden. Jetzt habe ich ein anderes Problem.
Ich muss aus Excel Werte als Punkte an AutoCAD übergeben, damit nach diesen Punkten Rechtecke gezeichnet werden. Habe mich dazu entschieden das per VBA zu lösen (ginge mit Sicherheit auch mit LISP, oder ??)
Kann mir jemand einen Tipp über die Vorgehensweise geben ?

im Voraus vielen Dank
der CADLER06

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1360
Registriert: 24.07.2002

AutoCAD ACA 2024
Solidworks 2022 Sp5
Enterprise PDM 2022 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell Precision 3660
Intel Core i9-12900K
32 GB Arbeitsspeicher
2x Dell U2415

erstellt am: 22. Jun. 2006 15:35    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 CADLER06 10 Unities + Antwort hilfreich

Hi Cadler06,

Erst einmal Willkommen im Forum.
Schau dir doch mal im Sample-Ordner unter VBA das Beispiel Excellink.dvb an. Dort werden Daten von Autocad nach Excel und zurück übertragen. Das sollte, denke ich schon mal ein Anfang sein.

Gruß, Carsten

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

CADLER06
Mitglied
Techniker

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

Beiträge: 6
Registriert: 22.06.2006

erstellt am: 22. Jun. 2006 15:59    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

Hi Carsten,

danke für den Tipp, wenn die Lösung nun auch noch fast vor der Nase liegt ;-)))
Daten werden wenn ich das VBA-Projekt anpasse importiert, aber irgendwie bekomme ich es nicht hin, das er mir daraus ein Rechteck macht !

Muss ich das im VBA Script per Aufruf des Zeichenbefehls aktivieren ?

Gruß
Joe

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1360
Registriert: 24.07.2002

AutoCAD ACA 2024
Solidworks 2022 Sp5
Enterprise PDM 2022 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell Precision 3660
Intel Core i9-12900K
32 GB Arbeitsspeicher
2x Dell U2415

erstellt am: 22. Jun. 2006 16:09    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 CADLER06 10 Unities + Antwort hilfreich

Hi Joe,

Du kannst ja, wenn du die Daten von Excel je Rechteck hast, mit den Koordinaten (errechnet oder vorliegend) mittels AddPolyline die Rechtecke zeichnen. Danach rufst du den nächsten Datensatz ab und so weiter.
Wenn du schon mal etwas zusammen hast kannst du es ja uploaden / posten und dann kann man weiterschauen.

Gruß, Carsten

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

CADLER06
Mitglied
Techniker

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

Beiträge: 6
Registriert: 22.06.2006

erstellt am: 23. Jun. 2006 09:33    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 Carsten,

Public Function rechteck(Punkt1, Punkt2) As AcadLWPolyline
    Dim eckpunkt(0 To 7) As Double, poly As AcadLWPolyline
    eckpunkt(0) = CDbl(Punkt1(0)): eckpunkt(1) = CDbl(Punkt1(1))
    eckpunkt(2) = CDbl(Punkt2(0)): eckpunkt(3) = CDbl(Punkt1(1))
    eckpunkt(4) = CDbl(Punkt2(0)): eckpunkt(5) = CDbl(Punkt2(1))
    eckpunkt(6) = CDbl(Punkt1(0)): eckpunkt(7) = CDbl(Punkt2(1))
    Set poly = ThisDrawing.ModelSpace.AddLightWeightPolyline(eckpunkt)
    poly.Closed = True
    Set rechteck = poly
    End Function

Das habe ich fürs Rechteckzeichnen (beispielhaft) ! Irgendwie importiert mein Modul nun auch die Daten, es wird aber kein Objekt erstellt. Irgendwas fehlt noch! Für deine Hilfe bis hierhin vielen Dank !


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

startrek
Moderator
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 23. Jun. 2006 10:02    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 CADLER06 10 Unities + Antwort hilfreich

Hi Cadler,

das haut doch aber so eigentlich hin;-)

Code:

Sub x()
    Dim p1#(1), p2#(1)
    p2(0) = 5: p2(1) = 10
    rechteck p1, p2
    ZoomExtents
End Sub

Gruss Nancy

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1360
Registriert: 24.07.2002

erstellt am: 23. Jun. 2006 11:26    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 CADLER06 10 Unities + Antwort hilfreich

Hallo Joe,

Das sollte eigentlich klappen. Als was für ein Datentyp bekommst du die Daten von Excel?

Hier 2 Beispiele, wie du das verarbeiten kannst:

Public Function Rechteck(Punkt1, Punkt2) As AcadLWPolyline
    Dim eckpunkt(0 To 7) As Double
    eckpunkt(0) = Punkt1(0): eckpunkt(1) = Punkt1(1)
    eckpunkt(2) = Punkt2(0): eckpunkt(3) = Punkt1(1)
    eckpunkt(4) = Punkt2(0): eckpunkt(5) = Punkt2(1)
    eckpunkt(6) = Punkt1(0): eckpunkt(7) = Punkt2(1)
    Set Rechteck = ThisDrawing.ModelSpace.AddLightWeightPolyline(eckpunkt)
    Rechteck.Closed = True
End Function


Public Sub joe1()
Dim x1$, x2$, y1$, y2$
x1 = "0": y1 = "0": x2 = "100": y2 = "100"
'Werte liegen einzeln als String vor (x1 und y1, x2 und y2)
Dim p1(1) As Double
Dim p2(1) As Double
p1(0) = CDbl(x1) 'X-Wert Punkt 1
p1(1) = CDbl(y1) 'Y-Wert Punkt 1
p2(0) = CDbl(x2) 'X-Wert Punkt 2
p2(1) = CDbl(y2) 'Y-Wert Punkt 2
Rechteck p1, p2
End Sub


Public Sub joe2()
Dim Pt1$, Pt2$
Pt1 = "0,0": Pt2 = "100,100"
'Werte liegen kombiniert als String vor (Pt1 und Pt2)
Dim p1(1) As Double
Dim p2(1) As Double
Dim strTeil() As String
strTeil = Split(Pt1, ",") 'Teilt Pt1 in Strings mit Trennung (,)
p1(0) = CDbl(strTeil(0))
p1(1) = CDbl(strTeil(1))
strTeil = Split(Pt2, ",") 'Teilt Pt2 in Strings mit Trennung (,)
p2(0) = CDbl(strTeil(0))
p2(1) = CDbl(strTeil(1))
Rechteck p1, p2
End Sub


Gruß, Carsten

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

CADLER06
Mitglied
Techniker

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

Beiträge: 6
Registriert: 22.06.2006

erstellt am: 26. Jun. 2006 11:12    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

Juhu,

also das klappt so ganz gut ! Rechteck wird gezeichnet wunderbar.

Besteht auch eine Möglichkeit aus Excel heraus per VBA Zeichnen- Befehle aufzurufen ?? Ich habe da folgende Zeile die aber irgendwie unter ACAD 2006 nicht funktioniert:

ac.thisdrawing.sendcommand "_zoom " zum Beispíel.

Gruß und dank an alle für die Superhilfe

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1526
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 26. Jun. 2006 16:32    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 CADLER06 10 Unities + Antwort hilfreich

Hallo,

bei mir geht es mit Sendcommand und direkt über ActiveX

ThisDrawing.SendCommand "_zoom "
ThisDrawing.Application.ZoomPickWindow

Stelli

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

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

CADLER06
Mitglied
Techniker

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

Beiträge: 6
Registriert: 22.06.2006

erstellt am: 28. Jun. 2006 10:36    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

Hi Stelli,

habe die Zeilen in mein Script eingefügt. AutoCAD startet wunderbar, dann bekomme ich in Excel jedoch einen Laufzeitfehler 438, Object unterstützt dies Eigenschaft oder Methode nicht.

Hmm hab ich es vielleicht an der falschen Stelle eingefügt?
*grübel *rätsel

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

startrek
Moderator
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 28. Jun. 2006 10:46    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 CADLER06 10 Unities + Antwort hilfreich

Dein Acad-Objekt hast Du aber schon davorgesetzt oder?

ac.ThisDrawing.SendCommand "_zoom "
ac.ThisDrawing.Application.ZoomPickWindow

oder versuch's mal direkt, etwa so:

ac.ZoomExtents oder ac.ZoomAll oder so ...

Gruss Nancy

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

CADLER06
Mitglied
Techniker

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

Beiträge: 6
Registriert: 22.06.2006

erstellt am: 28. Jun. 2006 13:26    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

Juhu Nancy,

hmm ich armer VBA Lehrling, ich hab das folgender massen eingefügt

Private Sub CommandButton1_Click()
Dim ac As Object
Set ac = CreateObject("Autocad.application")
ac.Visible = True
ac.ZoomExtens
End Sub

Ist doch so richtig oder ???

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



Anzeige:Infos zum Werbeplatz >>

GeoTools V25 CAD APP für GIS, Vermessung und Kartografie, Allgemeine Werkzeuge, Datenaustausch

GeoTools ist eine Geo-Daten-CAD-Anwendung, die nützlich ist, um CAD-Daten mit geografischem Bezug anzuzeigen, zu erstellen, zu bearbeiten, zu analysieren und zu dokumentieren.

startrek
Moderator
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 28. Jun. 2006 14:07    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 CADLER06 10 Unities + Antwort hilfreich

Hmm, so rein formell ist das schon richtig,
allein mir erschließt sich der Sinn des Button-Codes [noch] nicht ganz,
momentan startest du ein Acad und zoomst auf die Grenzen einer leeren Zeichnung? ;;-))
Code:

Private Sub CommandButton1_Click()
    Dim ac As Object
    Set ac = CreateObject("Autocad.application")
    ac.Visible = True
    'to do, z.B.
    with ac.activedocumnet
        .modelspace.addpoint(p)
        ac.ZoomExtens
        .saveas "c:\irgendwo\blablub.dwg"
        'ggf. beenden?
        '.close
    end with
    'ac.quit
    'set ac=nothing
End Sub

Gruss Nancy

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)2025 CAD.de | Impressum | Datenschutz