pop3k Opublikowano 10 Kwietnia 2020 Zgłoś Udostępnij Opublikowano 10 Kwietnia 2020 (edytowane) 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? Edytowane 10 Kwietnia 2020 przez pop3k Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 10 Kwietnia 2020 Zgłoś Udostępnij Opublikowano 10 Kwietnia 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. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
perlon Opublikowano 12 Kwietnia 2020 Zgłoś Udostępnij Opublikowano 12 Kwietnia 2020 (edytowane) 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 Edytowane 12 Kwietnia 2020 przez perlon kruszynski i dmatusz3 2 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pop3k Opublikowano 14 Kwietnia 2020 Autor Zgłoś Udostępnij Opublikowano 14 Kwietnia 2020 O, dzięki za przykład. O to chodziło! 😄 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pop3k Opublikowano 14 Kwietnia 2020 Autor Zgłoś Udostępnij Opublikowano 14 Kwietnia 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 😄 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
perlon Opublikowano 14 Kwietnia 2020 Zgłoś Udostępnij Opublikowano 14 Kwietnia 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. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 14 Kwietnia 2020 Zgłoś Udostępnij Opublikowano 14 Kwietnia 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. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.