Detailing 281 Báo cáo bài đăng Đã đăng Tháng 4 2, 2011 Cảm ơn anh! đúng là do lỗi ở khai báo reference rồi. Nhưng ko bít xử lý thế nào nhỉ! Em đang dùng win7 64bit, cad2007, VS2008. Em đã thử xóa hết lệnh chỉ còn chừa lại dòng: Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument Thì bị báo lỗi Could not load file or assembly 'acmgd, Version=17.0.54.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format. Có phải là do dùng cad2007 cũ quá ko phù hợp với VS2008 nên file acmgd load vào bị lỗi ko nhỉ. còn cái tools DotNetARXToolsForVS2008 em down về cài đặt xong rồi chẳng bít mở hay sử dụng thế nào cả.Mong a hướng dẫn dùm 1 xí. Em cũng mới bít VB được hơn nữa năm còn VB.net thì được vài tuần nên nhìu cái cơ bản vẫn ko nắm bạn thử chuyển properties copy Local của acmgd và acdbmgd thènh true thử coi còn lỗi ko. cái này có thể là do chạy CAD32 bit trên nền win 64 bit nên ko load dc dll 32 bit 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
anhcos 196 Báo cáo bài đăng Đã đăng Tháng 4 2, 2011 Hề hề! Em lại làm phiền các Bác chút. Em gạp sự cố với hatch với code sau Dim OuterLoop(0 To 0) As Object OuterLoop(0) = plineObj Add_plHatch = AcadApp.ActiveDocument.ModelSpace.AddHatch(0, hName, True) Add_plHatch.AppendOuterLoop(OuterLoop) bị lỗi "Invalid object array" thật bó tay với cái .net này. Lỗi này rất khó hiểu, mà không có cách giải quyết. Bạn dùng cách sau xem sao: Chèn thư viện đối tượng của CAD mà mình đã trích xuất qua dạng dll ở đây, bao gồm AutoCAD.DLL và AXDBLib.dll. 2 thư viện này copy vào cùng chỗ với chương trình đã biên dịch. Lúc đó trong chương trình mình sẽ dùng code giống như chèn thư viện chuẩn của CAD vậy. Như VD trên sẽ viết lại, theo kiểu thực thi giao diện: Imports AutoCAD Imports AXDBLib ... ... Dim AcadApp as IAcadApplication ... Dim plineObj as IAcadPolyline ... Dim OuterLoop(0 To 0) As IAcadEntity OuterLoop(0) = plineObj Dim Add_plHatch as IAcadHatch = AcadApp.ActiveDocument.ModelSpace.AddHatch(0, hName, True) Add_plHatch.AppendOuterLoop(OuterLoop) 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
phamngoctukts 714 Báo cáo bài đăng Đã đăng Tháng 4 2, 2011 Lỗi này rất khó hiểu, mà không có cách giải quyết. Bạn dùng cách sau xem sao: Chèn thư viện đối tượng của CAD mà mình đã trích xuất qua dạng dll ở đây, bao gồm AutoCAD.DLL và AXDBLib.dll. 2 thư viện này copy vào cùng chỗ với chương trình đã biên dịch. Lúc đó trong chương trình mình sẽ dùng code giống như chèn thư viện chuẩn của CAD vậy. Như VD trên sẽ viết lại, theo kiểu thực thi giao diện: Imports AutoCAD Imports AXDBLib ... ... Dim AcadApp as IAcadApplication ... Dim plineObj as IAcadPolyline ... Dim OuterLoop(0 To 0) As IAcadEntity OuterLoop(0) = plineObj Dim Add_plHatch as IAcadHatch = AcadApp.ActiveDocument.ModelSpace.AddHatch(0, hName, True) Add_plHatch.AppendOuterLoop(OuterLoop) Chào Bác! Em imports 2 file của bác vào thì được nhưng khi chạy thì lại báo lỗi không nhận file. Mà cái này Bác viết trên nền net1.0 à. Lúc Add vào nó báo phải thay đổi version của net framework. 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
anhcos 196 Báo cáo bài đăng Đã đăng Tháng 4 2, 2011 Chào Bác! Em imports 2 file của bác vào thì được nhưng khi chạy thì lại báo lỗi không nhận file. Mà cái này Bác viết trên nền net1.0 à. Lúc Add vào nó báo phải thay đổi version của net framework. 2 thư viện này là trích xuất từ 2 thư viện chuẩn của AutoCAD: - AutoCAD.dll trích xuất ra từ AutoCAD 17 Type Library - AXDBLib.dll trích xuất ra từ AutoCAD/ObjectDBX 17 Common Type Library Để trích xuất, bạn dùng command line của windows, tìm đến file tlbimp.exe để xuất thư viện TLB --> DLL. Bạn có thể dùng .NET reflector để lấy mã nguồn dạng VB/C# từ thư viện dll kia luôn. Từ đó về sau có thể dùng các thư viện mã nguồn chèn trực tiếp vào chương trình mà không cần add bất kỳ thư viện nào nữ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
Detailing 281 Báo cáo bài đăng Đã đăng Tháng 4 2, 2011 2 thư viện này là trích xuất từ 2 thư viện chuẩn của AutoCAD: - AutoCAD.dll trích xuất ra từ AutoCAD 17 Type Library - AXDBLib.dll trích xuất ra từ AutoCAD/ObjectDBX 17 Common Type Library Để trích xuất, bạn dùng command line của windows, tìm đến file tlbimp.exe để xuất thư viện TLB --> DLL. Bạn có thể dùng .NET reflector để lấy mã nguồn dạng VB/C# từ thư viện dll kia luôn. Từ đó về sau có thể dùng các thư viện mã nguồn chèn trực tiếp vào chương trình mà không cần add bất kỳ thư viện nào nữa. Bạn có thể hướng dẫn cách lấy mã nguồn của file dll trên không hoặc đã có sẵn cũng dc để chèn vào chương trình? Thanks bạn nhiều. 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
phuonghuynhduy 4 Báo cáo bài đăng Đã đăng Tháng 4 2, 2011 Hi Anhcos! Mình thấy bạn cũng rất khá về Auocad.net. Mình muốn làm quen để học hỏi thêm nếu tiện cho mình email với. Email của mình phuonghuynhduy80@gmail.com. Thân chào. Mình cũng đang nghiên cứu Autocad.net và đang muốn reference *Arx vào *.Dll không biết có được không? Mình đang định Add các Class do các phần mềm khác chứa trong *.Arx vào project của mình, nhưng chưa có cách nào. Bạn biết hướng dẫn mình vớ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
phamngoctukts 714 Báo cáo bài đăng Đã đăng Tháng 4 2, 2011 2 thư viện này là trích xuất từ 2 thư viện chuẩn của AutoCAD: - AutoCAD.dll trích xuất ra từ AutoCAD 17 Type Library - AXDBLib.dll trích xuất ra từ AutoCAD/ObjectDBX 17 Common Type Library Để trích xuất, bạn dùng command line của windows, tìm đến file tlbimp.exe để xuất thư viện TLB --> DLL. Bạn có thể dùng .NET reflector để lấy mã nguồn dạng VB/C# từ thư viện dll kia luôn. Từ đó về sau có thể dùng các thư viện mã nguồn chèn trực tiếp vào chương trình mà không cần add bất kỳ thư viện nào nữa. Trời ơi! Bác nói em mới search trên google ra cả đống. không ngờ cái .net vày dịch ngược dễ vậy. Có khi phải quay về VB6 thôi. Hí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
anhcos 196 Báo cáo bài đăng Đã đăng Tháng 4 2, 2011 Cách sử dụng tlbimp.ex: Đây là tiện tích của VS, nằm đâu đó trong thư mục cài đặt của microsoft visual studio, search là ra ngay thôi. Cách sử dụng từ ms: http://msdn.microsoft.com/en-us/library/tt0cf3sx%28VS.80%29.aspx Sử dụng trực tiếp từ Command Line của windows. .NET reflector là công cụ dịch ngược file .NET, hỗ trợ dịch ngược .exe, .dll. Bản này tìm và tra cứu trên google có rất nhiều. Khi cài đặt cần thêm addon FileDisassembler mới dịch ngược đượ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
anhcos 196 Báo cáo bài đăng Đã đăng Tháng 4 2, 2011 Trời ơi! Bác nói em mới search trên google ra cả đống. không ngờ cái .net vày dịch ngược dễ vậy. Có khi phải quay về VB6 thôi. Híc Vì thế trong visual studio đã có sẵn công cụ mã hóa code rồi là Dotfuscate, Vô google mà tìm. 2 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
phamngoctukts 714 Báo cáo bài đăng Đã đăng Tháng 4 3, 2011 2 thư viện này là trích xuất từ 2 thư viện chuẩn của AutoCAD: - AutoCAD.dll trích xuất ra từ AutoCAD 17 Type Library - AXDBLib.dll trích xuất ra từ AutoCAD/ObjectDBX 17 Common Type Library Để trích xuất, bạn dùng command line của windows, tìm đến file tlbimp.exe để xuất thư viện TLB --> DLL. Bạn có thể dùng .NET reflector để lấy mã nguồn dạng VB/C# từ thư viện dll kia luôn. Từ đó về sau có thể dùng các thư viện mã nguồn chèn trực tiếp vào chương trình mà không cần add bất kỳ thư viện nào nữa. Bác có thể hướng dẫn em cách lấy code của thư viện cho vào code cua mình được không. Cái này em chưa biết làm thế 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
phamngoctukts 714 Báo cáo bài đăng Đã đăng Tháng 4 6, 2011 Bác có thể hướng dẫn em cách lấy code của thư viện cho vào code cua mình được không. Cái này em chưa biết làm thế nào? Đã fix được rồi các Bá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
zoro107 10 Báo cáo bài đăng Đã đăng Tháng 9 28, 2011 cảm ơn bác anhcos nhie72u nhé! bác còn bài nào nữa thì post lên cho mọi người tham khảo với. Mình tin là mọi người đang theo bac hằng ngày đấy :D. 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
Gà mờ 0 Báo cáo bài đăng Đã đăng Tháng 10 25, 2011 Các bác ơi cho em hỏi sao hàm RemoveItems & AddItems của SelectionSet chạy toàn báo lỗi vậy ================================================= Invalid argument Items in RemoveItems ================================================= 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
anhcos 196 Báo cáo bài đăng Đã đăng Tháng 10 25, 2011 Các bác ơi cho em hỏi sao hàm RemoveItems & AddItems của SelectionSet chạy toàn báo lỗi vậy ================================================= Invalid argument Items in RemoveItems ================================================= Một số Property và Method không dùng theo kiểu later binding được, mình chẳng biết tại sao, mặc dù cú pháp không sai tí nào. Trường hợp này giải quyết bằng cách lọc ngay từ đầu cho phần chọn đối tượ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
xanhnhnn280683 1 Báo cáo bài đăng Đã đăng Tháng 11 17, 2011 Hiện tại có nhiều người muốn tìm hiểu về lập trình trên nền tảng .NET với AutoCAD. Với một số kinh nghiệm tích lũy được về lập trình với AutoCAD, tôi mạn phép viết phần hướng dẫn này. Hy vọng là sẽ có nhiều điều bổ ích cho mọi người. Một số ghi chú: Trong các phần hướng dẫn, chỉ chú trọng đến cách thức giao tiếp với CAD mà không bàn về việc sử dụng và thao tác các chương trình lập trình. Có thể sử dụng VB.NET hoặc C#, nhưng các hướng dẫn sau này sẽ viết bằng code VB.NET. Chương trình tạo ra sẽ chạy độc lập với AutoCAD, không sử dụng tham chiếu đến thư viện đối tượng của AutoCAD mà sử dụng kỹ thuật liên kết - muộn. So với phương pháp chèn thư viện tham chiếu thì nó có ưu điểm riêng và thuận lợi riêng. - Ưu điểm: giao tiếp với phần lớn các phiên bản của CAD - Nhược điểm: Không có sẵn các lớp, hàm và các hằng số AutoCAD, người dùng phải tự định nghĩa, tự ghi nhớ lấy tên. Một số chức năng không sử dụng tường minh được. I. Tạo liên kết với AutoCAD Vì AutoCAD là đối tượng chính nhắm tới và thường xuyên thao tác đến nó, cho nên cần khai báo một biến đại diện cho chương trình AutoCAD (tương tự như AcadApplication trong VBA) để dễ dàng thao tác như sau: 'Biến toàn cục chỉ đến chương trình AutoCAD chạy sau cùng nhất, Public Acad As Object Để làm việc với biến này, cần tạo ra sự liên kết chương trình AutoCAD đến nó. Tại thời điểm chạy, các dữ liệu của chương trình AutoCAd sẽ được ép sang biến Acad, với biến này ta có thể truy xuất đến các thuộc tính và hàm của nó, phương pháp này gọi là pp liên kết muộn. Trước hết định nghĩa cách thức liên kết như sau: Enum acAcadLink As Integer 'Chỉ liên kết đến chương trình AutoCAD đang chạy Link = 1 'Tạo một phiên chạy mới của chương trình AutoCAD NewSession = 2 'Liên kết đến chương trình AutoCAD, nếu không được thì chạy một bản mới LinkNewSession = 3 End Enum và đây là hàm dùng để liên kết với một biến bất kỳ chứa đựng thông tin của chương trình AutoCAD ''' <summary> ''' Hàm liên kết với AutoCAD, đồng thời hiển thị thông báo lỗi (nếu có) ''' </summary> ''' <param name="acad_app">Trả về biến liên kết đại diện cho chương trình AutoCAD</param> ''' <param name="op">Tùy chọn liên kết</param> ''' <param name="Visible">Có hiển thị chương trình AutoCAD hay không</param> ''' <returns>True nếu thành công, ngược lại là false</returns> ''' <remarks>Hàm này có thêm hàm ghi đè</remarks> Public Function ACADLink(ByRef acad_app As Object, Optional ByVal op As acAcadLink = acAcadLink.Link, Optional ByVal Visible As Boolean = True) As Boolean Select Case op Case acAcadLink.Link Try acad_app = GetObject(, "AutoCAD.Application") Catch If MsgBox("AutoCAD chưa chạy, khởi động nó ?", MsgBoxStyle.YesNo, "Chú ý") = MsgBoxResult.Yes Then Try acad_app = CreateObject("AutoCAD.Application") Catch MsgBox("Có lỗi khi khởi động AutoCAD!", MsgBoxStyle.Information, "Chú ý") Return False End Try Else Return False End If End Try Case acAcadLink.LinkNewSession Try acad_app = GetObject(, "AutoCAD.Application") Catch Try acad_app = CreateObject("AutoCAD.Application") Catch MsgBox("Có lỗi khi khởi động AutoCAD!", MsgBoxStyle.Information, "Chú ý") Return False End Try End Try Case acAcadLink.NewSession Try acad_app = CreateObject("AutoCAD.Application") Catch MsgBox("Có lỗi khi khởi động AutoCAD!", MsgBoxStyle.Information, "Chú ý") Return False End Try End Select Try Dim acAcadState = acad_app.GetAcadState If Not acAcadState.IsQuiescent Then MsgBox("AutoCAD chưa sẵn sàng. Hãy đóng hộp thoại đang mở hoặc thoát khỏi lệnh đang thực hiện", MsgBoxStyle.Critical, "Chú ý") Else acad_app.Visible = Visible Return True End If Catch Return False End Try End Function Trong trường hợp muốn liên kết với biến Acad đã khai báo ở trên, ta dùng hàm sau ''' <summary> ''' Hàm liên kết với AutoCAD và gán vào biến Acad, đồng thời hiển thị thông báo lỗi (nếu có) ''' </summary> ''' <param name="op">Tùy chọn liên kết</param> ''' <param name="Visible">Có hiển thị chương trình AutoCAD hay không</param> ''' <returns>True nếu thành công, ngược lại là false</returns> ''' <remarks>Hàm này có thêm hàm ghi đè</remarks> Public Function ACADLink(Optional ByVal op As acAcadLink = acAcadLink.Link, Optional ByVal Visible As Boolean = True) As Boolean Return ACADLink(Acad, op, Visible) End Function VD: Để liên kết biến Acad với chương trình AutoCAD đang chạy, ta dùng như sau: if ACADLink() then 'Nếu AutoCAD chưa chạy thì câu lệnh if sẽ kết thúc 'Làm cái gì đó ở đây end if Để liên kết biến Acad với chương trình AutoCAD đang chạy, or chưa chạy thì chạy nó, ta dùng như sau: if ACADLink(acAcadLink.LinkNewSession) then 'Làm cái gì đó ở đây end if Để liên kết biến MyAcad với một phiên mới AutoCAD đồng thời ẩn nó để xử lý chạy nền Dim MyAcad as Object if ACADLink(MyAcad, acAcadLink.NewSession, False) then 'Làm cái gì đó ở đây end if Tải về ch trình mẫu VD về thao tác với AutoCAD Phần 2: Thao tác với các đối tượng AutoCAD Phần 3: Lập trình với bản vẽ Source chương trình mẫu: http://www.mediafire.com/file/99auvrs75mgi...WorkWithDwg.rar Phần 4: Lập trình với các đối tượng trong bản vẽ Source chương trình mẫu: 1. Thao tác với các đối tượng 2. Tạo bảng trong CAD từ dữ liệu trong Excel 3. Break các Polyline thành các Polyline con tại các giao điểm giữa chúng với nhau. :mellow: Chào AnhCos! Chúc anh có nhiều sức khỏe, sao anh lập trình hay thế, anh hướng dẫn hay cho em xin source bài trên đi nhé tiện nghiên cứu cho việc học. Cám ơn anh nhiều Xanhnhnn280683@gmail.com Kính chào. :blink: 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
garupro 7 Báo cáo bài đăng Đã đăng Tháng 6 5, 2012 (Đă chỉnh sửa) Bạn nào tạo được Hatch trong Net không mình làm hoài đến phần thêm đối tượng vào toàn báo Invalid object array , Nếu dùng Sencommand thì được nhưng khi cho vào vòng lặp thì Cad đơ luông (Chắc Net gửi nhiều dữ liệu quá) Dim diem(14) As Double Dim pline As Object diem(0) = x diem(1) = y + dao / tile diem(2) = 0 diem(3) = x + khoangcachcoc diem(4) = y + dao / tile diem(5) = 0 diem(6) = x + khoangcachcoc diem(7) = y - dap / tile diem(8) = 0 diem(9) = x diem(10) = y - dap / tile diem(11) = 0 diem(12) = x diem(13) = y + dao / tile diem(14) = 0 pline = Dwg.ModelSpace.AddPolyline(diem) Dim hatchobj As Object Dim ptname As String Dim pttype As Long Dim bass As Boolean Dim lopp(0) ptname = "ANSI31" pttype = 0 bass = True lopp(0) = pline hatchobj = Dwg.ModelSpace.AddHatch(pttype, ptname, bass) hatchobj.AppendOuterLoop(lopp) ' Báo lỗi ở đây nè Chỉnh sửa Tháng 6 5, 2012 theo garupro 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
Jin Yong 337 Báo cáo bài đăng Đã đăng Tháng 6 6, 2012 Bạn nào tạo được Hatch trong Net không mình làm hoài đến phần thêm đối tượng vào toàn báo Invalid object array , Nếu dùng Sencommand thì được nhưng khi cho vào vòng lặp thì Cad đơ luông (Chắc Net gửi nhiều dữ liệu quá) Dim diem(14) As Double Dim pline As Object diem(0) = x diem(1) = y + dao / tile diem(2) = 0 diem(3) = x + khoangcachcoc diem(4) = y + dao / tile diem(5) = 0 diem(6) = x + khoangcachcoc diem(7) = y - dap / tile diem(8) = 0 diem(9) = x diem(10) = y - dap / tile diem(11) = 0 diem(12) = x diem(13) = y + dao / tile diem(14) = 0 pline = Dwg.ModelSpace.AddPolyline(diem) Dim hatchobj As Object Dim ptname As String Dim pttype As Long Dim bass As Boolean Dim lopp(0) ptname = "ANSI31" pttype = 0 bass = True lopp(0) = pline hatchobj = Dwg.ModelSpace.AddHatch(pttype, ptname, bass) hatchobj.AppendOuterLoop(lopp) ' Báo lỗi ở đây nè Mình tạo hatch như thế này: Sub Add_CONKE(ByVal X1, ByVal Y1, ByVal X2, ByVal Y2) Dim acDoc As Document = AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument Dim acCurDb As Database = acDoc.Database Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction() Dim acBlkTbl As BlockTable acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, DatabaseServices.OpenMode.ForRead) Dim acBlkTblRec As BlockTableRecord acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), DatabaseServices.OpenMode.ForWrite) Dim acLine1 As Line = New Line(New Point3d(X1, Y1, 0), New Point3d(X2, Y1, 0)) acLine1.SetDatabaseDefaults() acLine1.ColorIndex = 5 acBlkTblRec.AppendEntity(acLine1) acTrans.AddNewlyCreatedDBObject(acLine1, True) Dim acLine2 As Line = New Line(New Point3d(X2, Y1, 0), New Point3d(X2, Y2, 0)) acLine2.SetDatabaseDefaults() acLine2.ColorIndex = 5 acBlkTblRec.AppendEntity(acLine2) acTrans.AddNewlyCreatedDBObject(acLine2, True) Dim acLine3 As Line = New Line(New Point3d(X1, Y2, 0), New Point3d(X2, Y2, 0)) acLine3.SetDatabaseDefaults() acLine3.ColorIndex = 5 acBlkTblRec.AppendEntity(acLine3) acTrans.AddNewlyCreatedDBObject(acLine3, True) Dim acLine4 As Line = New Line(New Point3d(X1, Y1, 0), New Point3d(X1, Y2, 0)) acLine4.SetDatabaseDefaults() acLine4.ColorIndex = 5 acBlkTblRec.AppendEntity(acLine4) acTrans.AddNewlyCreatedDBObject(acLine4, True) Dim acObjIdColl As ObjectIdCollection = New ObjectIdCollection() acObjIdColl.Add(acLine1.ObjectId) acObjIdColl.Add(acLine2.ObjectId) acObjIdColl.Add(acLine3.ObjectId) acObjIdColl.Add(acLine4.ObjectId) Dim acHatch As Hatch = New Hatch() acBlkTblRec.AppendEntity(acHatch) acTrans.AddNewlyCreatedDBObject(acHatch, True) acHatch.SetDatabaseDefaults() acHatch.SetHatchPattern(HatchPatternType.PreDefined, "ANSI31") acHatch.PatternScale = 100 acHatch.SetHatchPattern(acHatch.PatternType, acHatch.PatternName) acHatch.Associative = True acHatch.AppendLoop(HatchLoopTypes.Outermost, acObjIdColl) acHatch.EvaluateHatch(True) acHatch.ColorIndex = 251 acTrans.Commit() End Using End Sub 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
garupro 7 Báo cáo bài đăng Đã đăng Tháng 6 7, 2012 Cách của bạn có chạy được với Cad 2007 không ? Mình đang làm trên 2007 dùng dạng trên toàn báo lỗi ở mấy file dll thui 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
Jin Yong 337 Báo cáo bài đăng Đã đăng Tháng 6 7, 2012 Dùng bình thường mà! 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
sanit 3 Báo cáo bài đăng Đã đăng Tháng 8 24, 2012 Thanks mọi người mình mày mò làm được rồ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
cuongvule 1 Báo cáo bài đăng Đã đăng Tháng 8 30, 2012 Vì thế trong visual studio đã có sẵn công cụ mã hóa code rồi là Dotfuscate, Vô google mà tìm. Hôm nay đọc đc bài viết của bác Anhcos hay quá. Đúng cái mình đang cần, nhưng lại không down đc code của các vd. Bác anhcos nếu còn lưu mấy cái code đấy thì có thể bớt chút thời gian up lại hoặc gửi cho em xin với. Cảm ơn bác nhiều. Email: cuongvule@gmail.com 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
sanit 3 Báo cáo bài đăng Đã đăng Tháng 8 31, 2012 thế bác ơi bọn e chả biết gì về lập trinh hay ăn sẵn thì sao đây bác post thành quả lên đi để e xào nấu luôn Bắt đầu không có ai là biết hết, bạn vào đây để tham khảo, có nhiều cái cho bạn xào nấu đấy ^^ http://docs.autodesk.com/ACD/2010/ENU/AutoCAD%20.NET%20Developer.... 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
daominh80 0 Báo cáo bài đăng Đã đăng Tháng 9 14, 2012 Mình tạo hatch như thế này: Sub Add_CONKE(ByVal X1, ByVal Y1, ByVal X2, ByVal Y2) Dim acDoc As Document = AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument Dim acCurDb As Database = acDoc.Database Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction() Dim acBlkTbl As BlockTable acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, DatabaseServices.OpenMode.ForRead) Dim acBlkTblRec As BlockTableRecord acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), DatabaseServices.OpenMode.ForWrite) Dim acLine1 As Line = New Line(New Point3d(X1, Y1, 0), New Point3d(X2, Y1, 0)) acLine1.SetDatabaseDefaults() acLine1.ColorIndex = 5 acBlkTblRec.AppendEntity(acLine1) acTrans.AddNewlyCreatedDBObject(acLine1, True) Dim acLine2 As Line = New Line(New Point3d(X2, Y1, 0), New Point3d(X2, Y2, 0)) acLine2.SetDatabaseDefaults() acLine2.ColorIndex = 5 acBlkTblRec.AppendEntity(acLine2) acTrans.AddNewlyCreatedDBObject(acLine2, True) Dim acLine3 As Line = New Line(New Point3d(X1, Y2, 0), New Point3d(X2, Y2, 0)) acLine3.SetDatabaseDefaults() acLine3.ColorIndex = 5 acBlkTblRec.AppendEntity(acLine3) acTrans.AddNewlyCreatedDBObject(acLine3, True) Dim acLine4 As Line = New Line(New Point3d(X1, Y1, 0), New Point3d(X1, Y2, 0)) acLine4.SetDatabaseDefaults() acLine4.ColorIndex = 5 acBlkTblRec.AppendEntity(acLine4) acTrans.AddNewlyCreatedDBObject(acLine4, True) Dim acObjIdColl As ObjectIdCollection = New ObjectIdCollection() acObjIdColl.Add(acLine1.ObjectId) acObjIdColl.Add(acLine2.ObjectId) acObjIdColl.Add(acLine3.ObjectId) acObjIdColl.Add(acLine4.ObjectId) Dim acHatch As Hatch = New Hatch() acBlkTblRec.AppendEntity(acHatch) acTrans.AddNewlyCreatedDBObject(acHatch, True) acHatch.SetDatabaseDefaults() acHatch.SetHatchPattern(HatchPatternType.PreDefined, "ANSI31") acHatch.PatternScale = 100 acHatch.SetHatchPattern(acHatch.PatternType, acHatch.PatternName) acHatch.Associative = True acHatch.AppendLoop(HatchLoopTypes.Outermost, acObjIdColl) acHatch.EvaluateHatch(True) acHatch.ColorIndex = 251 acTrans.Commit() End Using End Sub Mình tạo hatch như thế này: Sub Add_CONKE(ByVal X1, ByVal Y1, ByVal X2, ByVal Y2) Dim acDoc As Document = AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument Dim acCurDb As Database = acDoc.Database Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction() Dim acBlkTbl As BlockTable acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, DatabaseServices.OpenMode.ForRead) Dim acBlkTblRec As BlockTableRecord acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), DatabaseServices.OpenMode.ForWrite) Dim acLine1 As Line = New Line(New Point3d(X1, Y1, 0), New Point3d(X2, Y1, 0)) acLine1.SetDatabaseDefaults() acLine1.ColorIndex = 5 acBlkTblRec.AppendEntity(acLine1) acTrans.AddNewlyCreatedDBObject(acLine1, True) Dim acLine2 As Line = New Line(New Point3d(X2, Y1, 0), New Point3d(X2, Y2, 0)) acLine2.SetDatabaseDefaults() acLine2.ColorIndex = 5 acBlkTblRec.AppendEntity(acLine2) acTrans.AddNewlyCreatedDBObject(acLine2, True) Dim acLine3 As Line = New Line(New Point3d(X1, Y2, 0), New Point3d(X2, Y2, 0)) acLine3.SetDatabaseDefaults() acLine3.ColorIndex = 5 acBlkTblRec.AppendEntity(acLine3) acTrans.AddNewlyCreatedDBObject(acLine3, True) Dim acLine4 As Line = New Line(New Point3d(X1, Y1, 0), New Point3d(X1, Y2, 0)) acLine4.SetDatabaseDefaults() acLine4.ColorIndex = 5 acBlkTblRec.AppendEntity(acLine4) acTrans.AddNewlyCreatedDBObject(acLine4, True) Dim acObjIdColl As ObjectIdCollection = New ObjectIdCollection() acObjIdColl.Add(acLine1.ObjectId) acObjIdColl.Add(acLine2.ObjectId) acObjIdColl.Add(acLine3.ObjectId) acObjIdColl.Add(acLine4.ObjectId) Dim acHatch As Hatch = New Hatch() acBlkTblRec.AppendEntity(acHatch) acTrans.AddNewlyCreatedDBObject(acHatch, True) acHatch.SetDatabaseDefaults() acHatch.SetHatchPattern(HatchPatternType.PreDefined, "ANSI31") acHatch.PatternScale = 100 acHatch.SetHatchPattern(acHatch.PatternType, acHatch.PatternName) acHatch.Associative = True acHatch.AppendLoop(HatchLoopTypes.Outermost, acObjIdColl) acHatch.EvaluateHatch(True) acHatch.ColorIndex = 251 acTrans.Commit() End Using End Sub Chào bạn, Mình đã theo dõi rất nhiều bài viết của bạn và thấy nó rất bổ ích. Về vấn đề tạo Hatch với vb.net mình cũng đã tìm hiểu khá nhiều và vẫn chưa ổn. Bạn có cách nào tạo Hatch mà không cần dùng đến netload (file dll) để tạo hatch không. Trước mình tạo hatch với vb6 thì được, nhưng chuyển lên vb2010 thì bị lỗi. Bạn có thể hướng dẫn mình chi tiết hơn được không. Mình dùng thử theo cách của bạn (acd210) nó báo lỗi "Could not load file or assembly 'acdbmgd, Version=18.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format." Sử dụng cad 2007 thì nó lại báo lỗi "Could not load file or assembly 'acdbmgd.dll' or one of its dependencies. The specified module could not be found". Cám ơn bạn nhiều 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
Jin Yong 337 Báo cáo bài đăng Đã đăng Tháng 9 16, 2012 Chào bạn, Mình đã theo dõi rất nhiều bài viết của bạn và thấy nó rất bổ ích. Về vấn đề tạo Hatch với vb.net mình cũng đã tìm hiểu khá nhiều và vẫn chưa ổn. Bạn có cách nào tạo Hatch mà không cần dùng đến netload (file dll) để tạo hatch không. Trước mình tạo hatch với vb6 thì được, nhưng chuyển lên vb2010 thì bị lỗi. Bạn có thể hướng dẫn mình chi tiết hơn được không. Mình dùng thử theo cách của bạn (acd210) nó báo lỗi "Could not load file or assembly 'acdbmgd, Version=18.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format." Sử dụng cad 2007 thì nó lại báo lỗi "Could not load file or assembly 'acdbmgd.dll' or one of its dependencies. The specified module could not be found". Cám ơn bạn nhiều Mình chỉ có thể giúp bạn về vấn đề tạo Hatch thông qua file dll bằng lệnh Netload, phương thức khác chắc phải nhờ bạn chủ topic Anhcos Về lỗi của bạn, mình đoán nguyên nhân là do khi Reference các file DLL (acdbmgd.dll hay acmgd.dll) bạn đã chưa chuyển chế độ Copy Local sang False. Nếu vẫn để là True thi có thể phần mềm sẽ báo lỗ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
daominh80 0 Báo cáo bài đăng Đã đăng Tháng 9 30, 2012 OK, cám bơn bạn nhé. Dạo này bận quá chưa có thời gian ngó lại mấy cái đó. Dể mình thử lại. Thank! 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