Mã nguồn mở
Cuộc thi TTVN đã có rất nhiều bài viết các bạn có thể đọc tại đây để biết thêm chi tiết.
Vấn đề này thật bức thiết đố với những nhà lập trình tin học. Mời kích vào mục sau để xim thêm chi tiết.
>>> mục 1
>>> Mục 2
>>> Mục 3
kích vào đây để đọc bài trả lời
Cám ơn bác Thuật đã quan tâm. Tôi nghĩ các bạn muốn biết nhiều về VBA trong Excel và trong Autocad thì việc đầu tiên các bạn phải có kiến thức cơ bản về "toán học rời rạc". Một môn cực kỳ khô khan nhưng tất có ích cho việc lập trình. thứ hai, Vì là VBA nên muốn học nó bạn phải biết sơ qua về lập trình VB, nếu biết sâu thì càng tốt. Biết được hai thứ đó thì việc lập trình của bạn đối với VBA thật là đơn giản. Bạn chỉ cần đọc help trong một tuần là có thể làm được những gì bạn muốn. Bạn có thể down bản mã nguồn mở TCVN3.0 do thầy Hoàng Chính Nhân - bộ môn công nghệ phần mềm - trường ĐHXD cùng với một số học trò của thầy viết do đồng nghiệp của tôi post lên trong mục BTCT của ketcau.com để tham khảo. khi đọc tất cả những thứ đó cộng với việc đọc các bài viết trong mục này, làm vài ba hàm nhỏ là bạn sẽ vững tay ngay thôi. Công việc thật là đơn giản.
Nhân đây cũng thay mặt thầy Hòa cảm ơn bác Thuật đã hỏi thăm sức khoẻ thầy Hòa. Thầy hiện nay vẫn khoẻ và rất nhàn, cuộc sống cực kỳ thanh bạch. Thầy thường xuyên lên bộ môn chơi với các bạn trẻ. Có bài nào hay trong diễn đàn tôi đều đọc cho thầy nghe. Tôi sẽ chuyển lời hỏi thăm của bác đến Thầy.
Góp ý cùng PMXD.
CNPM sắp tới không thể tham gia diễn đàn thường xuyên được, có lẽ phải hai tháng nữa. Do vậy xin góp ý cùng PMXD về mục "Mỗi tuần post một hàm excel" như sau :
1. Nhiều bạn đọc sẽ không hiểu được ý nghĩa của các hàm mình post. đơn cử như hàm UBound và LBound, và hàm cuont (của tôi). Tôi dám chắc rằng ít ai hiểu hết ít nghĩa và mối liên quan gữa 3 hàm này. Do vậy sau mỗi hàm bác nên có vài dòng giải thích về Hàm trong bài post của mình. Mà theo tôi cái này cực kỳ quan trọng.
2. Nhìn mấy bài bác post tôi cũng thấy hoa mắt. Vậy nên chăng có cách nào đó giúp người đọc dễ tiếp cận hơn. Cái này tùy bác thôi. Tôi bé tuổi nên không dám góp ý (hê hê).
Chúc vui vẻ.
__________________
CNPM
QUẢNG CÁO ĐẦU TRANG
Collapse
Thông báo
Collapse
No announcement yet.
Mỗi tuần một hàm trong Excel!
Collapse
X
-
Nên khuyến khích share và sử dụng những mã nguồn của những chương trình cơ bản
Bạn PMXD và cả CNPM mỗi tuần duy trì post được một hàm trong Excel cho anh em sử dụng như vậy thì quá tốt còn gì! Tôi nghĩ nhiều người đang học và sử dụng nó sẽ thấy rất có ích? Chỉ mất vài phút copy mà có được luôn cả code và hướng dẫn sử dụng thì còn gì tốt bằng! Tôi thì thú thực là cũng chưa có nhu cầu để sử dụng VBA, nhưng hy vọng khi nào cần đến sẽ cậy nhờ đến các bạn!!!
Hồi ở VN tôi lại hay dùng Fortran, mà lúc mới bắt đầu học thì cũng phải "cơm nắm" đi theo Thầy Hoà để học đấy! Theo tôi được biết thì hồi đó Thầy Hòa là người rất siêu về cái món này! Không biết tình hình sức khoẻ của Thầy bây giờ như thế nào rồi? Nói chung cũng mất khá nhiều công sức... để thuê máy vi tính đen trắng của trung tâm tin học và mua một đống ổ đĩa A để lưu dữ liệu (vì máy hồi đó không có ổ cứng)!!! Nhiều hôm khi bước chân vào phòng máy thì trời vẫn còn nắng chang chang, nhưng khi chui ra khỏi phòng thì trời đã tối om, thấy hoa hết cả mắt mũi! Lọ mọ như vậy sau khỏang một thời gian cũng làm xong được cái chương trình tính toán nội lực cho kết cấu khung phẳng bằng phương pháp PTHH, run được ra kết quả hẳn hoi đấy! Nghĩ lại hồi còn trẻ thấy làm việc hăng thế, chẳng kể gì đến công sức bỏ ra gì cả!!!
Tôi nghĩ là chúng ta nên khuyến khích để mọi người share cho nhau sử dụng những mã nguồn sources của những chương trình tính toán cơ bản. Làm được như vậy sẽ tiết kiệm được khá nhiều thời gian, vì những người đi sau nếu có ý tưởng gì mới thì chỉ cần viết thêm một chút là được, thay vì phải viết lại toàn bộ chương trình? Ở nước ngoài họ cũng đang phổ biến làm như vậy. Nhưng có điều là nếu người nào sử dụng phần mã nguồn mở nào thì phải ghi rõ ràng nguồn gốc của nó là từ đâu và phần mình làm được là gi, chứ không nên để xảy ra tình trạng kiện cáo như thế này mệt lắm!!!
http://www.petitiononline.com/01122004/petition.html
Leave a comment:
-
Ham Excel thu 3
Chào các bạn!
Tôi đã viết một hàm mới trong Excel gửi cho các bạn từ hôm thứ 4, sau khi gởi, tôi quê không kiểm tra lại, vậy mà không hiểu sao chẳng thấy show lên đây. Anh Huy xem giúp lại nhé!
Hôm nay tôi sẽ gởi cho các bạn hàm tính cốt thép trong dầm BTCT tiết diện chữ nhật
1- Tên hàm: Fadam
2- Các tham số trong hàm
b :Bề rộng tiết diện (m)
h :Chiều cao tiết diện (m)
M : Mô men uốn (Kgm)
MBT: Mác bê tông (măc định là 300)
LCT :Loại cốt thép (mặc định là AII)
3- Các hàm phụ trợ
Hàm BeTong: Tính toán các thông số của bê tông
Hàm CotThep: Tính toán các thông số của cốt thép
4- Nôi dung chính của hàm
'=====================================================
Function FaDam(ByVal b As Double, ByVal h As Double, ByVal M As Double, Optional MBT = 300, Optional LCT = "AII")
Dim Rn As Double, Rk As Double, Eb As Double
Dim Ra As Double, Rad As Double, Ea As Double
Dim i As Long, X As Double, ho As Double, Delta As Double, x1 As Double, x2 As Double
Dim Anpha_o As Double, A1 As Double
Dim a As Double
BeTong MBT, Rn, Rk, Eb
CotThep LCT, Ra, Rad, Ea
'Doi don vi
Rn = Rn / 10 ^ 4: Rk = Rk / 10 ^ 2
Ra = Ra / 10 ^ 4: Rad = Rad / 10 ^ 2
Anpha_o = 0.62
b = b * 100
h = h * 100 ho = h - a
ho = h - a
M = Abs(M * 100)
If M <= 1 Then FaDam = "CÊu t¹o": Exit Function
TinhLaiThepDuong:
Delta = (Rn * b * ho) ^ 2 - 2 * Rn * b * M
If Delta < 0 Then
FaDam = "CÊu t¹o"
Exit Function
End If
x1 = (-Rn * b * ho + Sqr(Delta)) / (-Rn * b)
x2 = (-Rn * b * ho - Sqr(Delta)) / (-Rn * b)
If x1 > 0 And x2 > 0 Then
If x2 < Anpha_o * ho Then
X = x2
ElseIf x1 < Anpha_o * ho Then
X = x1
End If
End If
FaDam = Rn * b * X / Ra
End Function
'=====================================================
2 hàm phụ trợ
'=====================================================
Private Sub BeTong(ByVal MBT As Long, Rn As Double, Rk As Double, Eb As Double)
' ===========================Don vi tinh toan la Kg-m====================
If MBT = 0 Then MBT = 250
Select Case MBT
Case 100
Eb = 1.7 * 10 ^ 9
Case 150
Rn = 650000
Rk = 60000
Eb = 2.1 * 10 ^ 9
Case 200
Rn = 900000
Rk = 75000
Eb = 2.4 * 10 ^ 9
Case 250
Rn = 1100000
Rk = 83000
Eb = 2.65 * 10 ^ 9
Case 300
Rn = 1300000
Rk = 100000
Eb = 2.9 * 10 ^ 9
Case 350
Rn = 1550000
Rk = 110000
Eb = 3.1 * 10 ^ 9
Case 400
Eb = 3.3 * 10 ^ 9
Case 500
Eb = 3.6 * 10 ^ 9
Case 600
Eb = 3.8 * 10 ^ 9
End Select
End Sub
Private Sub CotThep(ByVal LoaiCotThep As String, Ra As Double, Rad As Double, Ea As Double)
'don vi kg,m
Select Case LoaiCotThep
Case "CI"
Ra = 2 * 10 ^ 7
Rad = 1.6 * 10 ^ 7
Ea = 2.1 * 10 ^ 6
Case "CII"
Ra = 2.6 * 10 ^ 7
Rad = 2.1 * 10 ^ 7
Ea = 2.1 * 10 ^ 6
Case "AI"
Ra = 2.1 * 10 ^ 7
Rad = 1.7 * 10 ^ 7
Ea = 2.1 * 10 ^ 6
Case "AII"
Ra = 2.7 * 10 ^ 7
Rad = 2.15 * 10 ^ 7
Ea = 2.1 * 10 ^ 6
Case "AIII"
Ra = 3.6 * 10 ^ 7
Rad = 2.8 * 10 ^ 7
Ea = 2.1 * 10 ^ 6
End Select
If Ra = 0 Then Ra = 2.7 * 10 ^ 7: Rad = 2.15 * 10 ^ 7: Ea = 2.1 * 10 ^ 6
End Sub
'=====================================================
Chúc các bạn thành công
Leave a comment:
-
Nguyên văn bởi PMXDTo NiceShot
Rất vui khi có NiceShot tham gia Post bài cùng, nhưng tôi có vài ý kiến về hàm tính cột của bạn như thế này:
1- Bạn chưa đưa thép loại C vào trong tính toán
2- Giá trị muygt không được gán giá trị ban đầu
3- Thường thì người ta giả thiết giá trị muygt ban đầu rồi tính toán, sau đó tính lặp đến khi thỏa mãn điều kiện muytt xấp xỉ muygt thì dừng lại. Tuy nhiên trong hàm của bạn chẳng thấy một vòng lặp Do, While hay For gì cả.
Tuy nhiên, tôi cũng rất mong muốn các bạn tiếp tục hưởng ứng và post bài cùng tôi trong chủ đề này.
Leave a comment:
-
To NiceShot
Rất vui khi có NiceShot tham gia Post bài cùng, nhưng tôi có vài ý kiến về hàm tính cột của bạn như thế này:
1- Bạn chưa đưa thép loại C vào trong tính toán
2- Giá trị muygt không được gán giá trị ban đầu
3- Thường thì người ta giả thiết giá trị muygt ban đầu rồi tính toán, sau đó tính lặp đến khi thỏa mãn điều kiện muytt xấp xỉ muygt thì dừng lại. Tuy nhiên trong hàm của bạn chẳng thấy một vòng lặp Do, While hay For gì cả.
Tuy nhiên, tôi cũng rất mong muốn các bạn tiếp tục hưởng ứng và post bài cùng tôi trong chủ đề này.
Leave a comment:
-
Nguyên văn bởi Gary killercác anh có thể post luôn cả file excel ko? tải về dùng cho đỡ lằng nhằngAttached Files
Leave a comment:
-
các anh có thể post luôn cả file excel ko? tải về dùng cho đỡ lằng nhằng
Leave a comment:
-
Hàm tính toán thép cột chịu nén lệch tâm
Cũng đú làm một hàm tính toán thép cột chịu nén lệch tâm viết từ hồi còn sinh viên.
Giải thích các biến:
momen1 là momen tính toán (tm)
momen2 là momen dài hạn (tm)
axial1 là lực dọc tính toán (t)
axial2 là lực dọc dài hạn (t)
chieurong là bề rộng cột (cm)
chieucao là chiều cao cột (cm)
lopbaove là lớp bảo vệ thép (cm)
chieudai là độ dài của cột dùng để tính lệch tâm (cm)
macbt là mác bêtông 200, 250, 350, 400
macthep là mác thép AI, AII, AIII
muigt là hàm lượng cốt thép giả thiết (%)
Bác nào thử chạy xem. Tôi hỗi xưa test trên cuốn tính toán nhà công nghiệp BTCT thấy cũng đúng.
-----------------------------------------------------------------
Function thepcot(momen1 As Double, momen2 As Double, axial1 As Double, axial2 As Double, chieurong As Double, chieucao As Double, lopbv As Double, chieudai As Double, macbt As Integer, macthep As String, muigt As Double) As Double
Dim hzero, lzero, Ja, Jb, ezero, S, Kdh, Nth, neta, ezerogh, dolechtam, giatri_x, giatri_x_p As Double
If macbt = 200 Then
Rn = 90
anfa = 0.62
Azero = anfa * (1 - 0.5 * anfa)
Eb = 240000
ElseIf macbt = 250 Then
Rn = 110
anfa = 0.58
Azero = anfa * (1 - 0.5 * anfa)
Eb = 265000
ElseIf macbt = 300 Then
Rn = 130
anfa = 0.58
Azero = anfa * (1 - 0.5 * anfa)
Eb = 290000
ElseIf macbt = 350 Then
Rn = 150
anfa = 0.55
Azero = anfa * (1 - 0.5 * anfa)
Eb = 310000
Else
Rn = 200
anfa = 0.62
Azero = anfa * (1 - 0.5 * anfa)
Eb = 240000
End If
Ea = 2100000
If macthep = "AI" Then
Ra = 2100
ElseIf macthep = "AII" Then
Ra = 2700
ElseIf macthep = "AIII" Then
Ra = 3600
Else
Ra = 2700
End If
'Than chuong trinh
hzero = chieucao - lopbv
lzero = chieudai * 0.7
Ja = muigt / 100 * chieurong * hzero * (0.5 * chieucao - lopbv) ^ 2
Jb = chieurong * chieucao ^ 3 / 12
If chieucao / 25 < 2 Then
ezero = 100 * Abs(momen1) / axial1 + 2
Else
ezero = 100 * Abs(momen1) / axial1 + chieucao / 25
End If
If ezero / chieucao < 0.05 Then
S = 0.84
ElseIf ezero / chieucao > 5 Then
S = 0.122
Else
S = 0.11 / (0.1 + ezero / chieucao) + 0.1
End If
If momen1 * momen2 < 0 Then
Kdh = 1 + (-Abs(momen2) * 100 + axial2 * (0.5 * chieucao - lopbv)) / (Abs(momen1) * 100 + axial1 * (0.5 * chieucao - lopbv))
Else
Kdh = 1 + (Abs(momen2) * 100 + axial2 * (0.5 * chieucao - lopbv)) / (Abs(momen1) * 100 + axial1 * (0.5 * chieucao - lopbv))
End If
If Kdh < 1 Then
Kdh = 1
End If
Nth = 6.4 / lzero ^ 2 * (S * Eb * Jb / Kdh + Ea * Ja) / 1000
neta = 1 / (1 - axial1 / Nth)
dolechtam = neta * ezero + 0.5 * chieucao - lopbv
ezerogh = 0.4 * (1.25 * chieucao - anfa * hzero)
giatri_x = axial1 * 1000 / chieurong / Rn
If giatri_x > 2 * lopbv And giatri_x <= anfa * hzero Then
thepcot = axial1 * 1000 * (dolechtam - hzero + 0.5 * giatri_x) / Ra / (hzero - lopbv)
ElseIf giatri_x < 2 * lopbv Then
dolechtam_p = dolechtam - hzero + lopbv
thepcot = axial1 * 1000 * dolechtam_p / Ra / (hzero - lopbv)
Else
If ezero > ezerogh Then
giatri_x = anfa * hzero
thepcot = (axial1 * 1000 * dolechtam - Azero * Rn * chieurong * hzero ^ 2) / Ra / (hzero - lopbv)
Else
giatri_x = 1.8 * (ezerogh - ezero) + anfa * hzero
thepcot = (axial1 * 1000 * dolechtam - Rn * chieurong * giatri_x * (hzero - 0.5 * giatri_x)) / Ra / (hzero - lopbv)
End If
End If
End Function
Leave a comment:
-
Hi every body!
Từ hôm Post hàm Excel Nội suy đến bây giờ mới có một người phản hồi kết quả, Dù sao PMXD tôi cũng thấy hài lóng rồi. Hôm nay, như đã hứa, tôi xin đăng một hàm Excel mới phục vụ cho việc tính toán nội lực bản (theo giáo trình BTCT).
'==========================Giải thích các thông số
Tên hàm:
Mban
Các tham số:
P: Lực phân bố trên bản sàn (T/m2)
L1: Chiều dài cạnh 1 (m)
L2: Chiều dài cạnh 2 (m)
Mtrave: Loại Mô men được trả về
Mtrave=1 => M11
Mtrave=2 => M12
Mtrave=3 => M21
Mtrave=4 => M22
Mtrave=5 => M1
Mtrave=6 => M2
(Các giá tri M1, M2, M11, M12, M21, M22 xin xem ở hình vẽ kèm theo)
Thanh1,Thanh2,Thanh3,Thanh4: Thuộc tính dùng để kiểm tra xem có dầm ở các cạnh của bản hay không.Nếu người dùng không vào các tham số này thì hàm sẽ tự hiểu là có dầm.
'===========================Nội dung hàm
Enum Mtrave
TV_M11 = 1
TV_M12 = 2
TV_M21 = 3
TV_M22 = 4
TV_M1 = 5
TV_M2 = 6
End Enum
Function Mban(ByVal P As Double, ByVal L1 As Double, L2 As Double, ByVal Mtrave As Mtrave, Optional Thanh1 = True, Optional Thanh2 = True, Optional Thanh3 = True, Optional Thanh4 = True)
Dim r As Double
Dim TeTa As Double
Dim A1 As Double, B1 As Double, A2 As Double, B2 As Double
Dim M1 As Double, M11 As Double, M12 As Double
Dim M2 As Double, M21 As Double, M22 As Double
Dim MauSo As Double
If L1 > L2 Then
r = L1 / L2
If r >= 1 And r < 1.5 Then
TeTa = 1 + (r - 1) * (0.5 - 1) / (1.5 - 1)
A1 = IIf(Thanh1 = True, 1.2 + (r - 1) * (1.2 - 1) / (1.5 - 1), 0)
B1 = IIf(Thanh3 = True, 1.2 + (r - 1) * (1.2 - 1) / (1.5 - 1), 0)
A2 = IIf(Thanh4 = True, 1 + (r - 1) * (1.8 - 1) / (1.5 - 1), 0)
B2 = IIf(Thanh2 = True, 1 + (r - 1) * (1.8 - 1) / (1.5 - 1), 0)
ElseIf r >= 1.5 And r < 2 Then
TeTa = 0.6 + (r - 1.5) * (0.3 - 0.6) / (2 - 0.5)
A1 = IIf(Thanh1 = True, 1, 0)
B1 = IIf(Thanh3 = True, 1, 0)
A2 = IIf(Thanh4 = True, 0.8 + (r - 1) * (0.5 - 0.8) / (1.5 - 1), 0)
B2 = IIf(Thanh2 = True, 0.8 + (r - 1) * (0.5 - 0.8) / (1.5 - 1), 0)
End If
MauSo = (2 + A1 + B1) * L1 + (2 * TeTa + A2 + B2) * L2
M2 = P * L1 ^ 2 * (3 * L1 - L1) / 12 / MauSo 'He Don vi la Kg-m
M1 = TeTa * M2
M11 = A2 * M2
M12 = B2 * M2
M21 = A1 * M2
M22 = B1 * M2
Else
r = L2 / L1
If r >= 1 And r < 1.5 Then
TeTa = 1 + (r - 1) * (0.5 - 1) / (1.5 - 1)
A1 = IIf(Thanh2 = True, 1.2 + (r - 1) * (1.2 - 1) / (1.5 - 1), 0)
B1 = IIf(Thanh4 = True, 1.2 + (r - 1) * (1.2 - 1) / (1.5 - 1), 0)
A2 = IIf(Thanh1 = True, 1 + (r - 1) * (1.8 - 1) / (1.5 - 1), 0)
B2 = IIf(Thanh3 = True, 1 + (r - 1) * (1.8 - 1) / (1.5 - 1), 0)
ElseIf r >= 1.5 And r < 2 Then
TeTa = 0.6 + (r - 1.5) * (0.3 - 0.6) / (2 - 0.5)
A1 = IIf(Thanh2 = True, 1, 0)
B1 = IIf(Thanh4 = True, 1, 0)
A2 = IIf(Thanh1 = True, 0.8 + (r - 1) * (0.5 - 0.8) / (1.5 - 1), 0)
B2 = IIf(Thanh3 = True, 0.8 + (r - 1) * (0.5 - 0.8) / (1.5 - 1), 0)
End If
MauSo = (2 + A1 + B1) * L2 + (2 * TeTa + A2 + B2) * L1
M1 = P * L1 ^ 2 * (3 * L2 - L1) / 12 / MauSo 'He Don vi la Kg-m
M2 = TeTa * M1
M11 = A1 * M1
M12 = B1 * M1
M21 = A2 * M1
M22 = B2 * M1
End If
Select Case Mtrave
Case TV_M1
Mban = M1
Case TV_M11
Mban = M11
Case TV_M12
Mban = M12
Case TV_M2
Mban = M2
Case TV_M21
Mban = M21
Case TV_M22
Mban = M22
End Select
End Function
'===========================Chúc vui vẻ
To Garry Killer:
Em hỏi anh hàm Ubound nghĩa là gì phải không? Hàm Ubound là hàm trả về số thứ tự của phần tử cuối cùng trong mảng.
Ví dụ, khi ta khai báo mảng Vietanh(0 to 5) thì Ubound(VietAnh)=5
Cũng cần chú ý nếu ta khai báo VietAnh(2 to 5) thì Ubound(VietAnh) cũng =5.
Leave a comment:
-
Nguyên văn bởi PMXDSorry mọi người!
Hôm nay đáng ra là ngày tôi Post hàm thứ 2 của VBA trong Excel, nhưng từ sáng đến giờ đi hội thảo Kết cấu thép ở Melia Hotel nên chưa Post được. Sáng ngày mai tôi sẽ Post lên một hàm mới, anh em cố gắng chờ đợi nhé.
Mà mọi người trong diễn đàn sao không có câu hỏi gì cho vấn đề này nhỉ, cả cái bảng Excel tôi Post lên hôm trước anh em có dùng được không? Nếu có ai quan tâm thì lên tiếng nhé, tất cả vì sự phát triển chung thôi mà.
Leave a comment:
-
Sorry mọi người!
Hôm nay đáng ra là ngày tôi Post hàm thứ 2 của VBA trong Excel, nhưng từ sáng đến giờ đi hội thảo Kết cấu thép ở Melia Hotel nên chưa Post được. Sáng ngày mai tôi sẽ Post lên một hàm mới, anh em cố gắng chờ đợi nhé.
Mà mọi người trong diễn đàn sao không có câu hỏi gì cho vấn đề này nhỉ, cả cái bảng Excel tôi Post lên hôm trước anh em có dùng được không? Nếu có ai quan tâm thì lên tiếng nhé, tất cả vì sự phát triển chung thôi mà.
Leave a comment:
-
Tôi có mỗi quyển Programming VBA with AutoCAD không có sách tiếng việt.
Leave a comment:
-
Chào các bác
Sao cái font tiếng việt nó lỗi quá, Dùng IE thì lúc đánh được tiếng việt lúc lại không đánh được. Dùng các trình duyệt khác như My IE, Mozoilla Fireox thì bó tay vì không đánh được tiếng việt.
Em cũng rất muốn học VBA nhưng trình độ còn hạn chế quá. Em kể cho các bác nghe chuyện em tiếp cận với VBA trong Excel như thế nào nhé. Ngày xưa khi em còn học đại học. Em thường lên thư viện trường mình (ĐHXD) kiếm quyển PC world, trong đó có những ví dụ như hai bác CNPM và PMXD viết, ngày đó tôi đem nó vào góc phòng, rồi quay đi quay lại không thấy ai là xé lấy tờ đó, đút vô túi áo, mang về nhà đánh vô excel và chạy thử. Và dần dần tui cũng học được một ít. Nay thấy trên diễn đàn có mục này hay quá, cảm ơn máy bro đã san sẻ kiến thức của mình cho mọi người.
Thực ra trong diễn đàn có rất ít người post bài, vì những người vừa mới ra trường kinh nghiệm không có nhiều, mặc dù rất thích trang Web nhưng biết post gì bây giờ, chỉ còn biết lẳng lặng chờ các bài viết của bro, đọc và suy ngẫm. Một cách đánh giá "số người quan tâm đến chủ một đề" một cách rất đơn giản đó là đọc số lần truy cập đến chủ đề, số lần tải các file đính kèm. Chứ không phải không có ai nói gì thì đồng nghĩa với việc chủ đề này ít người quan tâm bác PMXD ạ.
Tôi rất thích chuyên mục này và mong các bro post nhiều hơn nữa. Nếu có thế PMXD và CNPM cho em biết tên một số sách viết về VBA trong CAD cũng như trong Excel, có tiếng việt thì tốt quá, còn không thì TA cũng được. Cảm ơn các bác nhiều.
-----------------------
Chúc mọi người vui vẻ.
-----------------------
Leave a comment:
-
To CNPM:
Anh thấy chú cũng hiểu nhiều về VBA đấy, chú cứ post VBA cho AutoCad đi, mảng đó cũng nhiều cái hay lắm. Hiện nay các công việc vẽ vời anh cũng đã viết được khá nhiều bằng VBA for Cad rồi. Nếu có điều kiện chúng ta sẽ trao đổi thêm nhé.
Nhân đây, tôi cũng xin kể một câu chuyện ngoài lề về quá trình tôi tiếp cận với VBA for CAd để anh em Relax.
Ngày đó, khi mới ra trường, trong tay chỉ có chút ít kiến thức cơ bản của trường đào tạo cộng thêm vài kỹ năng lập trình VB. Tôi thiết nghĩ phải làm thế nào tạo cho mình một thế mạnh riêng trong công việc. Và cuối cùng, tôi đã quyết định nghiên cứu về lĩnh vực tự: động thiết kế với AutoCad. Nói như vậy nghe có vẻ ghê gớm chứ thực ra là lập trình để vẽ với AutoCad. Với cách nghĩ như vậy, tôi đã cất công tìm hiểu các phương pháp để thực hiện và tổng kết lại gồm các phương pháp sau:
1. Viết bằng ngôn Lisp: Phương pháp này đơn giản, dùng được cho mọi Version của Cad, dễ học và cũng thuận tiện. Tuy nhiên nó không thể lập được những ứng dụng lớn và còn nhiều hạn chế khác. Do vậy tôi cũng không đi sâu tiếp để nghiên cứu nó.
2. Viết bằng ngôn ngữ C++ để tạo ra các file *.arx: Đây là cách chuyên nghiệp nhất(theo ý kiến của riêng tôi) để viết một ứng dụng chạy trong Cad. Nó cho phép người lập trình can thiệp rất sâu vào các đối tượng của Cad, tốc độ chạy chương trình thì miễn chê. Cũng chính vì vậy, việc học nó cũng như sử dụng thành thạo là rất khó khăn. Tôi đã từng đổ mồ hôi viết một đoạn Arx để vẽ một đường thẳng trong CAd, nghĩ lại vẫn thấy khiếp.
3. Viết bằng VBA(Visual Basic for Application): Cuối cùng thì tôi cũng lựa chọn phương án này vì dù sao VB cũng là công cụ ruột của tôi. Đọc các tài liệu về VBA trong AutoCad tôi đã thấy việc sử dụng nó tương đối thuận tiện, cho phép lập các ứng dụng lớn, tốc độ cũng không đến nỗi nào.
Tuy nhiên, mọi chuyện không chỉ đơn giản như vậy, lí do chính vì thời đó vẫn đang thịnh hành Cad14. Mà phiên bản này chưa được hỗ trợ VBA nhiều, đặc biệt là môi trường lập trình. Do đó, khi tôi lập VBA cho Cad14 tôi phải lập từ bên ngoài và "Điều khiển" Cad chạy từ xa. Tôi đã mất 1 năm(không hề nói sai) để dùng VB điều khiển Cad vẽ một đoạn thẳng có tọa độ từ (0,0,0) đến tọa độ (100,0,0). Nghĩ lại thấy cũng tội nghiệp cho bản thân, giá như ngày đó có Cad2000 thì chắc không mất nhiều thời gian đến vậy(Các bác nên biết rằng VBA chỉ support cho Cad2000 trở lên). Tuy nhiên, đó cũng là bước đánh dấu thời điểm tôi đến với VBA, và cũng chẳng có gì đáng tiếc khi ta bỏ công sức cho sự hiểu biết phải không các bác.
Thôi đến giờ cơm rồi, để lúc khác tiếp tục nhé, ở Viện tôi xuống chậm chân là hết cơm, đói bụng=> Kết cấu không thể bền vững được.
Leave a comment:
-
To Anh Huy
Anh hỏi khó quá, em sẽ cố gắng nhưng kiếm cho em ít việc làm tạm kiếm sống đã, hihi. Có PMXD rồi, em chuyển sang VBA trong CAD vậy
Có ai cần Sap 9.03 thì liên hệ với tôi nhé, lấy rẻ 2 cốc cafe thôi. Hoặc đến chõ anh Huy lấy cũng được, anh Huy nhểy.
Leave a comment:
Quảng cáo cuối trang
Collapse
Leave a comment: