Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  AUTOCAD VBA

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
  
PNY präsentiert die PRO Elite™ High Endurance microSD-Flash-Speicherkarten für Videoüberwachung und kontinuierliche Aufzeichnung, eine Pressemitteilung
Autor Thema:  AUTOCAD VBA (1372 mal gelesen)
eilovliz
Mitglied
Technischer Zeichner


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

Beiträge: 48
Registriert: 24.06.2004

erstellt am: 24. Jun. 2004 07:30    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

hy leute! erstmal find ich das forum superinteressant und echt hilfreich! aber bei einem Problem komm ich dennnoch nicht weiter! und zwar! es geht um vba. ich möchte über einen button einen block aus einem Verzeichnis in Autocad 2002 einfügen! ich hab zwar schon herrausgefunden das es den befehl "ThisDrawing.ModelSpace.InsertBlock" gibt aber ich weis nicht wie ich den Pfad und die x,y,z position angebe.
kann mir bitte wer helfen!

danke Im vorraus.
MFG EilovLiu

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

MartinM
Mitglied



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

Beiträge: 122
Registriert: 27.11.2001

ACAD Map2015 3D, W7 x64 Prof. SP3

erstellt am: 28. Jun. 2004 10:25    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 eilovliz 10 Unities + Antwort hilfreich

Hallo EilovLiu,

mal auf die schnelle....

Dim blockRefObj As AcadBlockReference
Dim dblInsertPoint(0 To 2) As Double               
Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(dblInsertPoint, "C:\Temp\Block.dwg", 1#, 1#, 1#, 0)

...ich hoffe es hilft dir weiter.

viele Grüsse

Martin

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

eilovliz
Mitglied
Technischer Zeichner


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

Beiträge: 48
Registriert: 24.06.2004

erstellt am: 30. Jun. 2004 17:47    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 Martin!

danke das du dir zeit genommen hast mir eine antwort u schreiben.
wenn ich es so mache

Private Sub CommandButton1_Click()
Dim blockRefObj As AcadBlockReference
Dim dblInsertPoint(0 To 2) As Double
Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(dblInsertPoint, "C:\block.dwg", 1#, 1#, 1#, 0)
End Sub

dann müsste ich theoretisch durch den button click einen block einfügen können aber ich bekomme immer einen Laufzeitfehler!
ich hab auch einige sachen probiert aber irgendwie funktioniert das nicht.
wenn du noch zeit hast und dir noch was einfällt würd ich mich sehr freun und es würde mir sehr helfen.

danke für alles

Grüße eilovliz


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

MartinM
Mitglied



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

Beiträge: 122
Registriert: 27.11.2001

ACAD Map2015 3D, W7 x64 Prof. SP3

erstellt am: 01. Jul. 2004 08:14    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 eilovliz 10 Unities + Antwort hilfreich

Hallo EilovLiu,

es werden hier noch keine Fehler abgefangen, d.h. du musst sicherstellen dass der Block (in meinem Beispiel C:\Temp\Block.dwg) auch existiert.
Des weiteren musst du überlegen, wie du den Einsetzpunkt (Koordinaten) übergibst - dieses habe ich in mein Beispiel noch eingebaut (durch Klick des Anwenders).

Dim blockRefObj As AcadBlockReference
Dim dblInsertPoint(0 To 2) As Double               
dblInsertPoint = ThisDrawing.Utility.GetPoint(, "BlockPosition angeben ([ENTER] für Abbruch): ")
Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(dblInsertPoint, "C:\Temp\Block.dwg", 1#, 1#, 1#, 0)

viele Grüsse

Martin

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



Anzeige:Infos zum Werbeplatz >>

SYSCAD DEMO Version CAD APP für Fassadenbau, Metallbau

SYSCAD - CAD für Fenster, Türen und Fassaden

Marco Lorenz
Mitglied
Softwareentwickler, freier Inventor & AutoCAD Händler


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

Beiträge: 59
Registriert: 18.09.2001

Win NT,2k,XP Pro
Acad+Mechanical2k-2005,
Inventor 5-9

erstellt am: 18. Jul. 2004 23:49    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 eilovliz 10 Unities + Antwort hilfreich

Mit der InsertBlock-Methode gehts zwar, aber Du hast den Block nicht am Cursor sichtbar, wenn Du den Einfügepunkt vorher zeigst.

Probiers mal damit:

Public Sub test()
Dim xScale As Double
Dim yScale As Double
xScale = 2.1
yScale = 1.25
ThisDrawing.SendCommand _
"(command ""-_insert"" ""test1"" Pause " & xScale & " " & yScale & " 0)" & vbCr
End Sub

Aber Achtung: Falls Du mehr als eine Pause machst (z.B. auch noch für Skalierfaktor oder Einfügewinkel), dann läuft VBA asynchron weiter (bei einer Pause funktionierts seit 2000i)

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