máy bơm nước hỏa tiễn công ty in ấn https://duan-knparadise.com/ Bơm nước hỏa tiễn bóp da nam Túi nilon PP cong ty in bieu mau
Cac cao thu VBA chi gium cho!!! - Page 2 - Diễn đàn của các kỹ sư kết cấu Việt Nam










































































Features
Go Back   Diễn đàn của các kỹ sư kết cấu Việt Nam > ỨNG DỤNG TIN HỌC TRONG THIẾT KẾ XÂY DỰNG > Lập trình tính toán, phân tích kết cấu
Tên thành viên
Mật mã
Tin HOT Thông tin BQT diễn đàn

Result  Reload Thống Kê - Diễn đàn của các kỹ sư kết cấu Việt Nam
All Forums | Thông báo | Văn Bản Pháp Luật | Văn Hóa Văn Nghệ Giao Lưu
Please wait...
Please wait...
Loading...
Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 31-12-2006   #21
ThangCoi
Thành viên nhiệt huyết
 
ThangCoi's Avatar
 
Tham gia ngày: Mar 2006
Nơi Cư Ngụ: Không cố định
Bài gởi: 603
Thanks: 55
Thanked 279 Times in 104 Posts
Send a message via Yahoo to ThangCoi
Default Ðề: Cac cao thu VBA chi gium cho!!!

Trích:
Nguyên văn bởi PMXD
Viết thế này thì quá là OK rồi
Mà có môt điều khá bất ngờ vì cách đăt tên biến Vse của bạn, vì đây cũng là cách tôi hay đặt tên cho biến này (Vse= Việt Anh SelectionSet, VLine=VietAnh AcadLine, VDim= Việt Anh Dimmention......).Thật thí vị
Hi không ngờ bác cũng có cách đặt tên giống em ! Khi đang là Sv em hay đặt là
Kse= Kiến Trúc SelectionSet, KDim =Kiến Trúc Dimmention,
Còn bây giờ V là tên viết tắt của công ty em đang làm !
Các ơn bác nhiều nhiều ! Hi vọng được bác chỉ bảo thêm !
ThangCoi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-01-2007   #22
ThangCoi
Thành viên nhiệt huyết
 
ThangCoi's Avatar
 
Tham gia ngày: Mar 2006
Nơi Cư Ngụ: Không cố định
Bài gởi: 603
Thanks: 55
Thanked 279 Times in 104 Posts
Send a message via Yahoo to ThangCoi
Default Ðề: Cac cao thu VBA chi gium cho!!!

Anh Việt Anh ơi ! Cho em hỏi chút !
Giả sử ta có một đối tượng text tại một vị trí xác định (Đã biết toạ độ điểm chèn) Làm sao có thể chọn được đối tượng này và xoá nó đi ạ !
ThangCoi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-01-2007   #23
khongbietgi
Thành viên mới
 
Tham gia ngày: Nov 2006
Bài gởi: 17
Thanks: 0
Thanked 6 Times in 4 Posts
Default Ðề: Cac cao thu VBA chi gium cho!!!

Các anh cho em hỏi với, hồi trước em có biết dùng VB6 qua qua rồi. Bây giờ với VBA for Cad em cũng xem và có thể lập đc một số form đơn giản. Nhưng làm thế nào để chạy đc form đó trong Cad nhỉ, như là đánh lệnh nào đó để nó hiện ra đc không? Ví dụ em chạy 1 form khi ấn vào nút OK nó sẽ hiện ra dòng chữ Hello you thì thế nào nhỉ!
khongbietgi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-01-2007   #24
ThangCoi
Thành viên nhiệt huyết
 
ThangCoi's Avatar
 
Tham gia ngày: Mar 2006
Nơi Cư Ngụ: Không cố định
Bài gởi: 603
Thanks: 55
Thanked 279 Times in 104 Posts
Send a message via Yahoo to ThangCoi
Default Ðề: Cac cao thu VBA chi gium cho!!!

Bác dùng Form.Show để gọi form đó lên ! Vấn đề là dòng chữ của bác tạo ra trong MsgBox hay là đối tượng text tromg cad !
You thử chạy xem nhé Alt + F8 run CallForm
Em có gửi quyển sách VBA for ACD trong
ftp://gilligan.globat.com/Thanh%20vien/Thangcoi/
Bác lấy tham khảo thêm nhé ! Nó hay phết !
File Kèm Theo
File Type: zip ViDuHeLLo.zip (68.5 KB, 75 lần tải)

thay đổi nội dung bởi: ThangCoi, 18-01-2007 lúc 09:49 AM
ThangCoi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-01-2007   #25
vietha209
Thành viên
 
vietha209's Avatar
 
Tham gia ngày: Dec 2006
Bài gởi: 56
Thanks: 17
Thanked 35 Times in 10 Posts
Talking Ðề: Cac cao thu VBA chi gium cho!!!

Các bác cho em hỏi làm sao khai báo VBA for Cad để ta có thể:
+ đọc được dữ liệu trên 1 file Excel cho trước (ví dụ lấy giá trị ở cell(1,1) của file C:\Data1.xls gán vào acad.textstring)
+ mở và ghi tiếp (append) vào 1 file Excel cho trước (ví dụ lấy giá trị ở acad.textstring gán vào cell(2,1) của file C:\Data2.xls)
Em làm mãi mà không được, các anh hướng dẫn em
vietha209 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-01-2007   #26
ThangCoi
Thành viên nhiệt huyết
 
ThangCoi's Avatar
 
Tham gia ngày: Mar 2006
Nơi Cư Ngụ: Không cố định
Bài gởi: 603
Thanks: 55
Thanked 279 Times in 104 Posts
Send a message via Yahoo to ThangCoi
Default Ðề: Cac cao thu VBA chi gium cho!!!

Em chưa cho nó đọc file XLS bao giờ ! Mới chỉ cho đọc .txt cho nhẹ thôi !
Khai báo kiểu Record
Public Type Record
Vtext1 As String * 10
Vtext2 As String * 10
Vtext3 As String * 10
Vtext4 As String * 10
Vtext5 As String * 10
.............................
End Type
'----------------------
Dim a As Record
Dim Vtext1 As String
Open "D:\Vikeo\Thep" For Random As #3 Len = Len(a)
Do While Not EOF(3)
Get #3, , a
Me.ComboBox1.AddItem Trim(a.Vtext1)
Loop
Close #3
Dọc dữ liệu từ file D:\Vikeo\Thep rồi hiện nó vào ComboBox1

Bác thử xem ! (chưa test được )
ThangCoi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-01-2007   #27
khongbietgi
Thành viên mới
 
Tham gia ngày: Nov 2006
Bài gởi: 17
Thanks: 0
Thanked 6 Times in 4 Posts
Default Ðề: Cac cao thu VBA chi gium cho!!!

Trích:
Nguyên văn bởi ThangCoi
Bác dùng Form.Show để gọi form đó lên ! Vấn đề là dòng chữ của bác tạo ra trong MsgBox hay là đối tượng text tromg cad !
You thử chạy xem nhé Alt + F8 run CallForm
Em có gửi quyển sách VBA for ACD trong
ftp://gilligan.globat.com/Thanh%20vien/Thangcoi/
Bác lấy tham khảo thêm nhé ! Nó hay phết !
Cám ơn bác, em hiểu cách gọi cho form hiện lên rồi! Hay thật, VBA quả là hay nhưng em chưa nắm được các hàm tương tác với đối tượng trong bản vẽ. Ví dụ khi em ấn OK trong form thì lần này nó sẽ chèn 1 đoạn text hoặc 1 đường line trực tiếp vào bản vẽ hiện hành như thế nào? Nhờ bác cho em thêm 1 ít minh họa đc ko! Cám ơn rất nhiều, em đang tập VBA để viết vài cái ứng dụng nho nhỏ trong Cad!
khongbietgi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-01-2007   #28
ThangCoi
Thành viên nhiệt huyết
 
ThangCoi's Avatar
 
Tham gia ngày: Mar 2006
Nơi Cư Ngụ: Không cố định
Bài gởi: 603
Thanks: 55
Thanked 279 Times in 104 Posts
Send a message via Yahoo to ThangCoi
Default Ðề: Cac cao thu VBA chi gium cho!!!

Sub CallFormText()
Dim Vstring As String 'Chuoi
Dim StaP As Variant 'Bien khong dinh kieu cho diem chon
Dim EndP As Variant
Dim VTextObj As AcadText ' Khai bao doi tuong text trong acad
Dim Vline As AcadLine ' Khai bao doi tuong line trong acad
Form.Show
Vstring = Form.TextBox1.Text
StaP = ThisDrawing.Utility.GetPoint(, vbCrLf & "Diem 1")
'Diem 1 de ve line
EndP = ThisDrawing.Utility.GetPoint(, vbCrLf & "Diem 2")
'Diem 2 de ve line
Set Vline = ThisDrawing.ModelSpace.AddLine(StaP, EndP)
' Neu khong nhap dong chu mac dinh la "Ban khong vao text"
If Vstring = "" Then
Vstring = "Ban khong vao text"
End If
Set VTextObj = ThisDrawing.ModelSpace.AddText(Vstring, StaP, 2.5) 'Ve line tai diem Stap cap 2.5
VTextObj.color = acRed 'Trang tri cho vui
End Sub
File Kèm Theo
File Type: zip ViDuHeLLo.zip (69.7 KB, 39 lần tải)
ThangCoi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-01-2007   #29
vietha209
Thành viên
 
vietha209's Avatar
 
Tham gia ngày: Dec 2006
Bài gởi: 56
Thanks: 17
Thanked 35 Times in 10 Posts
Default Ðề: Cac cao thu VBA chi gium cho!!!

Trích:
Nguyên văn bởi ThangCoi
Anh Việt Anh ơi ! Cho em hỏi chút !
Giả sử ta có một đối tượng text tại một vị trí xác định (Đã biết toạ độ điểm chèn) Làm sao có thể chọn được đối tượng này và xoá nó đi ạ !
Mình thấy bài post này đã mấy ngày mà chưa thấy anh Việt Anh trả lời, chắc là anh ấy còn bận nhiều việc, để mình mạn phép trả lời cho bạn nha. Mình chỉ là gà VBA thôi, chỉ đi sưu tầm những đoạn code mà cảm thấy hay hay thôi nên đoạn code này mình chế ra chắc còn nhiều thiếu sót, mong mọi người tham khảo và cho ý kiến để lần sau post mang tính chuyên nghiệp hơn (bạn down file gửi kèm, riêng file Data1.xls bạn copy vào ổ D: nha). Have fun
Code:
Option Explicit
Dim x1 As Object
Dim x2 As Object
Dim ss1 As AcadSelectionSet
Dim vt As AcadText
Dim h, c As Integer
Dim sht_Data1
Public Sub Xoa_text_khi_biet_diem_chen()
On Error Resume Next
'Mo file Data1.xls co chua toa do diem chen text (D:\Data1.xls)
Set x1 = CreateObject("Excel.Application")
Set x2 = x1.Workbooks.Open(FileName:="D:\Data1.xls", UpdateLinks:=0)
ActiveWorkbook.RunAutoMacros Which:=xlAutoOpen
x1.Visible = False
Set sht_Data1 = x2.Worksheets("Sheet1")
sht_Data1.Activate
'Chon text tren ban ve
Set ss1 = ThisDrawing.SelectionSets.Add("s1")
ss1.SelectOnScreen
'Doc so lieu tu file Data1.xls va so sanh voi text da chon
For Each vt In ss1
h = 1
Do While sht_Data1.Cells(h, 1).text <> ""
h = h + 1
If Format(vt.InsertionPoint(0), "0.0000") = Format(sht_Data1.Cells(h, 1).text, "0.0000") And_ Format(vt.InsertionPoint(1), "0.0000") = Format(sht_Data1.Cells(h, 2).text, "0.0000") And_ Format(vt.InsertionPoint(2), "0.0000") = Format(sht_Data1.Cells(h, 3).text, "0.0000") Then
vt.Delete
End If
Loop
Next
ss1.Delete
x1.Close
End Sub
File Kèm Theo
File Type: zip Xoa text khi biet diem chen.zip (9.1 KB, 43 lần tải)
vietha209 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-01-2007   #30
thdung_vp5
Thành viên
 
thdung_vp5's Avatar
 
Tham gia ngày: Apr 2006
Bài gởi: 45
Thanks: 0
Thanked 14 Times in 7 Posts
Default Ðề: Cac cao thu VBA chi gium cho!!!

xin chào, chủ đề này thật sự làm tôi quan tâm. Tôi đang vướng mắc vấn đề này.: Tôi vẽ một đường tròn và tạo hatch cho nó, tôi muốn chọn lại 2 đối tượng này (đường tròn và hatch) thì kô biết viết code nhu thế nào nhỉ? Trong AutoLisp thì có thể xử lý đc bằng "p" (previous) và "l" (last). Kô biết trong VBA phải làm sao đây!
thdung_vp5 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-01-2007   #31
ThangCoi
Thành viên nhiệt huyết
 
ThangCoi's Avatar
 
Tham gia ngày: Mar 2006
Nơi Cư Ngụ: Không cố định
Bài gởi: 603
Thanks: 55
Thanked 279 Times in 104 Posts
Send a message via Yahoo to ThangCoi
Default Ðề: Cac cao thu VBA chi gium cho!!!

Trích:
Nguyên văn bởi thdung_vp5
xin chào, chủ đề này thật sự làm tôi quan tâm. Tôi đang vướng mắc vấn đề này.: Tôi vẽ một đường tròn và tạo hatch cho nó, tôi muốn chọn lại 2 đối tượng này (đường tròn và hatch) thì kô biết viết code nhu thế nào nhỉ? Trong AutoLisp thì có thể xử lý đc bằng "p" (previous) và "l" (last). Kô biết trong VBA phải làm sao đây!
Theo em được biết (Tức la trong sự hiểu biết của em) thì VBA nhận đối tượng theo tên ví dụ như AcadLine, AcadHatch .... Nên để chọn đối tượng đấy ta chỉ gọi tên nó ra là xong !

'Ham------------------------------------------------------
Function KC2Diem(Diem1 As Variant, Diem2 As Variant)
KC2Diem = 0
If IsEmpty(Diem1) = True Or IsEmpty(Diem2) = True Then Exit Function
KC2Diem = Sqr((Diem1(0) - Diem2(0)) ^ 2 + (Diem1(1) - Diem2(1)) ^ 2)
End Function

'-----------------------------------------------------------
Sub CreateHatch()
Dim hatchObj As AcadHatch 'Đối tượng được đặt tên là hatchObj
Dim Traloi
' Create the associative Hatch object
Set hatchObj = ThisDrawing.ModelSpace.AddHatch(0, "ANSI31", True)
' Vẽ đối tượng hatchObj vữa đặt tên
' Create the outer boundary for the hatch. (a circle)
Dim outerLoop(0 To 0) As AcadEntity
StaP = ThisDrawing.Utility.GetPoint(, vbCrLf & "Diem 1")
EndP = ThisDrawing.Utility.GetPoint(, vbCrLf & "Diem 2")
Set outerLoop(0) = ThisDrawing.ModelSpace.AddCircle(StaP, KC2Diem(StaP, EndP))
' Gán tên outerLoop(0) cho đối tượng là đường tròn
' Append the outerboundary to the hatch
' object, and display the hatch
hatchObj.AppendOuterLoop (outerLoop)
hatchObj.Evaluate
ThisDrawing.Regen True
Traloi = MsgBox("Ban co chan chan muon xoa duong tron di khong", vbYesNo, "Canh Bao")
If Traloi = vbYes Then ' User chose Yes.
outerLoop(0).Delete
'Tác động Delete đến đối tượng đường tròn outerLoop(0)
End If
End Sub
File Kèm Theo
File Type: zip Chon DT.zip (72.5 KB, 53 lần tải)
ThangCoi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-01-2007   #32
ThangCoi
Thành viên nhiệt huyết
 
ThangCoi's Avatar
 
Tham gia ngày: Mar 2006
Nơi Cư Ngụ: Không cố định
Bài gởi: 603
Thanks: 55
Thanked 279 Times in 104 Posts
Send a message via Yahoo to ThangCoi
Default Ðề: Cac cao thu VBA chi gium cho!!!

Trích:
Nguyên văn bởi vietha209
Mình thấy bài post này đã mấy ngày mà chưa thấy anh Việt Anh trả lời, chắc là anh ấy còn bận nhiều việc, để mình mạn phép trả lời cho bạn nha. Mình chỉ là gà VBA thôi, chỉ đi sưu tầm những đoạn code mà cảm thấy hay hay thôi nên đoạn code này mình chế ra chắc còn nhiều thiếu sót, mong mọi người tham khảo và cho ý kiến để lần sau post mang tính chuyên nghiệp hơn (bạn down file gửi kèm, riêng file Data1.xls bạn copy vào ổ D: nha). Have fun
Cám ơn nhiều !
Nhưng nếu thế bạn phải Selection các đối tượng text và xoá text cần xoá trong những đối tượng được chọn !
Ý mình là khi biết chắc chắn text ở vị trí đó rồi ! Không cần thên bước Selection nó tự động xóa text đó đi , Và cũng không cần biết text đó chứa giá trị gì cả !

Ái chà sắp tết rùi !
ThangCoi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-01-2007   #33
vietha209
Thành viên
 
vietha209's Avatar
 
Tham gia ngày: Dec 2006
Bài gởi: 56
Thanks: 17
Thanked 35 Times in 10 Posts
Default Ðề: Cac cao thu VBA chi gium cho!!!

Nếu bạn không muốn dùng cách lựa chọn đối tượng cũng không sao, ta chỉ cần thay thế đoạn code "For Each vt In ss1" bởi "For Each vt In ThisDrawing.ModelSpace" (khi đó tất cả các text trên bản vẽ sẽ được chọn). Đã test và OK.
vietha209 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-01-2007   #34
PMXD
Moderator
 
PMXD's Avatar
 
Tham gia ngày: Sep 2004
Bài gởi: 205
Thanks: 0
Thanked 115 Times in 30 Posts
Default Ðề: Cac cao thu VBA chi gium cho!!!

Trích:
Nguyên văn bởi vietha209
If Format(vt.InsertionPoint(0), "0.0000") = Format(sht_Data1.Cells(h, 1).text, "0.0000") And_ Format(vt.InsertionPoint(1), "0.0000") = Format(sht_Data1.Cells(h, 2).text, "0.0000") And_ Format(vt.InsertionPoint(2), "0.0000") = Format(sht_Data1.Cells(h, 3).text, "0.0000") Then
vt.Delete
End If
Kinh nghiệm của tôi khi kiểm tra việc tọa độ các điểm có trùng nhau hay không thường tôi không so sánh bằng "=" mà so sánh hiệu hai số có nhỏ hơn một gia số cho trước hay không. Ví dụ
If Abs(a-b)<0.00001 then
............
End if
Thay vì
If a=b then
............
End if
Vì rằng khi lấy tọa độ điểm, AutoCad hay làm tròn số nên việc so sánh bằng rất hay dẫn đến sai số.

Việc để nhận lại một đối tượng trên Cad mà mình đã dùng VBA để vẽm tôi ít khi dùng cách so sánh tọa độ nà thường làm theo cách: Ghi vào đối tượng vẽ một Extend Data để về sau nhận dạng lại đối tượng này hoặc dùng chính Handle của đối tượng(Mỗi một đối tượng của Cad được Cad cấp cho một Handle là kiểu số nguyên và duy nhất). Về sau muốn nhận dạng đối tượng này chỉ cần gọi hàm HandleToObject là đối tượng sẽ nhận chính xác, tiết kiệm rất nhiều thời gian hơn là vòng lặp so sánh tọa độ.
'=====================================================
Xin lỗi các anh em vì việc trả lời muộn, dạo này đúng là công việc hơi nhiều, cộng thêm "VỠ ĐÊ" nên ít có thời gian đọc và trả lời bài viết.
__________________
Công ty Cổ phần kỹ thuật công trình- Thương mại C.N.C.C
Email : info@cncc.vn
PMXD vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-01-2007   #35
haikcvncc
Moderator
 
haikcvncc's Avatar
 
Tham gia ngày: Sep 2004
Nơi Cư Ngụ: Tổng cty tư vấn XD Việt Nam - VNCC
Bài gởi: 730
Thanks: 0
Thanked 502 Times in 205 Posts
Default Ðề: Cac cao thu VBA chi gium cho!!!

Trích:
Nguyên văn bởi PMXD
'=====================================================
Xin lỗi các anh em vì việc trả lời muộn, dạo này đúng là công việc hơi nhiều, cộng thêm "VỠ ĐÊ" nên ít có thời gian đọc và trả lời bài viết.
Đi làm còn không thèm nói gì lên mạng. Ai "hộ đê" mà cũng nghỉ làm như bác thì chít
__________________
NHẤT NGHỆ TINH NHẤT THÂN VINH
haikcvncc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-01-2007   #36
thdung_vp5
Thành viên
 
thdung_vp5's Avatar
 
Tham gia ngày: Apr 2006
Bài gởi: 45
Thanks: 0
Thanked 14 Times in 7 Posts
Default Ðề: Cac cao thu VBA chi gium cho!!!

Trích:
Nguyên văn bởi ThangCoi
Theo em được biết (Tức la trong sự hiểu biết của em) thì VBA nhận đối tượng theo tên ví dụ như AcadLine, AcadHatch .... Nên để chọn đối tượng đấy ta chỉ gọi tên nó ra là xong !

'Ham------------------------------------------------------
Function KC2Diem(Diem1 As Variant, Diem2 As Variant)
KC2Diem = 0
If IsEmpty(Diem1) = True Or IsEmpty(Diem2) = True Then Exit Function
KC2Diem = Sqr((Diem1(0) - Diem2(0)) ^ 2 + (Diem1(1) - Diem2(1)) ^ 2)
End Function

'-----------------------------------------------------------
Sub CreateHatch()
Dim hatchObj As AcadHatch 'Đối tượng được đặt tên là hatchObj
Dim Traloi
' Create the associative Hatch object
Set hatchObj = ThisDrawing.ModelSpace.AddHatch(0, "ANSI31", True)
' Vẽ đối tượng hatchObj vữa đặt tên
' Create the outer boundary for the hatch. (a circle)
Dim outerLoop(0 To 0) As AcadEntity
StaP = ThisDrawing.Utility.GetPoint(, vbCrLf & "Diem 1")
EndP = ThisDrawing.Utility.GetPoint(, vbCrLf & "Diem 2")
Set outerLoop(0) = ThisDrawing.ModelSpace.AddCircle(StaP, KC2Diem(StaP, EndP))
' Gán tên outerLoop(0) cho đối tượng là đường tròn
' Append the outerboundary to the hatch
' object, and display the hatch
hatchObj.AppendOuterLoop (outerLoop)
hatchObj.Evaluate
ThisDrawing.Regen True
Traloi = MsgBox("Ban co chan chan muon xoa duong tron di khong", vbYesNo, "Canh Bao")
If Traloi = vbYes Then ' User chose Yes.
outerLoop(0).Delete
'Tác động Delete đến đối tượng đường tròn outerLoop(0)
End If
End Sub
cám ơn nhé, nhưng đoạn code này của bạn chỉ chọn lại được đường tròn để xóa đi chứ kô chọn lại được một lúc cả hatch và đường tròn!
thdung_vp5 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-01-2007   #37
ThangCoi
Thành viên nhiệt huyết
 
ThangCoi's Avatar
 
Tham gia ngày: Mar 2006
Nơi Cư Ngụ: Không cố định
Bài gởi: 603
Thanks: 55
Thanked 279 Times in 104 Posts
Send a message via Yahoo to ThangCoi
Default Ðề: Cac cao thu VBA chi gium cho!!!

Trích:
Nguyên văn bởi thdung_vp5
cám ơn nhé, nhưng đoạn code này của bạn chỉ chọn lại được đường tròn để xóa đi chứ kô chọn lại được một lúc cả hatch và đường tròn!
Nếu bác muốn xoá cat hach thì bác thên đoạn chọn đối tượng hatchObj và
Delete đi thôi !
'---------------------------------
Traloi = MsgBox("Ban co chan chan muon xoa duong tron va hach di khong", vbYesNo, "Canh Bao")
If Traloi = vbYes Then ' User chose Yes.
outerLoop(0).Delete
hatchObj.Delete
End If
End Sub
'---------------------------------

thay đổi nội dung bởi: ThangCoi, 29-01-2007 lúc 02:01 PM
ThangCoi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-01-2007   #38
vietha209
Thành viên
 
vietha209's Avatar
 
Tham gia ngày: Dec 2006
Bài gởi: 56
Thanks: 17
Thanked 35 Times in 10 Posts
Default Ðề: Cac cao thu VBA chi gium cho!!!

Trích:
Nguyên văn bởi PMXD
Việc để nhận lại một đối tượng trên Cad mà mình đã dùng VBA để vẽ tôi ít khi dùng cách so sánh tọa độ nà thường làm theo cách: Ghi vào đối tượng vẽ một Extend Data để về sau nhận dạng lại đối tượng này hoặc dùng chính Handle của đối tượng(Mỗi một đối tượng của Cad được Cad cấp cho một Handle là kiểu số nguyên và duy nhất). Về sau muốn nhận dạng đối tượng này chỉ cần gọi hàm HandleToObject là đối tượng sẽ nhận chính xác, tiết kiệm rất nhiều thời gian hơn là vòng lặp so sánh tọa độ.
Em chưa hiểu rõ ý của anh lắm nên muốn hỏi lại anh cho rõ thêm: Với một đối tượng trên Cad mà mình đã dùng VBA để vẽ thì ta gọi tên của nó ra ngay cho nhanh (ví dụ lineobj, textobj, splineobj...) chứ tại sao lại fải đặt cho nó 1 handle rồi lại gọi lại đối tượng qua handle đó. Em đã tham khảo help file của Cad và vẫn gặp phải vấn đề như vậy. Anh giải thích giùm em nha/
vietha209 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-01-2007   #39
TrieuHieuPhong
Thành viên mới
 
Tham gia ngày: Nov 2006
Bài gởi: 8
Thanks: 0
Thanked 0 Times in 0 Posts
Default Ðề: Cac cao thu VBA chi gium cho!!!

Xin hỏi mọi người, làm thế nào để có thể truy cập vào việc sửa các thông số của 1 block (mà có gắn các thuộc tính đi kèm như số lượng kích thước thép khối lượng... giống như trong lisp để lập bảng thống kê thép). Thanks very much
TrieuHieuPhong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-01-2007   #40
vietha209
Thành viên
 
vietha209's Avatar
 
Tham gia ngày: Dec 2006
Bài gởi: 56
Thanks: 17
Thanked 35 Times in 10 Posts
Default Ðề: Cac cao thu VBA chi gium cho!!!

Bạn dùng chức năng .GetAttributes của đối tượng BlockRef là OK.
vietha209 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Loading...
Trả lời

Ðiều Chỉnh
Xếp Bài

Quyền sử dụng ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Mở

Chuyển đến



Múi giờ GMT. Hiện tại là 05:37 AM.


DIỄN ĐÀN http://ketcau.com/forum NƠI HỘI TỤ CỦA CÁC KỸ SƯ KẾT CÂU VIỆT NAM
WWW.KETCAU.COM - CẦU NỐI CỦA CÁC KỸ SƯ KẾT CẤU CÔNG TRÌNH, ĐỊA KỸ THUẬT VIỆT NAM. DIỄN ĐÀN ĐƯỢC MUA BẢN QUYỀN CỦA JELSOFT ENTERPRISES Ltd. Thiết kế website