|
Autocad VBA : probleme mit
fuchsi am 10.10.2005 um 16:29 Uhr (0)
ich meinte damit, dass es den Inhalt der variable auch tatsächlich als Stylesheet (stb oder ctb) gibt.Set objLayout = ThisDrawing.ActiveLayoutobjLayout.StyleSheet = "monochrome.ctb" funktioniertobjLayout.StyleSheet = "IrgendEinString.ctb" funktioniert nicht, sondern führt genau zu deinem beschriebenen Fehler, weil es die Datei IrgendEinString.ctb nicht als Stylesheet zum Auswählen gibt.wenn du es manuell im PLOT-Dialog nicht auswählen kannst,kannst es auch per VBA nicht zuweisen.------------------ Ing. ...
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : Timer in Autocad 2000 einbinden ?
fuchsi am 13.10.2005 um 13:17 Uhr (0)
also das TimerControl hab ich auch nicht gefunden. Da ich das auch mal selber gebraucht hatte habs ich per windows API gelöst.Hier der Auszug aus meinem Projekt (das ganze muss in einem allgemeinen Modul stehen)Declare Function timeKillEvent Lib "winmm.dll" (ByVal uID _ As Long) As Long Declare Function timeSetEvent Lib "winmm.dll" (ByVal uDelay _ As Long, ByVal uResolution As Long, ByVal lpFunction _ As Long, ByVal dwUser As Long, ByVal uFlags As Long) _ As LongPublic TimerSub TimerStart() ...
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : Exe aus VB6 deutlich langsamer als VBA?
fuchsi am 11.04.2006 um 14:08 Uhr (0)
Zitat:Original erstellt von Stelli1:VB6 als Exe 88 sec.VB6 Dll aus VBA aufgrufen mit late Binding 2 sec.ist ja auch logisch. Die DLL wird ja aus Autocad heraus gestartet, und läuft demnach im Thread von Autocad. Hier kann die DLL direkt mit Autocad reden.Die EXE läuft ja als eigener Thread und holt sich über die Microsoft COM Schnittstelle eine Instanz vom Autocadobjekt. Hier ist immer das Betriebssystem involviert.Ausserdem hat die EXE-Version noch einen großen Nachteil : wenn 2 Autocadsitzungen laufen, ...
|
| In das Form Autocad VBA wechseln |
|
AutoCAD VBA : Plot Eigenschaft von Layer
fuchsi am 12.09.2007 um 12:17 Uhr (0)
Dass hier ADT2007 anders arbeitet als das reine Autocad 2007 kann ich zwar nicht glauben.Habe es jetzt nochmal extra in der Autocad 2007er Version probiert.ThisDrawing.Layers.Item("Layer4").Plottable = Falsegeht definitiv (Natürlich muss es den Layer Layer4 auch geben)Hm sehe gerade, dass mein erstes Posting Plotable statt Plottable heisst. Sollte aber in der VBA Umgebnung ja eh automatisch korrigiert werden------------------ Ing. Anton FuchsWWW.FFZELL.AT.TC[Diese Nachricht wurde von fuchsi am 12. Sep. 20 ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : sendcommand
fuchsi am 08.10.2007 um 16:26 Uhr (0)
Sub Export_Bestimmt2() Dim acApp As Object, x, y Application.ScreenUpdating = False Set acApp = GetObject(, "Autocad.application") x = acApp.activedocument.FullName y = Worksheets("bestimmt").Cells(13, 4).Value AppActivate "Autocad 2006" acApp.activedocument.sendcommand "commandName" & chr(13) acApp.activedocument.sendcommand y AppActivate "Microsoft Excel" Sheets("start").SelectEnd Sub[/code]Und im Excel Feld 13,4 steht wirklich dieser ganze Codeschnippsel (command "ucs" ...dann sollte es so geh ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : sendcommand
fuchsi am 08.10.2007 um 15:48 Uhr (0)
Nehmen wir mal an, dass der ganze String wirklich eins zu eins in einem Excelferld stehtEyxcelfeld Inmhalt : (command "_ucs" "_w") (command "_insert" "Kot_Hoehe_LP" "-101941.8499051,203057.2992329" "" "" "" "1023.2" ) (command "_ucs" "_p") jetzt holst du dir diesen Inhalt einfach in eine Variable z.B.: StringAusExcelFeld und schiesst es so ins Autocad:acadObj.ActiveDocument.sendcommand "(progn" & StringAusExcelFeld & ")" & vbcr------------------ Ing. Anton FuchsWWW.FFZELL.AT.TC[Diese Nachricht wurde von f ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Dokumententyp auslesen
fuchsi am 05.03.2008 um 14:23 Uhr (0)
Im gegensatz zum Inventor gibts es in ACAD keinen Dokumenttyp.Im Inbentor gibts ja Einzelteile, Zusammenbauzeichnungen, Layouts und was weiss der Teufel noch alles.(PartDocument, AssemblyDocument,DrawingDocument,PresentationDocument)In Autocad gibt es lediglich DWG Zeichnungen, und sonst nichts.(Application.Documents bzw. Application.ActiveDocument)------------------ Ing. Anton FuchsWWW.FFZELL.AT.TC[Diese Nachricht wurde von fuchsi am 05. Mrz. 2008 editiert.]
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : VBA-Selectionset an Acadbefehl übergeben; Wie ??
fuchsi am 07.10.2005 um 12:26 Uhr (0)
du könntest eventuell diesen Umstand ausnützen, dass ein in VBA erzeugter Auswahlsatz immer der letzte in der Auswahlsatzreihenfolge ist.z.B.: Dim ss As AcadSelectionSet Set ss = ThisDrawing.SelectionSets.Add("TEST") ss.SelectOnScreen ThisDrawing.SendCommand ("(setq ss (ssget ""_P""))" & Chr(13))hier weise ich der LISP Variable ss einfach den VORIGEN Auswahlsatz zuden kannst du in autocad dann mit !ss verwendenoder gleich beim Befehl V für vorige eingeben.------------------ Ing. Anton FuchsWWW.FFZELL. ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : VBA-Selectionset an Acadbefehl übergeben; Wie ??
fuchsi am 07.10.2005 um 12:44 Uhr (0)
noch eine Antwort in Lisp ausprogrammiert(vl-load-com); Autocad Objekt holen(setq AxAcad (vlax-get-acad-object)); aktuelle zeichnung holen(setq AxDrawing (vla-get-activedocument AxAcad)); Container Selectionssets holen(setq AxSelectionsets (vlax-get AxDrawing "SelectionSets")); den in VBA erstellten Selectionset mittels dessen Namen holen(setq AxSelectionset (vlax-invoke AxSelectionsets "ITEM" "TEST3")); einen leeren Lisp Auswahlsatz erstellen(setq LispSelectionset (ssadd) i1 0); eine Schleife über alle im ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Ausführen von einem Macro aus einem anderem Modul die 2te
fuchsi am 16.04.2008 um 15:08 Uhr (0)
wie kommt denn dein programm auf diese anderen Rechner.Erstelle einfach dazu ein Setup, dass die Programme (DVB-Dateien ?) ins gewünschte Verzeichnis kopiert, eventuell in Autocad automatisch Suchpfade einträgt, oder an einer bestimmten Stelle der Registry dieses Verzeichnis hinterlegt.Das mit dem Passsowrtschutz habe ich nicht ganz verstanden. Wie geht denn sowas bei VBA ?[Diese Nachricht wurde von fuchsi am 16. Apr. 2008 editiert.]
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : objekt wählen
fuchsi am 07.05.2008 um 14:53 Uhr (0)
Zitat:Original erstellt von Gregi:ThisDrawing.SendCommand "_extrude" & vbCr & Teil & vbCr & Replace(CStr(Wanddicke), ",", ".") & vbCr[/i]In der Variable teil ist ja die referenznummer der Polylinie gespeichert. Die akzeptiert Autocad aber nicht bei einer ObjektwahlDa das aber eh das zukletzt erstellte teil ist, sollte das so funktionierenThisDrawing.SendCommand "_extrude" & vbCr & "_last" & vbCr & ------------------ Ing. Anton FuchsWWW.FFZELL.AT.TC
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Zugriff auf excel-zeile als Datensatz per ID
fuchsi am 20.05.2008 um 13:29 Uhr (0)
Tja ich würde da einfach eine Schleife drüber programmieren, und die Namen in einem Array speichernAchtung dieses Beispiel ist in Excel-VBA geschrieben, muss eventuell für VBA unter Autocad angepasst werden !! Dim MitArbeiter() As String For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row ReDim Preserve MitArbeiter(i) MitArbeiter(i) = Cells(i, 1).Value Next------------------ Ing. Anton FuchsWWW.FFZELL.AT.TC
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Zugriff auf excel-zeile als Datensatz per ID
fuchsi am 20.05.2008 um 17:02 Uhr (0)
ist Geschmacksfrage ob man das Array gleich auf die fertige Länge dimmensioniert, oder bei Bedarf mit PRESERVE immer um eins erweitert.Wenn man z.B.: Daten aus einer sequentiellen Datei (z.B.: Textdatei, bei der man die Zeileanzahl nicht weiss) einliest, ist es halt nur mit redim preserve möglich.In deinem Fall ists wurscht, da man ja die Anzahl der Zeilen ja eh schon vorher weiss.------------------ Ing. Anton FuchsWWW.FFZELL.AT.TC
|
| In das Form AutoCAD VBA wechseln |