最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
AnyCAD.NetSDK試用手記-創(chuàng)新互聯(lián)

今天發(fā)現(xiàn)AnyCAD.Net SDK發(fā)布了,甚是激動(dòng),馬上同步下代碼和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)的

網(wǎng)站標(biāo)題:AnyCAD.NetSDK試用手記-創(chuàng)新互聯(lián)
瀏覽路徑:http://fisionsoft.com.cn/article/hhiog.html