วันเสาร์ที่ 30 สิงหาคม พ.ศ. 2557

ชุดคำสั่ง PowerAEC,DDD สำหรับ Autocad, Nanocad


สำหรับผู้ที่เข้าอบรมพัฒนาโปรแกรม CAD บน NanoCAD5โดยสามารถ Download ชุดพัฒนา Rapid SDKได้ที่
http://goo.gl/TS5gDw


เมื่อลงแล้วเปิด Nanocad ต้อง Custom menu->Reset All ก่อน ถ้าเป็น Window 7 ต้อง Edit Permission ให้ User ->Read,Write  ใน โฟล์เดอร์ ของ Nanocad

สำหรับ Editor ใช้ ShapeDevelop 3
SharpDevelop

1. Reference ใน Project และใส่ using ด้วย
hostmgd.dll
hostdbmgd.dll
ppcad.dll
ppgeninput.dll

2. Method ที่เรียก จะขึ้นด้วย public static void ชื่อโปรแกรม()

ตัวอย่าง
public class pRj{
public static void doHello()
{
              AcadUtil.Msg("Hello");
}

}

ให้ติดตั้ง Nanocad 5 และ ติดตั้ง DDD.msi ทั้ง 2 จะลง Folder เดียวกัน
วิธีเรียกใช้ ให้เรียกที่ Command Line ของ Nanocad
เรียก DDD <enter>
จะแสดง file .cs ปัจจุบันที่ทำงานอยู่ ถ้าไม่มีต้องการใหม่ ให้ กด "." <enter>
จะขึ้น file Dialog ก็เลือกไปยัง File ที่ต้องการ
โปรแกรมจะแสดง คำสั่ง ที่เรียก ครั้งล่าสุด ถ้า ยังใช้ต่อให้ <enter> ถ้าต้องการเปลี่ยนคำสั่งให้กด
"."<enter> จะแสดง Dialog คำสั่งใน File .cs ที่ทำอยู่

สำหรับ Autocad 2014 (up)
ให้ Download จาก
http://go2cad.com/download/ddd2014.rar



หมายเหตุ กรณี Error เมื่อเรียกใช้ DDD
 error CS0012: The type 'System.Attribute' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
ต้องเพิ่มใน Source code ตรงหัวโปรแกรม
using System;
using System.Collections;
using System.Collections.Generic;
//css_reference "System.Runtime"



1 ความคิดเห็น:

  1. /*
    * Created by SharpDevelop.
    * User: mcad
    * Date: 11/14/2015
    * Time: 11:37 AM
    *
    * To change this template use Tools | Options | Coding | Edit Standard Headers.
    */
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using PPCad;
    using Teigha.DatabaseServices;
    using Teigha.Geometry;


    namespace CAD1
    {
    ///
    /// Description of MyClass.
    ///
    public class MyClass
    {
    public static void hello()
    {
    PPCad.AcadUtil.Msg("hello");
    }

    public static void listen()
    {
    ObjectId id = PPCad.AcadUtil.PickAEntity("Select");
    OpenEntity en1= new OpenEntity(id,Teigha.DatabaseServices.OpenMode.ForRead);
    using(en1)
    {
    Line l1 = en1.Entity() as Line;
    Point3d pt1 = l1.StartPoint;
    Point3d pt2 = l1.EndPoint;
    string layer= l1.Layer;
    AcadUtil.Msg(pt1.ToString());
    AcadUtil.Msg(pt2.ToString());
    AcadUtil.Msg(layer);
    }
    }
    public static void dCir()
    {
    Circle c1 = new Circle();
    // c1.Center = new Point3d(5,5,0);
    c1.Center= AcadUtil.qGetPoint("Point");
    c1.Radius=12;
    c1.LayerId=AcadUtil.getLayerId("Layer1");
    AcadUtil.Append2Dwg(c1);
    }

    public static void TextH1()
    {
    ObjectId [] ids = PPCadJava.commonSelectSS();

    // foreach(ObjectId id in ids)
    // {
    // AcadUtil.Msg(id.ObjectClass.Name);
    // }
    var idText = from id in ids where id.ObjectClass.Name=="AcDbText" select id;
    foreach(ObjectId tId in idText)
    {
    OpenEntity pText = new OpenEntity(tId,OpenMode.ForWrite);
    using(pText)
    {
    DBText mytext = pText.Entity() as DBText;
    mytext.Height=1;

    }
    }

    }
    public static void TextH2()
    {
    ObjectId [] ids = PPCadJava.commonSelectSS();


    var idText = from id in ids where id.ObjectClass.Name=="AcDbText" select id;
    idText.All(x => chText1(x));

    }
    public static bool chText1(ObjectId tId)
    {
    OpenEntity pText = new OpenEntity(tId,OpenMode.ForWrite);
    using(pText)
    {
    DBText mytext = pText.Entity() as DBText;
    mytext.Height=2;

    }
    return true;
    }
    //delete
    public static void delMinLen()
    {
    ObjectId []ids = PPCadJava.commonSelectSS();
    var idLine = from id in ids where id.ObjectClass.Name=="AcDbLine" select id;
    foreach(ObjectId l_id in ids)
    {
    OpenEntity lEnt = new OpenEntity(l_id,OpenMode.ForWrite);
    using (lEnt)
    {
    Line aline = lEnt.Entity() as Line;
    double leng = aline.Length;
    if(leng<1.0){ aline.Erase();}
    }
    }
    }
    public static void addXName()
    {
    ObjectId [] ids = PPCadJava.commonSelectSS();
    string name = AcadUtil.qGetString("Name:");
    foreach(ObjectId id in ids)
    {
    AcadUtil.setXDataItem("OWNER",name,id);
    }
    }
    public static void printXName()
    {
    ObjectId id = AcadUtil.PickAEntity("try:");
    string xname = AcadUtil.getXdataItem("OWNER",id);
    // AcadUtil.Msg(xname);
    System.Windows.Forms.MessageBox.Show(xname);

    }
    public static void hiliXname()
    {
    string xname = AcadUtil.qGetString("Name:");
    ObjectId []ids = PPCadJava.commonSelectAll();
    var xid = from id in ids where AcadUtil.getXdataItem("OWNER",id)==xname select id;
    xid.All(x => AcadUtil.entityHighLight(x));
    }

    }
    }

    ตอบลบ