| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: externe Steuerung von AutoCAD (2020 mal gelesen)
|
Survey21 Mitglied
Beiträge: 7 Registriert: 21.10.2011
|
erstellt am: 21. Okt. 2011 13:09 <-- editieren / zitieren --> Unities abgeben:
Hey Leute, ich bin relativ neu im Umgang mit Foren und hoffe diese Art von Beitrag ist noch nicht vorhanden, da ich nichts gefunden habe. Mein Problem ist folgendes: Ich brauche ein CAD Programm ( am liebsten AutoCAD ), welches ich extern ansteuern kann. Die Ansteuerung soll bezwecken, dass ich durch ein anderes (selbstgechriebens Programm in z.B. VB oder C#) Koordinaten absende und diese in AutoCAD direkt als Punkt gezeichnet werden. Ich bin im Umgang mit VBA und VB6 relativ sicher und muss mich nur mal mit VBA für AutoCAD mehr beschäftigen. Eventuell würde ich mich auch in AutoLISP einarbeiten, wenn nötig. Falls also jemand eine Idee für so etwas hat oder gar Erfahrung, wäre ich ihm/ihr sehr verbunden mir bei dieser Anelegenheit zu helfen. Jetzt schon mal vielen Dank Lieben Gruß Survey21 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 ACAD20XX, defun-tools
|
erstellt am: 21. Okt. 2011 15:34 <-- editieren / zitieren --> Unities abgeben: Nur für Survey21
Hallo Survey21, grundsätzlich gibt es verschiedene Möglichkeiten das zu realisieren. Welche die beste ist, kann ich nicht beurteilen. Der Zugriff ist via VB oder .Net (egal ob VB.Net oder C#.Net) möglich. Die einfachste und am wenigsten mit Problemen behaftete Lösung ist, dass du deine Applikation in Acad einbettest. Die Quick&Dirty-Variante ist, dass aus deiner Applikation ein Script geschrieben wird, welches du beim Start von Acad direkt mit aufrufst. Startparameter in der Befehlszeile ist dann (wenn ich mich nicht irre) /b . Soll das ganze in einer existierenden Zeichnung passieren, kannst du auch diese als Startparameter mit übergeben. Du musst also nur eine SCR-Datei schreieben und dann Acad von deiner App aus starten - quick&dirty eben. Das nur mal so als erste Ideen, schreib mal genau, was du vorhast und was bereits existiert. Vielleciht ergibt sich daraus ja schon ein Weg, der sinnvoll ist. Grüße Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen. defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Survey21 Mitglied
Beiträge: 7 Registriert: 21.10.2011
|
erstellt am: 22. Okt. 2011 12:46 <-- editieren / zitieren --> Unities abgeben:
Hallo Holger, vielen Dank schonmal für deine schnelle Antwort. Ich bin angehender Vermessungsingenieur und will wärend ich mit dem Tachymeter meine Punkte aufmesse, sie direkt im CAD zeichnen lassen. Der Datenaustausch zwischen Messgerät und Laptop sollte nicht das Problem sein. Ich bin nur noch nicht richtig mit der ansteuerung von AutoCAD vertraut. Wie gesagt, liegen die VB kenntnisse da, aber nur im bereich von Programmen für Formatierung von Dateien z.B.. Ich glaube nicht, dass es schwer sein wird zu lernen, wie das VBA in AutoCAD funktioniert (oder eventuell AutoLISP) aber ich hab mich halt nur gefragt ob es überhaupt möglich ist sowas zu schreiben. Also dein Vorschlag wäre es AutoCAD einfach zu öffnen und das VBA Programm als Startparameter einzufügen? Das hört sich doch schonmal gut an, aber die Frage ist noch, wie ich die Koordinaten die in Echtzeit auf den Laptop kommen, direkt in VBA einbinde. Die Vorstellung liegt da, dass ich irgend ne art von Containern (Arrays) erstelle, die sich mit jeder Messung um eine Zeile vergrößert, aber wo und wie ist die Verbindung zu dem AutoCAD VBA Programm. Habe da nicht sehr viel Erfahrung was das angeht. Vielleicht hast du da ne bessere idee. Gruß Survey21 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
alf-1234 Mitglied CAD Dienstleister Elektrotechnik
Beiträge: 1444 Registriert: 03.11.2003 i7 980x mit 24GB Arbeitsspeicher 2 x 500 GB SATA Festplatten, GTX 2080, 1 x GTX 970 Autocad, Accurender 5, Bricscad 20, HP 750 C+, 3D Drucker UM2
|
erstellt am: 22. Okt. 2011 13:20 <-- editieren / zitieren --> Unities abgeben: Nur für Survey21
Hallo survey21 Die Idee ist genial. Du überträgst deine Daten vom Tachymeter in Echtzeit nach Autocad, und wenn du dann Feierabend hast, dann hat Autcad deine Längsschniitte und Querprofile gezeichnet. Idee gut, aber wie soll das gehen??? Es muss immer noch einer vor dem Rechner sitzen und die Profile zeichnen oder habe ich da etwas falsch verstanden?? Alf-1234 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Survey21 Mitglied
Beiträge: 7 Registriert: 21.10.2011
|
erstellt am: 22. Okt. 2011 13:28 <-- editieren / zitieren --> Unities abgeben:
Hallo Alf, ich möchte mich zu diesem Zeitpunkt noch nicht weiter zu dem Verfahren äußern, wenn es dich nicht stört. Mir gehts es hier einzig und allein erstmal darum herauszubekommen, wie ich die Koordinaten auf AutoCAD in Echtzeit übertrage. Nimms mir nicht böse. Gruß Survey21 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - ACA 2013 Arcibem System: Windows NT, 2000, XP Internet-Startseite: http://www.archi.de
|
erstellt am: 22. Okt. 2011 14:08 <-- editieren / zitieren --> Unities abgeben: Nur für Survey21
|
Survey21 Mitglied
Beiträge: 7 Registriert: 21.10.2011
|
erstellt am: 22. Okt. 2011 14:41 <-- editieren / zitieren --> Unities abgeben:
Hallo Henning, das ist sehr nett mir den Tipp zu geben, aber da dieses Projekt zu meiner Bachelorarbeit gehört, möchte ich so wenig Kosten wie möglich aufkommen lassen. Dazu kommt, dass ich Spaß am programmieren habe und ich es auch zu meiner Aufabe sehe in der Bachelorarbeit eigenständig zu arbeiten und wenig auf fertige Software zugreifen möchte. Da ich auch noch einiges an weiterer Arbeit nach dem Einlesen der Punkte vorhabe, kommt mir ein selbstgeschriebenes Programm da einfach mehr entgegen. Gehen wir davon aus die Koordinaten sind bereits vom DBX File eines Leica Tachys umgewandelt und in ein GSI Format oder sogar eine ASCII-Datei formatiert. Besser noch, die Formatierung geschieht gleich in dem VBA Programm von AutoCAD wärend jeder Messung. Kann ich von einem VBA Programm direkt auf den Leica Tachy zugreifen? Das wäre die einfachste Methode. Wie ich dann den Punkt aus der Koordinate im CAD zeichne, wird nicht das Problem sein, sondern nur der Übergang von Tachy auf das VBA Programm von AutoCAD. Nochmals vielen Dank für bereits vorhandene Kommentare und noch folgende. Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 ACAD20XX, defun-tools
|
erstellt am: 24. Okt. 2011 08:33 <-- editieren / zitieren --> Unities abgeben: Nur für Survey21
Jetzt wird's klarer. Du hast aus meiner Sicht 2 Programmteile. Teil 1) ... triggert die Aktionen des Tachymeters. Alternativ, kann der auch die Datei triggern, die vom Tachymeter geschrieben wird, und dann die zuletzt in die Datei eingefügte Koordinate ermittelt. Dieser Teil schubst dann Teil 2 an. Teil 2) ... ist der Programmteil, der dann im Acad den Punkt erzeugt. zu Teil 1) Wie du auf den Tachymeter zugreifts kann ich dir nicht sagen. Eine Dateiüberwachung ist kein Problem. Da schreibst du dir einen Dienst, der in bestimmten Zeitabständen schaut, ob sich die Datei geändert hat, falls ja .. auswerten. Hier musst du darauf achten, dass der Zeitabstand so gewählt ist, dass vom Tachymeter immer nur eine Koordinate geschrieben werden kann - oder du musst beachten, dass innerhalb der Zeispanne auch X Koordinaten hinzugefügt wurden. (letzteres würde ich machen). Da der Trigger (Teil-1) außerhalb vom Acad laufen sollte, kannst du vie ActiveX in die laufende Acad-Session springen. (ff ist zwar C#.Net .. ist aber vom Prinzip übertragbar auf VB) const string progID = "AutoCAD.Application.18"; AcadApplication acApp = null; acApp = (AcadApplication)Marshal.GetActiveObject(progID); und dort dann eben mit Teil 2 den Punkt erzeugen. Mehr ist es im grunde nicht. Bei Fragen ... Grüße Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen. defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - ACA 2013 Arcibem System: Windows NT, 2000, XP Internet-Startseite: http://www.archi.de
|
erstellt am: 24. Okt. 2011 10:56 <-- editieren / zitieren --> Unities abgeben: Nur für Survey21
natürlich kannst Du direkt aus AutoCAD heraus auf den Tachy zugreifen. Du hast ja bereits GSI erwähnt, da gibt es doch entsprechende Befehle... Was Du dazu halt brauchst ist die Kommunikation zum Gerät z.B. über serielle Schnittstelle, und dafür gibt es ja entsprechende Lib's (z.B. das MSComm-Steuerelement oder auch direkt mit den kernel32-Funktionen, je nachdem, welche Sprache Du verwenden willst). Grüsse, Henning ------------------ Henning Jesse VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Survey21 Mitglied
Beiträge: 7 Registriert: 21.10.2011
|
erstellt am: 26. Okt. 2011 22:57 <-- editieren / zitieren --> Unities abgeben:
Hey , ich hab nochmal mit meinem Prof gesprochen und die Ansteuerung des Tachys geht einfach über die GeoCOM Schnittstelle. Habe nen Manual dazu wie ich welchen Befehl mit welchem ASCII Code ausführe. Das macht das ganze eigentlich sehr einfach, da ich ja über MS Comm Port in VBA von AutoCAD auf die COM Schnittstelle zugreifen könnte, wenn man jetzt noch das Steuerelement hätte Also mir fehlt dieses Steuerelement beim VBA im AutoCAD. Wie könnte ich das hinzufügen? Also finde es gar nicht in der großen Liste der Steuerelemente. Wenn ich das hätte, ist der Rest machbar denk ich =) Vielleicht hat ja nochmal einer nen Tipp dazu. Gruß Survey21 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ManfredPS Mitglied
Beiträge: 118 Registriert: 23.08.2011 ..
|
erstellt am: 27. Okt. 2011 00:18 <-- editieren / zitieren --> Unities abgeben: Nur für Survey21
|
Survey21 Mitglied
Beiträge: 7 Registriert: 21.10.2011
|
erstellt am: 27. Okt. 2011 07:32 <-- editieren / zitieren --> Unities abgeben:
hey, na genau das ist ja nicht da ^^. Ich hab es auch nochmal zusätzlich runtergeladen und in windows\sytem\ gepackt, wie im Inet beschrieben, aber ich kann es in der Liste der Steuerelemente nicht auswählen. Da müsste ja was mit "Microsoft Communication Control" oder so stehen, aber das ist nicht der Fall. Sonst noch einer ne Idee vielleicht? Danke schonmal im voraus Gruß
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - ACA 2013 Arcibem System: Windows NT, 2000, XP Internet-Startseite: http://www.archi.de
|
erstellt am: 27. Okt. 2011 10:22 <-- editieren / zitieren --> Unities abgeben: Nur für Survey21
|
Goofy007 Mitglied Vermessungstechniker
Beiträge: 578 Registriert: 06.11.2004 Map3D 2018 und Civil3D 2018
|
erstellt am: 28. Okt. 2011 10:24 <-- editieren / zitieren --> Unities abgeben: Nur für Survey21
Hallo Survey21, ich will hier nicht der Spielverderber sein, aber du solltest bei der Auswahl der Programmiersprache beachten, dass Autocad die Unterstüztung für VBA bereits eingestellt hat. Wenn ich jetzt sowas schreiben möchte, würde ich eine Sprache mit Zukunft wählen. Und das scheint, in Verbindung mit Autocad, im Moment alles ausser VBA zu sein. lg Didi
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Survey21 Mitglied
Beiträge: 7 Registriert: 21.10.2011
|
erstellt am: 28. Okt. 2011 12:51 <-- editieren / zitieren --> Unities abgeben:
Hallo Didi, ich will eh in Zukunft mal ne andere Sprache lernen. Was würdest du mir denn empfehlen? Spiele mit dem Gedanken an Java oder C# anzuknüpfen. Hab auch gelesen, dass beide Sprachen sich nicht mehr viel nehmen. Was sagst du / ihr dazu ? Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |