วันพุธที่ 23 กันยายน พ.ศ. 2563

การใช้คำสั่งNosql Mongodb แบบง่ายๆ

 Mongodb เป็น Database NoSQL ที่นิยมที่สุดในปัจจุบัน มีทั้ง Free และเสียเงิน การติดตั้ง ทำได้ง่ายมาก สามารถติดตั้งใน Web ได้ ทันที โดยไปที่ 

https://docs.mongodb.com/manual/administration/install-community/

และการติดตั้ง ต้องติดตั้ง Command line Tool ด้วย 


สำหรับ การ เรียกใช้ หรือสร้าง database ใชัคำสั่ง use

use test

เป็นต้น

สำหรบ Table จะไม่มี mongodb เรียก collection 

db.createCollection("sampledata")

db.sampledata.insert({ id:1,name:"hello"})


วิธี Query

db.sampledata.find() เป็นการค้นทังหมด และ กด it แสดงต่อ

db.sampledata.find({id:2},{name:1}) เป็นการค้นหา id=2 และแสดง ค่า



วันพุธที่ 26 สิงหาคม พ.ศ. 2563

การติดต่อ ระหว่าง Gridview ของ C# form กับ C# Asp Web

ในการส่ง Data ระหว่าง Gridview 2 ระบบโดยเฉพาะ ระบบใหม่มักจะเป็น REST เพื่อความง่าย จะส่ง ผ่านกันทาง Json Format ที่เป็น String และมี {}

ในการส่าง Data ของ Gridview จะส่งโดยตรงไม่ได้ ต้องส่งทาง Datasource เช่นใน Window Form ต้องส่งเป็น Datatable แทน

  DataTable dt = new DataTable();

            foreach (DataGridViewColumn col in dgvReport.Columns)

            {

                dt.Columns.Add(col.Name);

            }


            foreach (DataGridViewRow row in dgvReport.Rows)

            {

                DataRow dRow = dt.NewRow();

                foreach (DataGridViewCell cell in row.Cells)

                {

                    dRow[cell.ColumnIndex] = cell.Value;

                }

                dt.Rows.Add(dRow);

            }

            var js = Newtonsoft.Json.JsonConvert.SerializeObject(dt);

            //  MessageBox.Show(js.ToString());

            File.WriteAllText("c:/temp/v.json",js.ToString());


สำหรับใน Web form ก็จะรับได้ ในแบบ เดียวกัน แต่ต้องมี Option ในการ convert ว่าเป็น Datatable เหมือนกัน

   string myDynamicJSON = File.ReadAllText("c:/temp/v.json");

        //Using dynamic keyword with JsonConvert.DeserializeObject, here you need to import Newtonsoft.Json  

        dynamic myObject = (DataTable)JsonConvert.DeserializeObject(myDynamicJSON, typeof(DataTable));

        


        //Binding gridview from dynamic object   

        GridView1.DataSource = myObject;

        GridView1.DataBind();

วันอังคารที่ 4 สิงหาคม พ.ศ. 2563

Setup Nodejs เป็น Simple http server

NodeJs เป็น ระบบ Webserver ที่ง่าย และ นิยมมากใช้ Javascript เป็น Client และ Server ตัวอย่างของ Forge Viewer จะเป็น NodeJs เสียส่วนใหญ่ 

การติดตั้ง เข้า Directory ก่อน เช่น c:\test

1. Init ก่อน
    npm init
    ตั้งค่า project ตามที่แนะนำ ใส่ชื่อ โครง การ Version และ file main ให้ เป็น server.js
2. สร้างหรือแก้ server.js

var connect = require('connect');

var serveStatic = require('serve-static');


connect()

    .use(serveStatic(__dirname))

    .listen(8080, () => console.log('Server running on 8080...'));


3.ติดตั้ง Package 

  npm install connect serve-static

4.run

  npm run start


Server ก็จะไปอยู่ ที่ 

http://localhost:8080

โดยที่จะ Default เป็น index.js หรือ index.html


Autodesk Forge การใช้ Markups

การใช้ Markups ใน Autodesk Forge 
มี 2 จุด ต้องแก้ที่ Index.html ให้ ใช้ viewer3D.js ต้องระวัง อย่างใช้ viewer3d.min.js ตัวนี้จะเป็นตัว Light
สามารถทำได้ โดย เพิ่ม Extension
ใน ForgeViewer.js

 var config3d = {

        extensions: ['Autodesk.Sample.CustomPropertyPanelExtension''Autodesk.Viewing.MarkupsCore', 'Autodesk.Viewing.MarkupsGui']

    };

    viewer = new Autodesk.Viewing.GuiViewer3D(document.getElementById('forgeViewer'), config3d);


    viewer.start();

วันอาทิตย์ที่ 5 กรกฎาคม พ.ศ. 2563

การใช้ Forge Viewer กับ Visual Studio

การใช้งาน Forge Viewer น่าจะเป็นส่วนที่ใช้งานได้ ดีที่สุด และ ไม่ยากเกินไปในการทำความเข้าใจ ก่อนอื่น ต้องเข้าใจความสัมพันธ์ ของ Forge Viewer กับส่วนอื่นก่อน


Forge Viewer จะ สัมพันธ์ กับ Model Derivative และ Datamangement เนื่องจาก Viewer จะแสดงผลจาก Datastorage ชั่วคราว(ซึงแน่นอน ต้องมี Account ที่ Autodesk.com) จาก Server ของ Autodesk และ การแปลงไฟล์ จะใช้ Model Derivative  จัดการบางส่วน. Format ที่แสดงใน Forge Viewer จะเป็น SVF บน HTML5

การแสดง ผลของ Forge Viewer ถูกออกแบบมาให้ง่ายที่สุดโดยเป็น HTML+Javascript
ตัวอย่าง สามารถทำตาม Tutorial นี้ ได้
https://forge.autodesk.com/en/docs/viewer/v2/tutorials/basic-viewer/

แต่ กรณีที่จะทำ Application และ เข้าใจได้มากกว่าให้ download ตัวอย่างนี้ จะเข้าใจได้ดีกว่า โดยเป็น Desktop Application แต่ เจาะช่องต่อกับ Forge Viewer ใน Browser จะมีขอดีคือ Debug ได้

https://github.com/Autodesk-Forge/forge-bucketsmanager-desktop


ซึ่งจะอธิบายต่อไป

วันจันทร์ที่ 15 มิถุนายน พ.ศ. 2563

Forge เป็น ระบบ BIM บน Cloud

Autodesk Forge เป็นระบบ การ ทำงาน CAD+BIM ในระบบ Cloud บริษัท Autodesk ผู้ผลิต Autocad และ Revit ได้เสนอ ระบบ การทำงาน CAD,BIM บน  Internet Cloud โดยระบบของ Autodesk Forge จะเน้นการทำงาน Custom Application CAD ในรูปแบบของ OEM ทำให้ ผู้ที่พัฒนาโปรแกรม CAD หรือ BIM สามารถให้บริการกับลูกค้าได้ โดย Autodesk เป็นผุ้ Provide service อยู่ ข้างหลัง เป้าหมาย ของ Autodesk คือให้ บริการ Forge เข้าทดแทนระบบ Desktop ให้ได้ในปี 2023 ตาม SAS(Software as Service เหมือน google , facebook)
  ความน่าสนใจของระบบ Forge คือ
1.ไม่ต้องลงโปรแกรมใช้ Browser ใน iPad,Android,Windows,Osx ขอให้เป็น Browser ที่ support javascript 
2.ให้บริการกับ CAD,BIM หลากหลาย มากไม่จำเป็นต้องเฉพาะของ Autodesk โดยบริการของ Forge สามารถทำงานกับ Solidwork, ProEngineer, Sketckup. และ
3, ที่สำคัญที่สุด คือ ค่าบริการ ซึ่งในตอนนี้ จะเป็นช่วงที่ แนะนำให้ใช้ ในหลายบริการมีค่าบริการตำมาก เช่น Viewer แทบจะไม่ได้คิดราคา ดังนั้น จึงน่าสนใจสำหรับ ผุ้ใช้งานเช่น BIM ในการส่งต่อหรือ Co-operate งาน เมื่อเทียบกับค่า Subscription ของ Revit

Autodesk Forge Service แบ่งเป็น  8 หมวดงาน  ส่วนที่ไม่ได้แสดงในรูปคือ Forge Viewer



Forge Viewer. เป็นตัวแสดงรูปภาพ Model ใน File format ต่างๆ เช่น Dwg, Sketchup, Revit, Solidwork เป็นต้น และ สามารถ จัดการ Element ต่างๆได้เช่น การ เปลี่ยน Material หรือ แก้ไขสีเส้นต่างๆ

BIM360 API เป็นการเข้าไปดึงข้อมูลการจัดการของ BIM360 Account Security ของ user

Data Management API เป็นการจัดการ File Data ของ A360 , BIM360

Design Automation API เป็นการ ให้ โปรแกรม ใน Cloud ทำงาน เช่น การ Extract data จาก ไฟล์ Revit ออกมาเป็น Worksheet โดยทำงานในลักษณะ Batch สั่งจาก Cloud โดยสามารถทำได้ในทุก product เช่น Autocad,Revit,Inventor และ 3DMax

Model Derivative API เป็นระบบ Convert แปลงเป็น ไฟล์ ต่างๆ

Reality Capture API เป็น ระบบ Scan 3D

Token Flex Usage Data API เป็นระบบ บัญชีการคิด CPU Time สามารถกระจายตาม Service ต่างๆทีต้องการ คิดได้

Web Hook API เป็นระบบแจ้ง การใช้งานบริการต่างๆ ของ Autodesk โดยส่ง Event มาที่ Web ของ Developer

ผู้ที่ต้องการใช้งาน Forge ลงทะเบียนได้ Free ควรจะมีความเข้าใจกับ Javascript พอสมควร

Reference:
forge.autodesk.com










วันพุธที่ 13 พฤษภาคม พ.ศ. 2563

การสร้าง Form ใน Python

Python มี tool ดีๆ มาก แต่มักจะเป็น Command line จะให้มี User Interface มี Tool ที่ง่ายๆ ได้แก่ tkinter

วิธีใช้
ใช่ messagebox

from tkinter import messagebox

messagebox.showinfo('Title','hello world')


จะแสดงเป็น Message box



ถ้าต้องการ Form และมี Response

from tkinter import *
from tkinter import messagebox
from tkinter import ttk
window = Tk()
window.title("Welcome to TutorialsPoint")
window.geometry('400x400')
lName = Label(window ,text = "Name").grid(row = 0,column = 0)
name = Entry(window,width=10)
name.grid(row = 0,column = 1)
def clicked():
  messagebox.showinfo('ok',name.get())
btn = ttk.Button(window ,text="Submit",command=clicked).grid(row=4,column=0)
window.mainloop()

สังเกตุที่ def clicked() จะเป็น Event ใน ttk.Button
เมื่อกดจะเกิด Pop up