phat1998 8 Báo cáo bài đăng Đã đăng Tháng 11 9, 2020 Vào lúc 2/5/2019 tại 10:05, gia_bach đã nói: Thiếu file AcCoreMgd.dll, "Add reference" thêm là được. chào anh, đây là lisp chia đường thành n điểm để lấy về tọa độ điểm và góc tạo bởi đường pháp tuyến tại mỗi điểm với trục 0x. xuất ra file text với cú pháp mỗi dòng là ( G01 X_ Y_ A_) anh có thể convert từ lisp sang c# được ko ạ phat.LSP Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
gia_bach 1553 Báo cáo bài đăng Đã đăng Tháng 11 9, 2020 25 phút trước, phat1998 đã nói: chào anh, đây là lisp chia đường thành n điểm để lấy về tọa độ điểm và góc tạo bởi đường pháp tuyến tại mỗi điểm với trục 0x. xuất ra file text với cú pháp mỗi dòng là ( G01 X_ Y_ A_) anh có thể convert từ lisp sang c# được ko ạ phat.LSP Ở bên topic Lisp, bác Huy đã làm tốt công việc này, cớ gì bạn phải convert qua C#? có vẻ như cái bạn cần là C++ (ARX), để lập trình cho máy CNC. Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
phat1998 8 Báo cáo bài đăng Đã đăng Tháng 11 9, 2020 7 phút trước, gia_bach đã nói: Ở bên topic Lisp, bác Huy đã làm tốt công việc này, cớ gì bạn phải convert qua C#? có vẻ như cái bạn cần là C++ (ARX), để lập trình cho máy CNC. đúng là em đã được các anh giúp để giải bài toán bằng lisp nhưng kiểu thầy em nói lisp sẽ không linh hoạt. muốn em viết bằng c++ tạo file ARX em làm đồ án tay máy phun sơn mũ bảo hiểm. bài toán trên là bài toán gia công ( 1 phần của đồ án). có lẽ lí do là lisp chỉ ra được file text còn c++ có thể ra file .nc . file là file gcode để đe đi gia công Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Doan Nguyen Van 491 Báo cáo bài đăng Đã đăng Tháng 11 9, 2020 5 phút trước, phat1998 đã nói: đúng là em đã được các anh giúp để giải bài toán bằng lisp nhưng kiểu thầy em nói lisp sẽ không linh hoạt. muốn em viết bằng c++ tạo file ARX em làm đồ án tay máy phun sơn mũ bảo hiểm. bài toán trên là bài toán gia công ( 1 phần của đồ án). có lẽ lí do là lisp chỉ ra được file text còn c++ có thể ra file .nc . file là file gcode để đe đi gia công Nếu bạn đã đi học thầy thì mình nghĩ có khó khăn gì bạn nên hỏi trực tiếp thầy bạn để có thể tự tay giải quyết công việc hơn là nhờ người khác hoàn thành hộ 1 Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
phat1998 8 Báo cáo bài đăng Đã đăng Tháng 11 9, 2020 5 phút trước, Doan Nguyen Van đã nói: Nếu bạn đã đi học thầy thì mình nghĩ có khó khăn gì bạn nên hỏi trực tiếp thầy bạn để có thể tự tay giải quyết công việc hơn là nhờ người khác hoàn thành hộ vang a! Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
gia_bach 1553 Báo cáo bài đăng Đã đăng Tháng 11 9, 2020 18 phút trước, phat1998 đã nói: đúng là em đã được các anh giúp để giải bài toán bằng lisp nhưng kiểu thầy em nói lisp sẽ không linh hoạt. muốn em viết bằng c++ tạo file ARX .......... C# và C++ khác nhau nhé. Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
phat1998 8 Báo cáo bài đăng Đã đăng Tháng 11 9, 2020 Vừa xong, gia_bach đã nói: C# và C++ khác nhau nhé. vâng em biết. mấy nay em đang tìm hiểu c# , visual studio objectarx . nhưng kiểu em ko biết mình có đang học cái để xử lí cái bài toán kia không Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
alisp 73 Báo cáo bài đăng Đã đăng Tháng 11 9, 2020 12 phút trước, phat1998 đã nói: vâng em biết. mấy nay em đang tìm hiểu c# , visual studio objectarx . nhưng kiểu em ko biết mình có đang học cái để xử lí cái bài toán kia không Bác phat98 thật phiền, hồi trc có hỏi vụ c++ thì bác nói chỉ cần ra file txt có toạ độ góc là ok, cánh tay robot sẽ đọc file này rồi thi hành. Giờ thì thầy bắt viết c++ nên xin đổi. Nói thật chứ ở CV này kiếm người biết c++ đỏ con mắt không ra, chắc bác phải đi forum chuyên c++ nhờ thôi. Mà bác học ngành gì mà ông thầy chơi khó quá vậy? Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
phat1998 8 Báo cáo bài đăng Đã đăng Tháng 11 9, 2020 thật sự hỏi các anh em cũng ngại lắm vì biết làm phiền các anh. thầy bảo tốt nhất là viết bằng c++, còn lisp là phương án dự phòng . còn robot không đọc được file text đâu anh ạ. robot chỉ đọc được file .nc lisp cho ra file text thì sẽ thêm 1 bước nữa là lấy dữ liệu file text cho sang file .nc còn c++ nó sẽ ra được file .nc ( đại loại là như vậy) còn chuyên ngành thì em học cơ điện tử anh ạ, trước giờ học nhiều về cơ khí vẽ vời tính toán các kiểu phải đến 80% có biết gì về C++ đâu anh, còn thầy thì thấy có lisp rồi lại muốn có C++ kiểu càng mở rộng càng tốt ấy ạ 1 1 Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
alisp 73 Báo cáo bài đăng Đã đăng Tháng 11 9, 2020 22 phút trước, phat1998 đã nói: thật sự hỏi các anh em cũng ngại lắm vì biết làm phiền các anh. thầy bảo tốt nhất là viết bằng c++, còn lisp là phương án dự phòng . còn robot không đọc được file text đâu anh ạ. robot chỉ đọc được file .nc lisp cho ra file text thì sẽ thêm 1 bước nữa là lấy dữ liệu file text cho sang file .nc còn c++ nó sẽ ra được file .nc ( đại loại là như vậy) còn chuyên ngành thì em học cơ điện tử anh ạ, trước giờ học nhiều về cơ khí vẽ vời tính toán các kiểu phải đến 80% có biết gì về C++ đâu anh, còn thầy thì thấy có lisp rồi lại muốn có C++ kiểu càng mở rộng càng tốt ấy ạ Muốn có arx thì bắt buộc phải biết c++ thôi, chứ c# không ăn thua. Mà c++ ngay đến dân chuyên ngành CNTT còn lè lưỡi chứ huống gì dân tay ngang như bạn, chỉ có cách bạn nhờ dân chuyên viết dùm thôi. Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
phat1998 8 Báo cáo bài đăng Đã đăng Tháng 11 9, 2020 1 phút trước, alisp đã nói: Muốn có arx thì bắt buộc phải biết c++ thôi, chứ c# không ăn thua. Mà c++ ngay đến dân chuyên ngành CNTT còn lè lưỡi chứ huống gì dân tay ngang như bạn, chỉ có cách bạn nhờ dân chuyên viết dùm thôi. có lẽ em dừng lại ở hiểu lisp thôi anh ạ =)) Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Nguyên Khải 0 Báo cáo bài đăng Đã đăng Tháng 4 6, 2021 Chào cả nhà, em mới tìm hiểu về C# với autocad. Làm thử cái Addin cho Autocad 2020, nhưng khi debug sử dụng netload để load file .dll thì gõ lệnh lại không ra. Nhờ các anh chỉ điểm giúp em với ạ. (Visual studio 2017, đã add các file thư viện AcCoreMgd.dll, AcDbMgd.dll, AcMgd.dll và sử dụng template flugin của autocad 2020) using System; using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Geometry; using Autodesk.AutoCAD.EditorInput; using AcAp = Autodesk.AutoCAD.ApplicationServices.Application; [assembly: ExtensionApplication(typeof(Autocad_2020_plugin_001.MyPlugin))] namespace Autocad_2020_plugin_001 { public class MyPlugin { [CommandMethod("cmdhello")] public void cmdFirstCommand() { var doc = AcAp.DocumentManager.MdiActiveDocument; //var db = doc.Database; var ed = doc.Editor; ed.WriteMessage("\n Hello World"); } } } Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
gia_bach 1553 Báo cáo bài đăng Đã đăng Tháng 4 6, 2021 1 giờ} trướ}c, Nguyên Khải đã nói: Chào cả nhà, em mới tìm hiểu về C# với autocad. Làm thử cái Addin cho Autocad 2020, nhưng khi debug sử dụng netload để load file .dll thì gõ lệnh lại không ra. Nhờ các anh chỉ điểm giúp em với ạ. (Visual studio 2017, đã add các file thư viện AcCoreMgd.dll, AcDbMgd.dll, AcMgd.dll và sử dụng template flugin của autocad 2020) using System; using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Geometry; using Autodesk.AutoCAD.EditorInput; using AcAp = Autodesk.AutoCAD.ApplicationServices.Application; [assembly: ExtensionApplication(typeof(Autocad_2020_plugin_001.MyPlugin))] namespace Autocad_2020_plugin_001 { public class MyPlugin { [CommandMethod("cmdhello")] public void cmdFirstCommand() { var doc = AcAp.DocumentManager.MdiActiveDocument; //var db = doc.Database; var ed = doc.Editor; ed.WriteMessage("\n Hello World"); } } } Code không thấy sai chỗ nào! bạn có thể upload project ? Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Nguyên Khải 0 Báo cáo bài đăng Đã đăng Tháng 4 6, 2021 Đây là project em làm: Autocad 2020 plugin-001.rar Anh gia_bach xem giúp em. Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
gia_bach 1553 Báo cáo bài đăng Đã đăng Tháng 4 6, 2021 Tạm thời bỏ qua 2 dòng sau: // [assembly: CommandClass(typeof(Autocad_2020_plugin_001.MyCommands))] // [assembly: ExtensionApplication(typeof(Autocad_2020_plugin_001.MyPlugin))] là chạy được. 1 Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Nguyên Khải 0 Báo cáo bài đăng Đã đăng Tháng 4 6, 2021 50 phút trước, gia_bach đã nói: Tạm thời bỏ qua 2 dòng sau: // [assembly: CommandClass(typeof(Autocad_2020_plugin_001.MyCommands))] // [assembly: ExtensionApplication(typeof(Autocad_2020_plugin_001.MyPlugin))] là chạy được. Cám ơn anh gia_bach, em đã làm được rồi. Em không hiểu sao họ lại để chúng trong file template flugin trong khi chúng lại làm chương trình không chạy được. Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
cuongtk2 356 Báo cáo bài đăng Đã đăng Tháng 4 7, 2021 [assembly: CommandClass(typeof(namespase1.MyClass))] Khai báo MyClass thuộc namespace1 là class chứa lệnh Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Nguyên Khải 0 Báo cáo bài đăng Đã đăng Tháng 4 9, 2021 Vào lúc 7/4/2021 tại 10:53, cuongtk2 đã nói: [assembly: CommandClass(typeof(namespase1.MyClass))] Khai báo MyClass thuộc namespace1 là class chứa lệnh Anh cuongtk2 có thể sửa lại project của em đã post bên trên mà không bỏ tạm 2 dòng lệnh [assembly:...] để chương trình vẫn chạy và nhận lệnh. Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
cuongtk2 356 Báo cáo bài đăng Đã đăng Tháng 4 9, 2021 [assembly: ExtensionApplication(typeof(Autocad_2020_plugin_001.MyPlugin))] namespace Autocad_2020_plugin_001 { public class MyPlugin { [CommandMethod("cmdhello")] public void cmdFirstCommand() { var doc = AcAp.DocumentManager.MdiActiveDocument; //var db = doc.Database; var ed = doc.Editor; ed.WriteMessage("\n Hello World"); } } } Bạn có thấy attribute [CommandMethod("cmdhello")] được khái báo ở class MyPlugin. Mà class này lại không được khai báo là class chứa lệnh, mà được khai báo là ExtensionApplication (tiện ích mở rộng). Nếu như bạn tạo mới Class1 , muốn build được ra lệnh trong đó, bạn phải khai báo [assembly: CommandClass(typeof(Autocad_2020_plugin_001.Class1))] 1 Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Nguyên Khải 0 Báo cáo bài đăng Đã đăng Tháng 4 9, 2021 6 giờ trước, cuongtk2 đã nói: [assembly: ExtensionApplication(typeof(Autocad_2020_plugin_001.MyPlugin))] namespace Autocad_2020_plugin_001 { public class MyPlugin { [CommandMethod("cmdhello")] public void cmdFirstCommand() { var doc = AcAp.DocumentManager.MdiActiveDocument; //var db = doc.Database; var ed = doc.Editor; ed.WriteMessage("\n Hello World"); } } } Bạn có thấy attribute [CommandMethod("cmdhello")] được khái báo ở class MyPlugin. Mà class này lại không được khai báo là class chứa lệnh, mà được khai báo là ExtensionApplication (tiện ích mở rộng). Nếu như bạn tạo mới Class1 , muốn build được ra lệnh trong đó, bạn phải khai báo [assembly: CommandClass(typeof(Autocad_2020_plugin_001.Class1))] Hi, cám ơn anh cuongtk2 rất nhiều, em đã làm được ^_^ Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Nguyên Khải 0 Báo cáo bài đăng Đã đăng Tháng 4 22, 2021 Cho em hỏi: Có cách nào tạo ra hình chữ nhật thông qua 2 điểm click trong bản vẽ autocad (2 điểm này là trung điểm của 2 cạnh đối diện của hình chữ nhật) không ạ? (C#) Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Nguyên Khải 0 Báo cáo bài đăng Đã đăng Tháng 4 24, 2021 Vào lúc 22/4/2021 tại 16:58, Nguyên Khải đã nói: Cho em hỏi: Có cách nào tạo ra hình chữ nhật thông qua 2 điểm click trong bản vẽ autocad (2 điểm này là trung điểm của 2 cạnh đối diện của hình chữ nhật) không ạ? (C#) Cám ơn các anh, vấn đề này em đã tìm ra cách giải quyết (hơi dài dòng ^_^!) như sau: - Tìm tọa độ các đỉnh của hình chữ nhật dựa vào 2 điểm được click là trung điểm 2 cạnh đối diện của 1 hình chữ nhật - Sử dụng Polyline(4) để tạo hình chữ nhật double x1 = pt1.X; double y1 = pt1.Y; double x2 = pt2.X; double y2 = pt2.Y; double anp = Math.Atan((y2 - y1) / (x2 - x1)); var pline = new Polyline(4); pline.AddVertexAt(0, new Point2d(x1 + 5.0 * Math.Sin(anp), y1 - 5.0 * Math.Cos(anp)), 0.0, 0.0, 0.0); pline.AddVertexAt(1, new Point2d(x2 + 5.0 * Math.Sin(anp), y2 - 5.0 * Math.Cos(anp)), 0.0, 0.0, 0.0); pline.AddVertexAt(2, new Point2d(x2 - 5.0 * Math.Sin(anp), y2 + 5.0 * Math.Cos(anp)), 0.0, 0.0, 0.0); pline.AddVertexAt(3, new Point2d(x1 - 5.0 * Math.Sin(anp), y1 + 5.0 * Math.Cos(anp)), 0.0, 0.0, 0.0); pline.Closed = true; Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Nguyên Khải 0 Báo cáo bài đăng Đã đăng Tháng 4 24, 2021 Mọi người có code C# về command extend nối dài 1 đường thẳng đến 1 đường thẳng khác không ạ? Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
gia_bach 1553 Báo cáo bài đăng Đã đăng Tháng 4 24, 2021 Hỏi về giải thuật chắc sẽ có nhiều người người trả lời hơn! Về cơ bản v/đề của bạn là tìm giao của 2 line: sử dụng hàm Intersectwith Line l1 = tr.GetObject(per.ObjectId, OpenMode.ForRead) as Line; per = ed.GetEntity("Line2"); Line l2 = tr.GetObject(per.ObjectId, OpenMode.ForRead) as Line; Point3dCollection ptcol = new Point3dCollection(); l1.IntersectWith(l2, Intersect.ExtendBoth,ptcol, IntPtr.Zero, IntPtr.Zero); sau đó thay đổi điểm đầu mút gần giao điểm : line.Startpoint = giao điểm or line.Endpoint = giao diểm 1 Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Nguyên Khải 0 Báo cáo bài đăng Đã đăng Tháng 4 25, 2021 Cho em hỏi: Có những giải pháp nào cho việc tạo ra 1 đối tượng phức tạp hơn những đối tượng hình học cơ bản (như block chẳng hạn) bằng C# không ạ? Ưu nhược của các giải pháp này như nào ạ? Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác