|
AutoCAD VBA : Layout kopieren
Theo37 am 11.02.2011 um 09:31 Uhr (0)
Hallo Thomas,das mit der Eigeninitiative ist immer so ne Sache, bei recht wenig Ahnung. Ich bin mit CopyObjects selbst nicht weiter gerkommen. Aber "Copy is my Hobby". Ich habe folgendes bei Autodesk gefunden:Public Function CopyLayout(Source As AcadLayout, TargetName As String) As AcadLayoutDim Doc As AcadDocumentSet Doc = Source.DocumentDim Result As AcadLayoutSet Result = Doc.Layouts.Add(TargetName)If Source.Block.Count 0 ThenDim Entities() As ObjectReDim Entities(0 To Source.Block.Count - 1)Dim i As I ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Schriftkopf im aktuellen Layout ermitteln
Theo37 am 21.10.2008 um 13:48 Uhr (0)
Hallo Gerhard,bin selber noch Anfänger, aber ich versuche trotzdem mal ne Antwort. Unten ist ein Beispiel das so, natürlich keinen Sinn macht. Trotzdem zeigt es wie mann den alten Inhalt Speichern kann und die Attribute mit neuem Text füllen kann.In dem Beispiel gehe ich davon aus, daß die Schrifftköpfe "A3" heisen und mindestens 10 attribute haben.Viel Spass beim Probieren.Public Sub Blockattri()Dim Kopf As AcadBlockReferenceDim Enti As AcadEntityDim Attrib As VariantDim Inhaltalt(1 To 10) As StringDim i ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Plotten mit verschiedenen Layern
michimueller85 am 06.12.2010 um 14:55 Uhr (0)
Hallo liebes Cad Team,Ich will in einer Datei mit mehreren Layern und einem Layout immer nur ein Layer eingeschalten und Drucken!Bsp Layer: 1,2,3erster Druck: Layer 1 ein und Layer 2,3 auszweiter Druck: Layer 2 ein und Layer 1,3 ausdritter Druck: Layer 3 ein und Layer 1,2 ausich hab schon folgendes Programm geschrieben:Sub druck()Dim a As VariantDim layer_name As String For a = 1 To 3 For Each oblayer In ThisDrawing.Layers oblayer.LayerOn = False Next layer_name = a ThisDrawin ...
|
| In das Form AutoCAD VBA wechseln |
|
Autocad VBA : Block einfügen
Huebi am 05.04.2005 um 09:20 Uhr (0)
Servus Ines, ich glaube, daß Du AcadBlock und AcadBlockReference durcheinander bringst (ist mir anfangs auch ein bisserl schwer gefallen). Ein AcadBlock wird (im Normalfall) einmal definiert als ein Zusammenschluß von verschiedenen AutoCAD Elementen. Der Block hat einen eindeutigen Namen. Ein neuer Block muß daher einen neuen Namen haben. Wenn Du das einmal gemacht hast, kannst Du diesen Block x-fach in die Zeichnung einfügen (AcadBlockReference - InsertBlock). Dabei kannst Du die Einfügeposition, die Dreh ...
|
| In das Form Autocad VBA wechseln |
|
AutoCAD VBA : Werte aus PVIEWPORT lesen
Stelli1 am 10.01.2008 um 20:00 Uhr (0)
Hallo Andreas,ich kann mich kaum noch erinnern.Die (Welt)Koordinate des Ansichtsfensters, dass war doch das was du brauchst, ist in der Eigenschaft "Center" gespeichert.Ich hab mal einen Codeausschnitt eingefügt. Vielleicht hilft er dir weiter.Code:Sub Werte_Aktualisieren() Dim Zentrum As Variant If Me.com_Layout.ListIndex = -1 Then MsgBox "Es ist kein Layout angegeben !" & vbCrLf & vbCrLf _ & "Die Funktion kann nur im Layout ausgeführt werden!", vbCritical Exit Sub End If ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Bestimmtes Schriftfeld in Zeichnung finden
alfred neswadba am 30.09.2009 um 10:13 Uhr (0)
Hi,nachdem wir oben schon den Blocknamen für den Filter des SelectionSets gesetzt haben, brauchst Du die Schleife zum herausfinden des Blocknamens nicht mehr (zusaetzlich wird in der schleife auch EntPrp(0) gesetzt, was nach obiger Arraybefüllung eigentlich der Objekttyp ist).Also die Schleife mit For Each tAcadEnt In ThisDrawing.ActiveLayout.Block raus.Du solltest auch vorsichtig sein mit Set ssnew = ThisDrawing.SelectionSets.Add("TBLK") denn existiert das SelektionSet bereits, fliegst Du aus der Routine ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Plotten aus VBA
alfred neswadba am 22.12.2010 um 19:48 Uhr (0)
Hi,ich kann das Problem reproduzieren und kann ahnen, was hier passiert, aber zumindest mit .PlotType = acLimits nicht lösen. Genau Dein Hinweis mit ActiveLayout.PlotType lässt mich vermuten, dass das PlotConfiguration-Objekt für sich ja eigentlich (noch) nicht weiss, ob es letztlich auf ein Layout oder auf den Modellbereich angewendet werden soll; von daher wäre auch verständlich, dass das Setzen auf acLimits dann nicht zulässig werden könnte und der Fehler ausgelöst wird.Nun denn, ich würde damit entwede ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Plotten aus VBA
GüSo am 22.12.2010 um 12:00 Uhr (0)
Hallo Allerseits!Ich habe ein Problem beim Plotten aus VBA heraus. Das Problem besteht darin, daß ich dem Plotkonfigurations-Objekt nicht den Wert acLimits zu weisen kann.(AutoCAD 2008 unter XP Professional)Hier der Code:.......Zeichnung.PlotConfigurations.Add "VRS".........Zeichnung.PlotConfigurations("VRS").PlotType = acLimitsDieser Befehl "Zeichnung.PlotConfigurations("VRS").PlotType = acLimits" löst einen Laufzeitfehler aus, der meldet "ungültige Eingabe" (-2145386493(80200003)Was ist an diesem Befehl ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Komponenten Platzieren mit VBA
djs0401 am 20.02.2008 um 16:29 Uhr (0)
Hab deinen Link noch net angeschaut aber danke schonmal. Ich schau später mal.Es sollen einzelne Module/Bauteile aus verschiedenen Zeichnungen(die mehrere Ansichten enthalten, brauche aber nur die draufsicht) über das einlesen einer Stückliste zu einem Layout zusammengfügt werden. Einlesen der STL klappt. Es klappt nur nicht, dass ich aus den Zeichnungen die einzelne Ansicht herausziehen kann... Diese Ansichten sind nicht einfach zu einem Block zusammengefügt sondern in einzelnen Komponenten d.h. links am ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : AutoCAD plotten
facebraker am 23.03.2009 um 15:06 Uhr (0)
Hallo alfred,ich habe es versucht, bekomme aber einen Laufzeitfehler/ falsche Eingabe.Hier mein Code, muss ich dem Layout noch einen Plotter zuweisen?Code:Sub test_plott()Dim oACAD As AcadApplicationSet oACAD = AcadApplicationDim oAcadDoc As AcadDocumentDim names As Variant Set oAcadDoc = oACAD.Documents.Open("c:arbeitsverzeichniszeichnung.dwg")oAcadDoc.ActiveLayout.PlotType = acExtentsFor Each names In oAcadDoc.ActiveLayout.GetCanonicalMediaNamesDebug.Print namesNext namesoAcadDoc.ActiveLayout.Canonica ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Bereich im Modell auswählen und im Papierbereich einfügen
Brischke am 08.01.2008 um 15:36 Uhr (0)
Hallo Andreas,Dein Wunsch lässt Fragen offen:1) Welches Layout soll herangezogen werden?2) Warum gehst Du diesen Weg?Meiner Meinung nach packst du das Thema an der falschen Seite an. Denn in aller Regel sollte man doch zunächst mal seine Zeichnung fertig stellen, und dann überlegt man sich, in welchem Maßstab man das Modell (oder einen Ausschnitt) auf welches Papierformat bekommt. Daher wäre es (aus meiner Sicht) sinnvoll zuerst den darszustellenden Bereich zu wählen, dann den Darstellungsmaßstab festzuleg ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : VBA und Ansichtsfenster
Lars Geis am 13.06.2005 um 16:06 Uhr (0)
Moin Dirk,du kannst es bestimmt auch mit VBA lösen, auf die "herkömmliche" Art und Weise geht es bestimmt schneller und einfacher.Erzeuge dir eine Vorlagenzeichnung, in der die Layer aller Bem. Stile schon drin sind und sage einfach jedem Ansichtsfenster, welche Layer in diesem angezeigt werden sollen und welche nicht. Der Vorteil ist folgender: Du kannst mehrere Ansichtsfenster mit verschiedenen Maßstäben nebeneinander haben und in jedem Fenster siehst du genau das was du sehen willst. Schaltest du einen ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Batchprogramm
gerhard123 am 21.01.2009 um 13:49 Uhr (0)
Hallo Alfred,ein guter Ansatz, aber ich verwende eine ähnlichen Batch auch für das Plotten von Zeichnungen und da habe ich das selbe Problem wenn eine Zeichnung kaputt ist.Anbei ein Codeauszug aber aus eine DB ist aber egal, Public Sub machBilder() Dim SQL As String Dim z As Integer Dim t1, t2 As String SQL = ("select Dokumentennummer, dateiname from DB where Dokumentennummer = 11111 order by Dokumentennummer;") Set rs = CreateObject("adodb.recordset") Set con = CreateObject("adodb.connection") con.Open " ...
|
| In das Form AutoCAD VBA wechseln |