วันจันทร์ที่ 9 เมษายน พ.ศ. 2561

อธิบาย เรื่อง NetMask

ในการ ต่อ Network การ ติดต่อระหว่างกันจะมี ขอบเขตเพื่อให้ความเร็วในการ Scan ของ เครื่องใน Network ไม่นานเกินไป  ตามปรกติ จะ 255 เครื่องต่อ วง โดยใช้ Byte ตัวสุดท้าย
ในระบบ TCP/IP จะมี วง Lan ที่เป็น private เช่น 192.168.x.x, ดูใน Wiki

RFC1918 nameIP address rangenumber of addresses
24-bit block10.0.0.0 – 10.255.255.25516,777,216
20-bit block172.16.0.0 – 172.31.255.2551,048,576
16-bit block192.168.0.0 – 192.168.255.25565,536


ตัวอย่างของ Netmask

network                  192.168.1.x
Network Mask       255.255.255.0
แปลงเป็น Binary           
                  1111 1111. 1111 1111.1111 1111.0000 0000
invert                       
                  0000 0000.0000 0000.0000 0000.1111 1111 -> 0.0.0.255 หมายถึง 1-255 เครื่อง

                192.168.1.1-> 192.168.1.255
อยากเพิ่ม เป็น 2 เท่า  510 เครื่อง
                           0000 0000.0000 0000.0000 0001.1111 1111 -> หมายถึง 255*2
                          invert
                           1111 1111.1111 1111.1111 1110.0000 0000
                              255.      255. 254 .0
Network Mask 512 ตัว จะเป็น
                              255.255.254.0
วง Lan 1                              192.168.1.x
วง Lan 2                             192.168.0.x
                                       x.x.0000 000x.x
หรือ วง Lan ที่ Bit หลักแรกเป็น 1 เช่น 192.168.3.x 192.168.2.x . ก็จะได้ เหมือนกัน (3 = 0011,2=0010 )


วันพุธที่ 21 มีนาคม พ.ศ. 2561

Export Revit ไปเป็น Unity3d

การ Export Revit Model ไปเป็น Unity จะใช้ เป็น ".fbx" จะอยู่ที่ R->Export


เมื่อออกเป็น File แล้ว ใน Unity จะต้อง Import เป็น Asset จึงจะนำเข้าได้ แล้วค่อยไปวางใน Model

จะอยุ่ใน Tab Asset และ Drag and Drop ไปที่ Space


ข้อสังเกตุ สีของวัตถุจะเป็น basic ถ้าต้องการ ให้มีสี ต้อง Map Meterial ใหม่

วันอาทิตย์ที่ 18 มีนาคม พ.ศ. 2561

เริ่ม Unity และ C# Mono

Unity เป็น โปรแกรมสร้าง Game ที่ support c# ใน ทั้ง Windows และ Mac
วิธีลง ง่ายมาก ไป Download ที่ Website
https://unity3d.com/get-unity/download

และติดตั้ง จะมี Mono C# มาด้วย


เปิด Unity จะบังคับ ลงทะเบียน ให้ตอบ Email ให้เรียบร้อย จะเข้าโปรแกรม
ในระบบ โปรแกรม ของ Unity จะเรียก วัตถุ เช่น บ้านโต็ะ .. เป็น Assets ทั้งหมด รวมทั้ง Action หรือ โปรแกรมด้วย
ลอง Download Funiture มาทดสอบ ใน แบบ
และ ลากวาง
สร้าง Plane
Game Object->3D Object->Plane
Game Object->Ligth

ใส่ Plane ใส่ โต็ะ เตียง ใส่ Point Light และ ลบ Direction Light(แสงอาทิตย์ ออก)

สร้าง C# Code
Asset->Create->C# script
จะได้ C#


กด Double Click (จะทำ ปิดเปิด ไฟ)
แก้ Code

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour {

    public Light myLight;

    void Update () {
        if (Input.GetKey ("space")) {
            myLight.enabled = true;
        } else {
            myLight.enabled = false;
        }
    }
}

ทำการ Save

แล้ว ลาก ไปวางที่ Point Light
ที่ Inspector(หรือ Property จะแสดงค่า)

กดที่ จุด หลัง My Light ของ New Behaviour Script และ เลือก Point Light

กดที่ Game Tab และกด Play (ลุกศร)
และกด แคร่ Space bar ไฟจะปิดเปิด



วันอาทิตย์ที่ 25 กุมภาพันธ์ พ.ศ. 2561

Google map บน Winform ด้วย Webbrowser control

Google Map จะแสดงบน WebBrowser Control ของ c# ใน windows 7-10 ไม่ได้ ต้องแก้ที่ meta tag
ใน Html ที่จะแสดง googlemap

<!DOCTYPE html>
<html>
    <head>
 /**** บรรทัดนี้ ******/
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no">

            <meta charset="utf-8">


วันเสาร์ที่ 3 กุมภาพันธ์ พ.ศ. 2561

ปัญหา License ของ Autodesk product, Autocad,Revit

ปัญหา หนึ่ง ที่จะเจอบ่อย จาก License Error หลังจาก Update Window 10 จะมีอาการ แจ้งว่า License Error และให้ใช้ได้ 5 วัน เมื่อพยายามขอ License ใหม่ จะเกิด Error ระหว่าง Active จากนั้น จะเช้าไม่ได้ อีกเลย
วิธีแก้ มีแนะนำใน Autodesk Web site
https://knowledge.autodesk.com/support/autocad/troubleshooting/caas/simplecontent/content/remove-autodesk-licensing-information.html

คือให้เข้าไปที่ c:\programdata\FlexNet ลบทิ้งทั้ง 2 file

  • C:\ProgramData\FLEXnet\adskflex_########_tsf.data
  • C:\ProgramData\FLEXnet\adskflex_########_tsf.data.backup
และขอ Activate Code ใหม่ ก็จะ OK

วันจันทร์ที่ 4 ธันวาคม พ.ศ. 2560

การแสดงค่า ใน List Box ใช้Dictionary เป็น Datasource

การใช้ ListBox Datasource เพื่อความง่ายใช้ Dictionary ในการเลือก TitleBox สำหรับ Sheet ใน Revit


FilteredElementCollector collector = new FilteredElementCollector(doc);
                collector.OfCategory(BuiltInCategory.OST_TitleBlocks);
                collector.WhereElementIsElementType();

                //Get ElementId of first title block type.

Dictionary<string,ElementId> datas = 
collection.AsEnumerable().ToDictionary(x=>x.ToString(),y=>y);

listBox1.DataSource = new BindingSource(datas, null); 
listBox1.DisplayMember = "Value"; 
listBox1.ValueMember = "Key"; 

เมื่อเลือก ที่ Selection 
จะเป็น SelectedValue แต่ต้อง ใช้ เป็น 

ElementId id =SelectedValue as ElementId;

วันจันทร์ที่ 27 พฤศจิกายน พ.ศ. 2560

การจับเวลาใน การทำงาน คำนวนหรือ ทดสอบอัลกอริกทึม

ปัญหาของการทำงาน Data ขนาดใหญ่ อาจจะเกิด ปัญหา ของ การคำนวน ใช้เวลา แบบ 2ยกกำลัง n ตามจำนวน Data ได้ บางครั้ง เพื่อต้องการ ทดสอบจับเวลา ใช้ DateTime และ TimeSpan ใน Dotnet

ในกรณีดูเวลา ใช้ เวลาวินาทีของ วัน(เราคงไม่ทำข้ามวัน)


   logMsg("End at:"+DateTime.Now.TimeOfDay.TotalSeconds.ToString("0.##"));

กรณี ดู เริ่มและสิ้นสุด

 // start timer
            DateTime sttime = DateTime.Now;
            doComputingHere();
            DateTime endTime = DateTime.Now;
            string diff = ((endTime - sttime).TotalSeconds).ToString("0.##");
            logMsg("Run time(s):" + diff);