Microsoft office สามารถ ฝัง โปรแกรม dll เข้าไปใน Excel ได้เลยทำให้ง่ายต่อการ แจกจ่ายโปรแกรม ใน Excel โดยใช้ได้ตั้งแต่ Office 2010 .เมื่อสั่ง Build จะสร้าง Worksheet นามสกุล .xlsx ให้
ขั้นตอน
ต้องไป ติดตั้ง ใน Visual Studio 2017 ก่อน และเลือก Addins ของ Office
สำหรับ โปรแกรม Excel ต้อง Enable ใน Addin
File->Options->Addins->Manage->Com Add-ins และ กด "GO"
และ Enable
"Visual Studio Tools for Office Design-Time Adaptor for Excel"
จาก นั้น ก็จะสามารถ New project ใน Visual Studio 2017
ได้ อาจจะมีปัญหาใน ครั้งแรกที่เปิด เวลา ใส่ Control เช่น ปุ่ม Buttonใน Excel Sheet
ให้ปิดและเปิด project ใหม่
จากนั้น ก็จะสามารถใช้ ได้ เป็นปรกติ สำหรับการ Access work sheet ให้ไปดู Googleใน
CodeProject excel VSTO
class สำคัญ ได้แก่
Excel.Application เป็น Top Level App
Excel.Workbook เป็น Work book ที่จัดเก็บ
Excel.WorkSheet เป็นหน้าของ Sheet ที่กำลังทำงาน
วันพุธที่ 16 มกราคม พ.ศ. 2562
วันอาทิตย์ที่ 6 มกราคม พ.ศ. 2562
สร้าง Dynamic Mass จาก Dynamo เพื่อหาพื้นที่พื้นใช้สอย
มีตัวอย่าง จำนวนมาก ที่แสดง การใช้ Dynamo ในการ สร้าง Solid แต่ มักจะไม่ได้แสดง การ ทำ Mass model ที่สามารถทำเป็น Mass ใน Model
วิธีการที่แสดง นี้ จะเป็นการสร้าง Mass Model โดยการ Save เป็น SOLID .SAT ที่เป็น Standard หนึ่งของ 3D Spatial สามารถส่งได้หลาย Software ทั้ง Autocad, 3DS หรือ Solidwork...
อย่างแรก ต้องไป Download Dynamo มาติดตั้งใน Revit ก่อน
ที่
http://dynamobim.org/download/
ถ้าใน Revit Version ใหม่ จะมี ใน การติดตั้งแล้ว
เมื่อ New Project แล้วให้ กดที่
Manage->Dynamo และตั้งการ Run ให้เป็น Manual
การสร้าง Object ให้ สร้างจาก Point
ให้ พิมพ์ Point ที่ช่อง Search แล้ว Click Point.ByCoordinates
หมายถึงว่า เป็นจุด เป็น ค่า X,Y,Z
สำหรับการใส่ค่า ให้เรียก ว่า Number จะมี 2 แบบ คือ ใส่ค่า ตรงๆ กับ เป็น Slide เลือก เป็น Slide ก็ได้
ข้อควรจำคือ ถ้า Default ของ Dynamo จะเป็น foot แบบ US นะครับ ต้องระบุใน Unit ของ แบบอีกที
แล้ว เชื่อมโดยกดที่ลูกศร > มาเชื่อมกัน
จากนั้นให้วาง จุด อีกจุด โดยให้ Z ขึ้นไป 20 ฟุต
แล้ว เลือก Circle วางทีจุด และ ใส่ Number เป็น รัศมี เมื่อวางทั้งหมด แล้ว ให้มาต่อเป็น List การเพิ่มรายการให้กดที่ +
แล้วไปเลือกการสร้าง solid จาก loft ค้น จาก loft มารับจาก List
สำหรับ การ Export ไป Sat ให้ค้น Export จะมี 2 ตัว เอารูปที่เป็น 3D ถ้าเป็น 2d จะส่งไปได้แต่จะไม่มี มวล สำหรับ File ให้เลือก filepath และ Browse ใส่ชื่อ ให้ลงนามสกุล .sat เช่น model1.sat เป็นต้น
เมื่อ Run จะ ได้รูป และ Save ลง โฟล์ model1.sat ใน Revit ก็จะแสดง เป็น Model แต่จะใช้ไม่ได้ เป็น รูป ลอยๆ
นำ Model มาใช้งาน
ให้ new family เลือก Conceptual Mass -> Metric Mass
เลือก Insert->From cad และ เลือก เป็น SAT
ถ้าต้องการเปลี่ยนหน่วยให้ใส่ที่นี้ ไม่ต้องเปลี่ยน (2017พบว่าเปลี่ยนแล้วจะ Explode ไม่ได้)
ถ้าเป็น Revit 2017 ต้อง Partial Explode หรือ Full ก็ได้ ใน 2019 ไม่ต้อง load into project ได้เลย
แล้ว ลอง Upload ไป Model ดู เมื่อกด จะแสดง Mass floor สามารถตัดทำ Floor ได้ทันที่ และสามารถ Apply Floor เพื่อคำนวนพื่นที่ใช้สอย ได้ ถ้าต้องการเปลี่ยน Model ก็ให้ กลับไปที่ Family และ ทำการ Replace file sat ใหม่ และ upload เข้า Project ก็จะได้รูปร่างใหม่
ทั้ง Project
วิธีการที่แสดง นี้ จะเป็นการสร้าง Mass Model โดยการ Save เป็น SOLID .SAT ที่เป็น Standard หนึ่งของ 3D Spatial สามารถส่งได้หลาย Software ทั้ง Autocad, 3DS หรือ Solidwork...
อย่างแรก ต้องไป Download Dynamo มาติดตั้งใน Revit ก่อน
ที่
http://dynamobim.org/download/
ถ้าใน Revit Version ใหม่ จะมี ใน การติดตั้งแล้ว
เมื่อ New Project แล้วให้ กดที่
Manage->Dynamo และตั้งการ Run ให้เป็น Manual
การสร้าง Object ให้ สร้างจาก Point
ให้ พิมพ์ Point ที่ช่อง Search แล้ว Click Point.ByCoordinates
หมายถึงว่า เป็นจุด เป็น ค่า X,Y,Z
สำหรับการใส่ค่า ให้เรียก ว่า Number จะมี 2 แบบ คือ ใส่ค่า ตรงๆ กับ เป็น Slide เลือก เป็น Slide ก็ได้
ข้อควรจำคือ ถ้า Default ของ Dynamo จะเป็น foot แบบ US นะครับ ต้องระบุใน Unit ของ แบบอีกที
แล้ว เชื่อมโดยกดที่ลูกศร > มาเชื่อมกัน
จากนั้นให้วาง จุด อีกจุด โดยให้ Z ขึ้นไป 20 ฟุต
แล้ว เลือก Circle วางทีจุด และ ใส่ Number เป็น รัศมี เมื่อวางทั้งหมด แล้ว ให้มาต่อเป็น List การเพิ่มรายการให้กดที่ +
แล้วไปเลือกการสร้าง solid จาก loft ค้น จาก loft มารับจาก List
สำหรับ การ Export ไป Sat ให้ค้น Export จะมี 2 ตัว เอารูปที่เป็น 3D ถ้าเป็น 2d จะส่งไปได้แต่จะไม่มี มวล สำหรับ File ให้เลือก filepath และ Browse ใส่ชื่อ ให้ลงนามสกุล .sat เช่น model1.sat เป็นต้น
เมื่อ Run จะ ได้รูป และ Save ลง โฟล์ model1.sat ใน Revit ก็จะแสดง เป็น Model แต่จะใช้ไม่ได้ เป็น รูป ลอยๆ
นำ Model มาใช้งาน
ให้ new family เลือก Conceptual Mass -> Metric Mass
เลือก Insert->From cad และ เลือก เป็น SAT
ถ้าต้องการเปลี่ยนหน่วยให้ใส่ที่นี้ ไม่ต้องเปลี่ยน (2017พบว่าเปลี่ยนแล้วจะ Explode ไม่ได้)
ถ้าเป็น Revit 2017 ต้อง Partial Explode หรือ Full ก็ได้ ใน 2019 ไม่ต้อง load into project ได้เลย
แล้ว ลอง Upload ไป Model ดู เมื่อกด จะแสดง Mass floor สามารถตัดทำ Floor ได้ทันที่ และสามารถ Apply Floor เพื่อคำนวนพื่นที่ใช้สอย ได้ ถ้าต้องการเปลี่ยน Model ก็ให้ กลับไปที่ Family และ ทำการ Replace file sat ใหม่ และ upload เข้า Project ก็จะได้รูปร่างใหม่
ทั้ง Project
วันพฤหัสบดีที่ 20 ธันวาคม พ.ศ. 2561
Azure SQL Server Cloud กับภาษาไทย
Azure SQL Server เป็นระบบ Cloud โดยที่ไม่ต้องมี Server แต่ใช้ Cloud ของ Microsoft แทน โดยให้ฟรีถ้า Database ไม่เกิน 250 Mbyte (ถ้าเป็นตัวหนังสือ ส่วนมากไม่เกิน 100 Mbyte)
SQL Server เป็น Version ล่าสุด 2017 โดยการสร้าง Database จะ Default เป็น us_english การเปลี่ยนภาษาไทย จะต้องใช้ Command query ใหม่
ต้อง Connect กับ SQL server cloud ก่อน ใช้ SQL Management studio
connection site เช่น
mybookname.database.windows.net,1433
และตามด้วย username,password
1433 หมายถึง SQL Server standard port
ใช้ SQL Management แล้วสร้าง query
1. Check ภาษาปัจจุบัน
select @@language
2. ดูว่า Keyword ที่จะเปลี่ยนมีอะไรบ้าง
exec sp_helplanguage
Go
3. ตั้งค่า ภาษาไทย
set Language 'Thai'
4 สำคัญมาก ต้อง Create Database ด้วย THAI_CI_AS
Note การ Connect กับ Server ต้อง Allow Firewall ต้องเข้าไปที่ Database ที่ตั้งอยู่
และ Add Current IP กับ Save
การ Transfer data สามารถใช้ Import Export Tool ของ SQL Sever 2017 Management ได้
แต่มีข้อที่สำคัญมาก ในการ Transfer Table จาก Tool Management Table Field ไม่ compatible ในบาง Field เช่น nullable เป็นต้น
SQL Server เป็น Version ล่าสุด 2017 โดยการสร้าง Database จะ Default เป็น us_english การเปลี่ยนภาษาไทย จะต้องใช้ Command query ใหม่
ต้อง Connect กับ SQL server cloud ก่อน ใช้ SQL Management studio
connection site เช่น
mybookname.database.windows.net,1433
และตามด้วย username,password
1433 หมายถึง SQL Server standard port
ใช้ SQL Management แล้วสร้าง query
1. Check ภาษาปัจจุบัน
select @@language
2. ดูว่า Keyword ที่จะเปลี่ยนมีอะไรบ้าง
exec sp_helplanguage
Go
3. ตั้งค่า ภาษาไทย
set Language 'Thai'
4 สำคัญมาก ต้อง Create Database ด้วย THAI_CI_AS
CREATE DATABASE TestDB
COLLATE THAI_CI_AS;
GO
Note การ Connect กับ Server ต้อง Allow Firewall ต้องเข้าไปที่ Database ที่ตั้งอยู่
และ Add Current IP กับ Save
การ Transfer data สามารถใช้ Import Export Tool ของ SQL Sever 2017 Management ได้
แต่มีข้อที่สำคัญมาก ในการ Transfer Table จาก Tool Management Table Field ไม่ compatible ในบาง Field เช่น nullable เป็นต้น
นำ Section เหล็กจาก Robot มาใช้ใน Revit
Revit มี Family ของ Section เหล็กจำนวนไม่มาก แต่ ใน Robot Structure มีหลาย พัน แบบและมีค่า Parameter ของการคำนวน Structure เสร็จในตัว ดังนั้น ในการออกแบบ BIM ให้ คำนวนได้ เลย ก็ควรจะใช้ Family ที่ Generate จาก Robot มาที่ Revit
วิธีการทำงาน
ให้ เขียนเหล็ก จาก column ใน Revit เป็นตัวอย่าง ง่ายๆ
จากนั้นส่ง ไปที่ Analyze->Robot Structural Analysis Link ส่ง Send
กด เปิด และเลือก เพิ่ม แบบที่ต้องการ เลือกที่แสดงรูป(Display) จะดีเพราะมีจำนวนมาก
แล้วเลือกที่เสา เปลี่ยนเป็นแบบที่ต้องการ
กลับไปที่ Revit กด Analyze->Robot Strutural Analysis Link และ เลือก Update
จะได้ รูปใหม่โดยที่จะสร้าง Family ชื่อตาม ชนิดของเหล็ก และ เหล็กนี้ จะนำไปคำนวนใน Robot ได้ สามารถ Save Family ได้
วิธีการทำงาน
ให้ เขียนเหล็ก จาก column ใน Revit เป็นตัวอย่าง ง่ายๆ
จากนั้นส่ง ไปที่ Analyze->Robot Structural Analysis Link ส่ง Send
ใน Robot จะแสดง กดที่ Show section ด้านล่าง
ไปที่ Section ที่ เมนูด้าน ขวา(สังเกตุที่ลูกศร)
แล้วเลือกที่เสา เปลี่ยนเป็นแบบที่ต้องการ
กลับไปที่ Revit กด Analyze->Robot Strutural Analysis Link และ เลือก Update
จะได้ รูปใหม่โดยที่จะสร้าง Family ชื่อตาม ชนิดของเหล็ก และ เหล็กนี้ จะนำไปคำนวนใน Robot ได้ สามารถ Save Family ได้
สร้าง OneWay Slab จาก Floor Revit ไป Robot
ใน Revit จะมี Floor แต่การคำนวนจะเป็น Mesh โดยคำนวนเป็นแผ่น เมื่อดู Deform จะเห็นแอ่นกลาง
กรณีที่เป็น Oneway Slab จะต้องกำหนดใน Robot ใน Revit ไม่มี Parameter นี้(มีเวลาจะเขียนให้)
การทำ ต้องไปกำหนดที่ Geometry -> Properties->Panel Calculation Model
จะมี Oneway Slab ให้เลือก
เลือก Panel จาก Object Inspector ตามตัวเลข
และ เลือกทิศจาก Local Panel Direction
เลือก Defintion.. และ Cartesian และ กดเลือก Vector ทิศที่เป็นคานวาง เลือก Panel number เดิม
คำนวนใหม่
ผลจะเปลี่ยน โดยด้านที่ไม่มีคานจะแอ่นลง
การส่งข้อมูลคำนวน จาก Robot Structure analysis ไปที่ text .CVS
ให้กดเมาวส์ขวา และ เลือก Export to CVS
ตัวอย่าง code โดย VB เป็น Com Register
Private Sub CommandButton1_Click()
Dim RobApp As RobotApplication
Set RobApp = New RobotApplication
Dim t As RobotTable
Dim tf As RobotTableFrame
Dim path As String
Dim Fullpath As String
Dim FName As String
path = Environ$("temp")
Dim nTables As Long
nTables = RobApp.Project.ViewMngr.TableCount
If nTables = 0 Then
MsgBox "No table opened"
Exit Sub
End If
For I = 1 To nTables
Set tf = RobApp.Project.ViewMngr.GetTable(I)
FName = tf.Window.Caption
spacepos = InStr(1, FName, " ")
If spacepos <> 0 Then
FName = Left(FName, spacepos)
End If
ntabs = tf.Count
For j = 1 To ntabs
tf.Get(j).Window.Activate
Set t = tf.Get(j)
tf.Current = j
tabname = tf.GetName(j)
DoEvents
Fullpath = path + "\" + FName + tabname + ".csv"
t.Printable.SaveToFile Fullpath, I_OFF_TEXT
NP = Shell("C:\WINDOWS\notepad.exe " + Fullpath, vbNormalFocus)
AppActivate NP
SendKeys "%ER", 1
'replacing decimal separator
SendKeys ",", 1
SendKeys "{TAB}", 1
SendKeys ".", 1
''''''''''''''''''''''''''''
SendKeys "%A", 1
SendKeys "%{F4}", 1
SendKeys "%ER", 1
'replacing column separator
SendKeys ";", 1
SendKeys "{TAB}", 1
SendKeys ",", 1
'''''''''''''''''''''''''''
SendKeys "%A", 1
SendKeys "%{F4}", 1
SendKeys "%FA", 1
SendKeys Fullpath, 1
SendKeys "%E", 1
SendKeys "{DOWN}", 1
SendKeys "{DOWN}", 1
SendKeys "{UP}", 1
SendKeys "{UP}", 1
SendKeys "{UP}", 1
SendKeys "{ENTER}", 1
SendKeys "%S", 1
SendKeys "%Y", 1
SendKeys "%FX", 1
DoEvents
Workbooks.Open Fullpath
Next j
Next I
MsgBox "Dumping finished"
Set RobApp = Nothing
End Sub
ตัวอย่าง code โดย VB เป็น Com Register
Private Sub CommandButton1_Click()
Dim RobApp As RobotApplication
Set RobApp = New RobotApplication
Dim t As RobotTable
Dim tf As RobotTableFrame
Dim path As String
Dim Fullpath As String
Dim FName As String
path = Environ$("temp")
Dim nTables As Long
nTables = RobApp.Project.ViewMngr.TableCount
If nTables = 0 Then
MsgBox "No table opened"
Exit Sub
End If
For I = 1 To nTables
Set tf = RobApp.Project.ViewMngr.GetTable(I)
FName = tf.Window.Caption
spacepos = InStr(1, FName, " ")
If spacepos <> 0 Then
FName = Left(FName, spacepos)
End If
ntabs = tf.Count
For j = 1 To ntabs
tf.Get(j).Window.Activate
Set t = tf.Get(j)
tf.Current = j
tabname = tf.GetName(j)
DoEvents
Fullpath = path + "\" + FName + tabname + ".csv"
t.Printable.SaveToFile Fullpath, I_OFF_TEXT
NP = Shell("C:\WINDOWS\notepad.exe " + Fullpath, vbNormalFocus)
AppActivate NP
SendKeys "%ER", 1
'replacing decimal separator
SendKeys ",", 1
SendKeys "{TAB}", 1
SendKeys ".", 1
''''''''''''''''''''''''''''
SendKeys "%A", 1
SendKeys "%{F4}", 1
SendKeys "%ER", 1
'replacing column separator
SendKeys ";", 1
SendKeys "{TAB}", 1
SendKeys ",", 1
'''''''''''''''''''''''''''
SendKeys "%A", 1
SendKeys "%{F4}", 1
SendKeys "%FA", 1
SendKeys Fullpath, 1
SendKeys "%E", 1
SendKeys "{DOWN}", 1
SendKeys "{DOWN}", 1
SendKeys "{UP}", 1
SendKeys "{UP}", 1
SendKeys "{UP}", 1
SendKeys "{ENTER}", 1
SendKeys "%S", 1
SendKeys "%Y", 1
SendKeys "%FX", 1
DoEvents
Workbooks.Open Fullpath
Next j
Next I
MsgBox "Dumping finished"
Set RobApp = Nothing
End Sub
โปรแกรม Robot Structure ใช้แล้ว Dialog ใน RC Reinforcement หาย
Dialog ของ RC Reinforcement ของ Autodesk Robot structure ถ้าปิดไปแล้ว มักจะหาไม่เจอว่าจะเปิดอย่างไร เช่น
ในถาพ Section Dialog หายไป
วิธีแก้ให้เรียก Tools->Customize->Open Layout from Template จะเรียก กลับมา
ในถาพ Section Dialog หายไป
วิธีแก้ให้เรียก Tools->Customize->Open Layout from Template จะเรียก กลับมา
สมัครสมาชิก:
บทความ (Atom)


























