|
Autocad VBA : Delphi
fuchsi am 02.12.2004 um 10:49 Uhr (0)
- Ist diese Verbindung von ACAD und Delphi überhaupt der richtige Weg? kann ich dir nicht sagen,kenne Delphi selber nicht. aber da es OLE Objekte ansprechen kann und du diese sprache anscheinend kennst , warum nicht ? - Muß ich vorher eine ActivX-Komponente installieren? eigentlich nein, das instanzieren von autocad und das öfnnen funktioniert ja - Wie würde eine Programmzeile z. B. zum erstellen einer Linie aussehen? in vb würde das so aussehen Dim p1(0 To 2) As Double Dim p2(0 To 2) As Double p1(0) = 0: ...
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : copy Funktion AutoCAD-Excel
fuchsi am 02.12.2004 um 10:58 Uhr (0)
bei solchen Fragen hilft der Makrorecorder in excel alles was du fernsteuern willst einfach manuell in excel durchgehen un die schritte mit dem Macrorecorder aufzeichen. den aufgezeichneten Code dann anschauen und in Autocvad VBA umsetzten Bei deiner Fragestellung kommt z.B.: folgendes raus Sub Makro1() Makro1 Makro Makro am 02.12.2004 von CCM-Client: 12027 aufgezeichnet Sheets( Tabelle1 ).Select Sheets( Tabelle1 ).Copy After:=Sheets(3) End Sub was sagt uns das: du musst nach dem after d ...
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : ausgewähltes element reseten
fuchsi am 02.12.2004 um 11:34 Uhr (0)
am einfachsten, wenn du vor der abfrage einfach returnobj zurücksetzt Set returnObj = Nothing AutoCAD.ActiveDocument.Utility.GetEntity returnObj, basePnt, strPromt ------------------ WWW.FFZELL.AT.TC
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : copy Funktion AutoCAD-Excel
Abele am 02.12.2004 um 11:58 Uhr (0)
Danke erstmal. Aber ich kann den Code im Autocad nicht 1:1 vom Excel übernehmen. Leider funktioniert meine Excel-Hilfe nicht, sonst könnte ich nachschauen. Wenn ich im Acad(verweis auf excel-8-library) nach eingeben des copy-Befehls die Leertaste drücke, wird wie üblich angezeigt, was für Argumente benötigt werden. Die benötigten Argumente sind: [(After),(Before)]. Nun weiß ich eben nicht was er für Eingaben erwartet, da die Eingabe von Dir ja nicht dieser Aufforderung entspricht. Hilfe ?!
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : Delphi
mapcar am 02.12.2004 um 12:13 Uhr (0)
Im Prinzip ist es egal, ob du die COM-Schnittstelle in AutoCAD über VBA oder Delphi ansteuerst - die COM-Methoden (früher auch ActiveX-Methoden genannt) sind die selben, egal ob Vlisp, VBA oder Delphi. Ein Unterschied ist allerdings da - wie bei VB (nicht VB A ) läuft Delphi nicht in process , rechne also damit, dass dein Programm stellenweise deutlich langsamer läuft als VBA oder VLisp. Und ein weiterer Hinweis: GetActiveOleObject( AutoCad.Application ) und createobject( Autocad.Application ) sind natürl ...
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : copy Funktion AutoCAD-Excel
startrek am 02.12.2004 um 13:32 Uhr (0)
Kann Dir so nicht ganz folgen, wo genau das Problem sein soll. Fuchsis Tip solltes doch tun? Oder du postest mal den entsprechenden Codepart mit Kommentar, wo s klemmt. Gruss Nancy
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : copy Funktion AutoCAD-Excel
JoeG am 02.12.2004 um 13:41 Uhr (0)
Hallo versuch es mal so Public Sub Excel_zugreifen() Dim Excel As Excel.Application Dim ExcelSheet As Object Dim ExcelWorkbook As Object Excel starten Set Excel = New Excel.Application Excel.Visible = True Vorlage öffnen Workbooks.Open FileName:= C:Test.xls , ReadOnly:=True Sheets( Tabelle1 ).Copy After:=Sheets(Sheets.Count) End Sub den Excel-Verweis nicht vergessen!!! Joe
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : copy Funktion AutoCAD-Excel
fuchsi am 02.12.2004 um 13:59 Uhr (0)
nun ja das liegt daran, dass du autocad vba bist und nicht in excel vba aber ein bisschen Kreativität sollte doch vorhanden sein z.B: Dim excel As New excel.Application excel.Visible = True excel.Workbooks.Add Dim sh As Sheets Set sh = excel.ActiveWorkbook.Sheets Call sh(1).Copy(, sh(sh.Count)) damit wird die erste Seite kopiert und nach derletzten seite sh(sh.count) kopiert before wird weggelassen ------------------ WWW.FFZELL.AT.TC
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : vorhandene Bemassungen ändern
TomiProg am 02.12.2004 um 14:25 Uhr (0)
Wie Witzig. Das habe ich doch oben erklärt, daß dies keinen Erfolg hatte. Er kennt die Befehle auch im debuggten Zustand (Datei mit ARX-Endung) nicht. Mit Lisp ist dies wohl nicht zu lösen.
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : vorhandene Bemassungen ändern
Brischke am 02.12.2004 um 14:31 Uhr (0)
vielleicht liegt es ja daran, dass es im R14 noch gar kein Layout gibt? (oder gab es das dort auch schon?) Ansonsten nehme ich an, dass die im R14 vorhandene ActiveX-Schnittstelle diese Eigenschaften und Methoden noch nicht unterstützt. Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! Autodesk User Group Central Europe AutoLISP-Programmierung für AutoCAD AUGCE Manager Deutschland Da weiß man, wann man s hat! ...
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : vorhandene Bemassungen ändern
mapcar am 02.12.2004 um 19:51 Uhr (0)
Ich hab irgendwie das Gefühl, dass hier mal aufgeräumt werden muss;-) Zunächst mal, Tomi: Lass dich nicht verwirren, einige Antworten waren nicht sehr sachdienlich. Weder geht es hier um Lisp, noch um Layouts... Dein Problem liegt wo ganz anders: Das Programm sieht aus, als sei es für eine noch ältere AutoCAD-Version geschrieben. Da war es tatsächlich so, dass man nur eine Variable wie DIMDEC ändern musste. Ein anschliessendes Update der Bemassungen hat diese dann verändert, es sei denn, es war ein Bemsti ...
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : vorhandene Bemassungen ändern
CAD-Huebner am 02.12.2004 um 23:15 Uhr (0)
Ich kanns nur in Lisp, das hier sollte wohl auch mit AutoCAD 14 laufen da ich vollständige auf VisalLisp Funktionen verzichtet habe. Dafür ist es auch etwas länger geworden und nicht so elegant wie der Code von CADmium. Code: ; Hauptprogrammm ; Beispielprogramm zum Einsatz der Bemaßungsüberschreibungen ; die in EEDs gespeichert sind. (DEFUN C:BEMU ( / ss cnt) (PROMPT
Übersteuerung von Bemaßungsvariablen hier DIMDEC = 3 ) (PROMPT
Bemaßungen wählen: ) (SETQ ss (SSGET (LIST (CONS 0 DIMENSION ))) ...
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : Delphi
jörgT am 03.12.2004 um 11:54 Uhr (0)
Vielen Dank für die Antworten, nach anfänglichen Schwierigkeiten (der Typ variant und statische Arrays passten nicht zusammen) konnte ich nun erste Linien und Kreise in Acad erstellen (siehe Programmzeilen). Der Verweis auf die Seite von Tony Tanzillo war sehr hilfreich. procedure TForm1.Button3Click(Sender: TObject); var StartP1, EndP1, MoSpace, NewLine: Variant; begin StartP1 := VarArrayCreate([0,2], varDouble); EndP1 := VarArrayCreate([0,2], varDouble); StartP1[0] := 0; StartP1[1] := 0; Start ...
|
| In das Form Autocad VBA wechseln |