免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

AnyCAD.NetSDK試用手記-創(chuàng)新互聯(lián)

今天發(fā)現(xiàn)AnyCAD.Net SDK發(fā)布了,甚是激動,馬上同步下代碼和SDK使用一下。因?yàn)檫@個(gè)東東是這個(gè)領(lǐng)域少有的免費(fèi)的開發(fā)包!

創(chuàng)新互聯(lián)建站是專業(yè)的德興網(wǎng)站建設(shè)公司,德興接單;提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行德興網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

按照官方網(wǎng)站上的說法,AnyCAD .Net SDK是給C#的開發(fā)者提供的CAD API,而實(shí)際上其他.Net的開發(fā)者(VB.Net)都可以用。

(圖片來自www.anycad.net)

1 下載

在github上可以下載該SDK。解壓后大小不到20M,相比其他CAD的SDK來說,確實(shí)小!

2 在項(xiàng)目中引用Assembly:

3. 我認(rèn)為一些有用的類

4. 代碼

(摘自官方的示例程序)

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using AnyCAD.Platform; namespace AnyCAD.Basic { public partial class FormMain : Form { // The global application object Platform.Application theApplication = new Platform.Application(); // BREP tool to create geometries. BrepTools shapeMaker = new BrepTools(); // Default 3d View Platform.View3d theView; public FormMain() { InitializeComponent(); this.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.OnMouseWheel); } private void FormMain_Load(object sender, EventArgs e) { // Initialize the Application. theApplication.Initialize(); Size size = panel3d.Size; // Create the 3d View theView = theApplication.CreateView(panel3d.Handle.ToInt32(), size.Width, size.Height); theView.RequestDraw(); this.timerDraw.Enabled = true; } private void FormMain_SizeChanged(object sender, EventArgs e) { Size size = panel3d.Size; if(theView != null) theView.OnSize(size.Width, size.Height); } private void panel3d_Paint(object sender, PaintEventArgs e) { if (theView == null) return; theView.Redraw(); } private void timerDraw_Tick(object sender, EventArgs e) { theView.RequestDraw(); theView.Redraw(); } private SceneNode ShowTopoShape(TopoShape topoShape, int id) { // Add the TopoShape to Scene. TopoShapeConvert convertor = new TopoShapeConvert(); SceneNode faceNode = convertor.ToFaceNode(topoShape, 0.5f); faceNode.SetId(id); theView.GetSceneManager().AddNode(faceNode); return faceNode; } private void ClearScene() { theView.GetSceneManager().ClearNodes(); } private void sphereToolStripMenuItem_Click(object sender, EventArgs e) { TopoShape sphere = shapeMaker.MakeSphere(new Vector3(0, 0, 0), 40); ShowTopoShape(sphere, 100); } private void boxToolStripMenuItem_Click(object sender, EventArgs e) { TopoShape box = shapeMaker.MakeBox(new Vector3(40, -20, 0), new Vector3(0, 0, 1), new Vector3(30, 40, 60)); SceneNode sceneNode = ShowTopoShape(box, 101); // Face Style FaceStyle style = new FaceStyle(); style.SetColor(new ColorValue(0.5f, 0.3f, 0, 1)); sceneNode.SetFaceStyle(style); } private void cylinderToolStripMenuItem_Click(object sender, EventArgs e) { TopoShape cylinder = shapeMaker.MakeCylinder(new Vector3(80, 0, 0), new Vector3(0, 0, 1), 20, 100, 315); SceneNode sceneNode = ShowTopoShape(cylinder, 102); FaceStyle style = new FaceStyle(); style.SetColor(new ColorValue(0.1f, 0.3f, 0.8f, 1)); sceneNode.SetFaceStyle(style); } private void coneToolStripMenuItem_Click(object sender, EventArgs e) { TopoShape cylinder = shapeMaker.MakeCone(new Vector3(120, 0, 0), new Vector3(0, 0, 1), 20, 100, 40, 315); ShowTopoShape(cylinder, 103); } private void extrudeToolStripMenuItem_Click(object sender, EventArgs e) { int size = 20; // Create the outline edge TopoShape arc = shapeMaker.MakeArc3Pts(new Vector3(-size, 0, 0), new Vector3(size, 0, 0), new Vector3(0, size, 0)); TopoShape line1 = shapeMaker.MakeLine(new Vector3(-size, -size, 0), new Vector3(-size, 0, 0)); TopoShape line2 = shapeMaker.MakeLine(new Vector3(size, -size, 0), new Vector3(size, 0, 0)); TopoShape line3 = shapeMaker.MakeLine(new Vector3(-size, -size, 0), new Vector3(size, -size, 0)); TopoShapeGroup shapeGroup = new TopoShapeGroup(); shapeGroup.Add(line1); shapeGroup.Add(arc); shapeGroup.Add(line2); shapeGroup.Add(line3); TopoShape wire = shapeMaker.MakeWire(shapeGroup); TopoShape face = shapeMaker.MakeFace(wire); // Extrude TopoShape extrude = shapeMaker.Extrude(face, 100, new Vector3(0, 0, 1)); ShowTopoShape(extrude, 104); // Check find.... SceneNode findNode = theView.GetSceneManager().FindNode(104); theView.GetSceneManager().SelectNode(findNode); } private void revoleToolStripMenuItem_Click(object sender, EventArgs e) { int size = 10; // Create the outline edge TopoShape arc = shapeMaker.MakeArc3Pts(new Vector3(-size, 0, 0), new Vector3(size, 0, 0), new Vector3(0, size, 0)); TopoShape line1 = shapeMaker.MakeLine(new Vector3(-size, -size, 0), new Vector3(-size, 0, 0)); TopoShape line2 = shapeMaker.MakeLine(new Vector3(size, -size, 0), new Vector3(size, 0, 0)); TopoShape line3 = shapeMaker.MakeLine(new Vector3(-size, -size, 0), new Vector3(size, -size, 0)); TopoShapeGroup shapeGroup = new TopoShapeGroup(); shapeGroup.Add(line1); shapeGroup.Add(arc); shapeGroup.Add(line2); shapeGroup.Add(line3); TopoShape wire = shapeMaker.MakeWire(shapeGroup); TopoShape revole = shapeMaker.Revol(wire, new Vector3(size * 3, 0, 0), new Vector3(0, 1, 0), 145); ShowTopoShape(revole, 105); } private void clearToolStripMenuItem_Click(object sender, EventArgs e) { ClearScene(); } private void sTLToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "STL (*.stl)|*.stl|All Files(*.*)|*.*"; if (DialogResult.OK == dlg.ShowDialog()) { TopoShape shape = shapeMaker.LoadFile(dlg.FileName); if( shape != null) ShowTopoShape(shape, 1000); } } private void Pane3d_MouseDown(object sender, MouseEventArgs e) { ViewUtility.OnMouseDownEvent(theView, e); } private void Pane3d_MouseMove(object sender, MouseEventArgs e) { ViewUtility.OnMouseMoveEvent(theView, e); } private void Pane3d_MouseUp(object sender, MouseEventArgs e) { ViewUtility.OnMouseUpEvent(theView, e); } private void OnMouseWheel(object sender, MouseEventArgs e) { ViewUtility.OnMouseWheelEvent(theView, e); } } }

5. 運(yùn)行效果

6. 結(jié)論

  • 建模功能滿足基本的需求
    • 支持基本體
    • 支持創(chuàng)建拉伸,掃掠,回轉(zhuǎn)體等
  • 支持自定義的顯示效果設(shè)置
  • 視圖操作符合CAD的操作習(xí)慣
  • 與AutoCAD相比大的一個(gè)優(yōu)勢就是不是二次開發(fā)的方式,直接可以創(chuàng)建獨(dú)立的應(yīng)用程序
  • 這個(gè)東東是免費(fèi)的

新聞標(biāo)題:AnyCAD.NetSDK試用手記-創(chuàng)新互聯(lián)
標(biāo)題URL:http://newbst.com/article6/hhiog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)靜態(tài)網(wǎng)站ChatGPT網(wǎng)站維護(hù)面包屑導(dǎo)航移動網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站