pop3k Posted April 10, 2020 Report Posted April 10, 2020 (edited) Witam, chciałbym za pomocą aplikacji zewnętrznej w C# i xaml po kliknięciu w button narysować linię/okrąg w aktywnym oknie i rysunku ZWCad (bez uruchamiania go poprzez netload). Widziałem kiedyś taką apkę w AutoCadzie. Jest to w ogóle możliwe w Zwcad? Edited April 10, 2020 by pop3k Quote
kruszynski Posted April 10, 2020 Report Posted April 10, 2020 Tak na szybko, to jeśli bez netload, to chyba pozostaje COM, ale czy przez C# można korzystać z COM? nigdy tego nie robiłem, ale myślę, że tak powinno być to możliwe. Quote
perlon Posted April 12, 2020 Report Posted April 12, 2020 (edited) Na podstawie Kean Walmsley blog using System; using System.Windows.Forms; using System.Runtime.InteropServices; using ZWCAD; namespace CadExecute { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { const string progID = "ZWCAD.application"; IZcadApplication zcApp = null; try { zcApp = (IZcadApplication)Marshal.GetActiveObject(progID); } catch { try { Type acType = Type.GetTypeFromProgID(progID); zcApp = (IZcadApplication)Activator.CreateInstance(acType, true); } catch { MessageBox.Show("Cannot create object of type \"" + progID + "\""); } } if (zcApp != null) { zcApp.Visible = true; zcApp.ActiveDocument.SendCommand("_CIRCLE 0,0 10 "); } } } } Przestrzeń nazw ZWCAD trzeba dodać przez referencję COM -> OLE Automation i ZWCAD 2020 Type Library Edited April 12, 2020 by perlon dmatusz3 and kruszynski 2 Quote
pop3k Posted April 14, 2020 Author Report Posted April 14, 2020 O, dzięki za przykład. O to chodziło! 😄 Quote
pop3k Posted April 14, 2020 Author Report Posted April 14, 2020 Jednak napotkałem problemy. Zaczynając od tego, że nie mam do wyboru biblioteki ZWCAD 2020 Type Library, tylko ZWCAD Type Library Nie można zdefiniować using Zwcad -> tylko using Zwsoft.Zwcad Te wszystkie drobne zmiany nie dają mi dostępu do klasy IZcadApplication Proszę również o wyrozumiałość za mój pierwszy program 😄 Quote
perlon Posted April 14, 2020 Report Posted April 14, 2020 Prawdę mówiąc nie wiem czy po instalacji ZwCAD'a czy pakietu SDK ale u mnie na liście jak widać na zrzucie taka biblioteka typów jest. Plik to C:\Program Files\Common Files\ZWSoft Shared\zwcad18.tlb W VisualStudio można ręcznie dodać do listy bibliotekę typów przyciskiem Browse. Może coś w ten deseń. Ja tego ręcznie u siebie nie robiłem. Było z dobrodziejstwem inwentarza. Quote
kruszynski Posted April 14, 2020 Report Posted April 14, 2020 Testowałem na Visual Studio 2010. Miałem dostepne ZWCAD 2020 Type Library w pliku C:\Program Files\Common Files\ZWSoft Shared\ZWCAD18.tlb i ZWCAD Type Library w plik C:\Program Files\Common Files\ZWSoft Shared\ZWCAD17.tlb Ale przeszedłem na zakładkę Browse, wybrałem plik c:\Program Files\ZWSOFT\ZWCAD 2020\ZWCAD.exe Przestrzeń ZWCAD stała się dostępna. using ZWCAD; Plik C:\Program Files\Common Files\ZWSoft Shared\ZWCAD18.tlb Nie jest częścią SDK. Na innym komputerze gdzie nie mam SDK ten plik jest dostępny, więc pewnie w Pana przypadku wystarczy wskazać plik nie z listy tylko wybierając z dysku. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.