สำหรับผู้ที่เข้าอบรมพัฒนาโปรแกรม 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"
ให้ติดตั้ง 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"
/*
ตอบลบ* 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));
}
}
}