AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~

Join the forum, it's quick and easy

AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~
AutoCAD顧問
Would you like to react to this message? Create an account in a few clicks or log in to continue.
[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Aoe1-113[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Ioaoe110[討論]叫 AUTOCAD 自動產生圖形的兩個方法 2020-310[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Oiu15010[討論]叫 AUTOCAD 自動產生圖形的兩個方法 2020-211[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Ia15010[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Aizyao10[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Uos15010[討論]叫 AUTOCAD 自動產生圖形的兩個方法 BPl3tjj[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Ziao1510
[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Aoe15010[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Oo-2-110[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Zuoiy_10[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Aizyao11[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Iyb_1510[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Aoe1-112[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Uos15011[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Aoe2da10[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Aoe2da11[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Aoe10

[討論]叫 AUTOCAD 自動產生圖形的兩個方法

3 posters

向下

[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Empty [討論]叫 AUTOCAD 自動產生圖形的兩個方法

發表 由 andychen 周一 31 五月 2010 - 12:38

應該是還有更多的方法,我稍微知道的是兩種:

一 在 AUTOCAD 裡面寫 AUTOLISP 程式,
利用 (COMMAND ) 叫 AUTOCAD 自動畫圖


二 在 AUTOCAD 外面,使用任何你所熟系的電腦語言,
產生 AUTOCAD SCRIPT FILE: XXX.SCR

檔案內容,類似如下:

-COLOR
2
POINT
0,0
LINE
0,1
2,3
0,5
CLOSE
CIRCLE
3,4
5
ARC
0,1
2,3
0,5
ZOOM
E
ZOOM
0.8X



如果大家有興趣的話,我再撥空寫作幾個實際的例子與大家分享。


Tiger&蘋果爸 在 周一 31 五月 2010 - 14:37 作了第 1 次修改 (原因 : 此主題為[討論]類型)
avatar
andychen
該用戶停權中
該用戶停權中

文章總數 : 186
年齡 : 40
經驗值 : 6032
威望值 : 71
注冊日期 : 2010-04-09
男 水瓶座 豬

回頂端 向下

[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Empty 回復: [討論]叫 AUTOCAD 自動產生圖形的兩個方法

發表 由 pizg 周日 6 6月 2010 - 22:56

不只上述兩種方法,
VBA, VB, C, 甚至ASP也可以做到
pizg
pizg
高級會員
高級會員

文章總數 : 258
年齡 : 59
來自 : 桃園縣
職業 : 建築設計;程式設計
愛好 : 音樂;攝影;繪畫;棋奕;電子;機器人
個性 : 隨和
使用年資 : 30↑
使用版本 : 2015
積分 : 10
經驗值 : 6696
威望值 : 320
發帖精華 : 1
注冊日期 : 2010-04-16
串連貼紙成功 男 摩羯座 龍

https://pizgchen.blogspot.com/

回頂端 向下

[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Empty 回復: [討論]叫 AUTOCAD 自動產生圖形的兩個方法

發表 由  周一 26 7月 2010 - 10:02

C#.NET也不錯
[CommandMethod("netLine")]
public void testLine()
{
Line ent = new Line(new Point3d(0, 0, 0), new Point3d(100, 100, 0));
Database db = HostApplicationServices.WorkingDatabase;
using (Transaction ta = db.TransactionManager.StartTransaction())
{
BlockTable bt = (BlockTable)ta.GetObject(db.BlockTableId, OpenMode.ForRead);
BlockTableRecord btr = (BlockTableRecord)ta.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
btr.AppendEntity(ent);
ta.AddNewlyCreatedDBObject(ent, true);
ta.Commit();
}
}
avatar
初級會員
初級會員

文章總數 : 42
年齡 : 44
來自 : 台北
職業 : 工程師
愛好 : 電腦
個性 : 一般
使用年資 : 10幾年
使用版本 : 2008
積分 : 1
經驗值 : 6008
威望值 : 43
注冊日期 : 2008-10-20
男 雙子座 猴

https://www.facebook.com/?ref=logo#!/group.php?gid=14518553218008

回頂端 向下

[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Empty 回復: [討論]叫 AUTOCAD 自動產生圖形的兩個方法

發表 由 pizg 周一 26 7月 2010 - 11:22

樓上所說的c#完整程式碼如下:

using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
namespace AcadNetSamples
{
public class Commands
{
[CommandMethod("DrawLine")]
public static void DrawLine()
{
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Editor ed = doc.Editor;
PromptPointOptions prPO = new PromptPointOptions("\nPick start point of line: ");
prPO.AllowNone = false;
prPO.UseBasePoint = false;
PromptPointResult ppr1 = ed.GetPoint(prPO);
if (ppr1.Status == PromptStatus.OK)
{
prPO.UseBasePoint = true;
prPO.BasePoint = ppr1.Value;
prPO.Message = "\nPick end point: ";
PromptPointResult ppr2 = ed.GetPoint(prPO);
if (ppr2.Status == PromptStatus.OK)
{
Point3d SPoint = ppr1.Value;
Point3d EPoint = ppr2.Value;
Line oLine = new Line(SPoint, EPoint);
Autodesk.AutoCAD.DatabaseServices.TransactionManager tm = db.TransactionManager;
Autodesk.AutoCAD.DatabaseServices.Transaction tr = tm.StartTransaction();
using
(tr)
{
BlockTable bt = (BlockTable)tm.GetObject(db.BlockTableId, OpenMode.ForRead, false);
BlockTableRecord btr = (BlockTableRecord)tm.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite, false);
using
(oLine)
{
btr.AppendEntity(oLine);
tm.AddNewlyCreatedDBObject(oLine, true);
}
tr.Commit();
}
}
}
}
}
}
pizg
pizg
高級會員
高級會員

文章總數 : 258
年齡 : 59
來自 : 桃園縣
職業 : 建築設計;程式設計
愛好 : 音樂;攝影;繪畫;棋奕;電子;機器人
個性 : 隨和
使用年資 : 30↑
使用版本 : 2015
積分 : 10
經驗值 : 6696
威望值 : 320
發帖精華 : 1
注冊日期 : 2010-04-16
串連貼紙成功 男 摩羯座 龍

https://pizgchen.blogspot.com/

回頂端 向下

回頂端


 
這個論壇的權限:
無法 在這個版面回復文章
[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Aoe1-113[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Ioaoe110[討論]叫 AUTOCAD 自動產生圖形的兩個方法 2020-310[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Oiu15010[討論]叫 AUTOCAD 自動產生圖形的兩個方法 2020-211[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Ia15010[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Aizyao10[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Uos15010[討論]叫 AUTOCAD 自動產生圖形的兩個方法 BPl3tjj[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Ziao1510
[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Aoe15010[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Oo-2-110[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Zuoiy_10[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Aizyao11[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Iyb_1510[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Aoe1-112[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Uos15011[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Aoe2da10[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Aoe2da11[討論]叫 AUTOCAD 自動產生圖形的兩個方法 Aoe10