caibutchi 0 Báo cáo bài đăng Đã đăng Tháng 10 15, 2011 Các bác cho e hỏi xí về VBA,e muốn offset các đối tượng sau khi mirror mà sao không thực hiện dc nhỉ b as acadline a as variant c as variant a = b.mirror(A1,B1) c= a.offset (5) 'cho em hoi tai sao cad không vẽ được đường thẳng c ạ,tương tự thế sao e không set layer cho đối tượng c được ạ.Cảm ơn 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
anhcos 196 Báo cáo bài đăng Đã đăng Tháng 10 15, 2011 Các bác cho e hỏi xí về VBA,e muốn offset các đối tượng sau khi mirror mà sao không thực hiện dc nhỉ b as acadline a as variant c as variant a = b.mirror(A1,B1) c= a.offset (5) 'cho em hoi tai sao cad không vẽ được đường thẳng c ạ,tương tự thế sao e không set layer cho đối tượng c được ạ.Cảm ơn các bác Đoạn lệnh này mình không thấy gì có lỗi. Có những đối tượng sau khi offset thì chia thành nhiều đối tượng con, vì thế c là mảng các đối tượng sau khi offset. Bạn kiểm tra số lượng các đối tượng và thay đổi giá trị VD: c(0).Layer = "cadviet" Tổng quát hơn for i=0 to ubound© c(i).Layer ="0" next i 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
caibutchi 0 Báo cáo bài đăng Đã đăng Tháng 10 15, 2011 Cảm ơn a nhưng sao em làm không được anh ạ.Nó vẫn không offset ra dc mà cũng chẳng set layer dc.Dù sao cũng cảm ơn a nha 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 10 15, 2011 Cảm ơn a nhưng sao em làm không được anh ạ.Nó vẫn không offset ra dc mà cũng chẳng set layer dc.Dù sao cũng cảm ơn a nha Đối tượng offset phải là variant bạn nhé. Bạn nghiên cứu thử đoạn code sau: Sub ofline() Dim al As AcadLine Dim aml As AcadLine Dim aol As Variant Dim p1(0 To 2) As Double Dim p2(0 To 2) As Double Dim pm1(0 To 2) As Double Dim pm2(0 To 2) As Double p1(0) = 0: p1(1) = 0: p1(2) = 0 p2(0) = 100: p2(1) = 100: p2(2) = 0 pm1(0) = 100: pm1(1) = 0: pm1(2) = 0 pm2(0) = 100: pm2(1) = 100: pm2(2) = 0 Set al = ThisDrawing.ModelSpace.AddLine(p1, p2) Set aml = al.Mirror(pm1, pm2) aol = aml.Offset(50) End Sub 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
anhcos 196 Báo cáo bài đăng Đã đăng Tháng 10 15, 2011 Bạn dùng thêm từ set là được set a = b.mirror(A1,B1) set c= a.offset (5) Cái vụ set này lâu rồi không còn dùng nên chẳng nhớ đượ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
caibutchi 0 Báo cáo bài đăng Đã đăng Tháng 10 15, 2011 cảm ơn bạn anhcos và các bạn rất nhiều,Làm theo bạn anhcos thì ok.Nhưng có vài đối tượng nó ko nhận.Ví dụ e làm ngược lại thế này ạ: b as acadline a as variant c as variant a = b.offset(5) c= a.mirror (a1,b1) 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
phantuhuong 218 Báo cáo bài đăng Đã đăng Tháng 10 16, 2011 Đã là đối tượng thì khi gán biến phải có chữ Set ở đầu. Trong trường hợp trên, bắt buộc đối tượng b phải là line, còn là đối tượng khác thì đương nhiên không chạy là phải Đã là đối tượng thì khi gán biến phải có chữ Set ở đầu. Trong trường hợp trên, bắt buộc đối tượng b phải là line, còn là đối tượng khác thì đương nhiên không chạy là phả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