久久国产色av_国产人妻777人伦精品hd_欧美 国产 日本_好吊色欧美一区二区三区

您的位置:網站首頁 > CAD新聞

CAD(C#)——"小知識點"

時間:2010-01-22 01:48:39 來源:

①: 隱藏實體

     在CAD的開發中,有時候我們需要根據用戶的需求隱藏和顯示一些實體,對于實體本身的屬性Visible當然可以實現隱藏、顯示實體,不過,除此之外,我們還可以將一個層上的實體同時隱藏起來,這就要使用LayerTableRecord中的IsOff屬性,并且隱藏的實體ObjectId可以出現在SelectAll()的集合中.當然,他們之間還是有區別的,當你用Ctrl+A,選中當前活動文檔的全部實體是,你就會發現原來他們之間區別。

     簡單的測試程序:

代碼
 1  #region 測試圖層的IsOff和實體的Visible是否一致
 2         [CommandMethod("TestLayer")]
 3         public void TestLayerVis()
 4         {
 5             //選擇一點創建實體
 6             PromptPointOptions opt = new PromptPointOptions("選擇起始點:");
 7             PromptPointResult res = ed.GetPoint(opt);
 8             if (PromptStatus.OK == res.Status)
 9             {
10                 Point3d sPt = res.Value;
11                 using (Transaction trans = db.TransactionManager.StartTransaction())
12                 {
13                     BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead);
14                     BlockTableRecord btr = (BlockTableRecord)trans.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);
15                     //直線,其所在層為默認的層
16                     Line line = new Line();
17                     line.StartPoint = sPt;
18                     line.EndPoint = new Point3d(sPt.X + 100, sPt.Y + 500);
19                     //圓,指定層
20                     Circle c = new Circle(sPt, new Vector3d(001), 30);
21                     c.LayerId = CreateLayer("TestLayer");
22                     line.Visible = false//不顯示實體
23                     btr.AppendEntity(line);
24                     btr.AppendEntity(c);
25                     trans.AddNewlyCreatedDBObject(line, true);
26                     trans.AddNewlyCreatedDBObject(c, true);
27 
28                     LayerTable lt = (LayerTable)trans.GetObject(db.LayerTableId, OpenMode.ForRead);
29                     LayerTableRecord ltr = (LayerTableRecord)trans.GetObject(CreateLayer("TestLayer"), OpenMode.ForWrite);
30                     ltr.IsOff = true//關閉圖層,隱藏圖層上的實體
31 
32                     trans.Commit();
33                 }
34             }
35         }
36 
37         //創建一個圖層
38         private ObjectId CreateLayer(string layerName)
39         {
40             ObjectId objId = ObjectId.Null;
41             using (Transaction trans = db.TransactionManager.StartTransaction())
42             {
43                 LayerTable lt = (LayerTable)trans.GetObject(db.LayerTableId, OpenMode.ForWrite);
44                 if (lt.Has(layerName))
45                 {
46                     objId = lt[layerName];
47                 }
48                 else
49                 {
50                     LayerTableRecord ltr = new LayerTableRecord();
51                     ltr.Name = layerName;
52                     objId = lt.Add(ltr);
53                     trans.AddNewlyCreatedDBObject(ltr, true);
54                     trans.Commit();
55                 }
56             }
57 
58             return objId;
59         }
60        #endregion 

 

②:修改線寬

     有的時候我們為了打印出來的圖片更加的清楚,可能會設計到修改實體的線寬,對于多段線,我們很容易想到使用ConstantWidth,這樣就可以修改其線寬了,其實,對于圓或是直線也一樣,不過我們在修改他們的線寬之前要保證系統變量的lwdisplay的值為1(開),這時我們再設置LineWeight,就可以改變他們的線寬了。

     簡單的測試程序:

代碼
 1  #region 測試直線、圓的LineWeight和PolyLine的ConstantWidth之間的區別
 2         [CommandMethod("TestLW")]
 3         public void TestLW()
 4         {
 5             PromptPointOptions opt = new PromptPointOptions("選擇起點:");
 6             PromptPointResult res = ed.GetPoint(opt);
 7             if (PromptStatus.OK == res.Status)
 8             {
 9                 Point3d sPt = res.Value;
10                 ObjectId plId = ObjectId.Null;
11                 ObjectId circleId = ObjectId.Null;
12                 using (Transaction trans = db.TransactionManager.StartTransaction())
13                 {
14                     BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead);
15                     BlockTableRecord btr = (BlockTableRecord)trans.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);
16 
17                     //創建一個多段線
18                     Polyline pl = new Polyline();
19                     pl.AddVertexAt(0, sPt.Convert2d(new Plane()), 000);
20                     pl.AddVertexAt(1new Point3d(sPt.X + 100, sPt.Y + 500).Convert2d(new Plane()), 000);
21                     pl.AddVertexAt(2new Point3d(sPt.X + 150, sPt.Y - 1500).Convert2d(new Plane()), 000);
22 
23                     //創建一個圓
24                     Circle c = new Circle(sPt, new Vector3d(001), 40);
25 
26                     plId = btr.AppendEntity(pl);
27                     circleId = btr.AppendEntity(c);
28                     trans.AddNewlyCreatedDBObject(pl, true);
29                     trans.AddNewlyCreatedDBObject(c, true);
30                     //修改線寬
31                     pl.ConstantWidth = 0.15;
32                     c.LineWeight = LineWeight.LineWeight035;//絕對線寬
33 
34                     trans.Commit();
35                 }
36             }
37         }
38         #endregion

 

③:多段線凸起

      這個功能一般用在兩條多段線相交時,區分多段線的走向而特意使相交的多段線在交點出凸起一個"小弧",在這個應用中,我們會發現PolyLine中的AddVertexAt的奇妙之處(插入點的序號可以小于PLine的節點數目,PLine的原有節點的序號會因為有新插入點而自增)。    

      簡單的測試程序:

代碼
 1  [CommandMethod("TestPolyLine")]
 2         public void TestPolyLine()
 3         {
 4             PromptPointOptions opt = new PromptPointOptions("選擇起點:");
 5             PromptPointResult res = ed.GetPoint(opt);
 6             if (PromptStatus.OK == res.Status)
 7             {
 8                 Point3d sPt = res.Value;
 9                 ObjectId plId = ObjectId.Null;
10                 ObjectId circleId = ObjectId.Null;
11                 Polyline pl = new Polyline();
12                 using (Transaction trans = db.TransactionManager.StartTransaction())
13                 {
14                     BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead);
15                     BlockTableRecord btr = (BlockTableRecord)trans.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);
16 
17                     //創建一個多段線
18                     pl.AddVertexAt(0, sPt.Convert2d(new Plane()), 000);
19                     pl.AddVertexAt(1new Point3d(sPt.X + 200, sPt.Y + 1500).Convert2d(new Plane()), 000);
20                     pl.AddVertexAt(2new Point3d(sPt.X + 400, sPt.Y + 800).Convert2d(new Plane()), 000);
21 
22                     btr.AppendEntity(pl);
23                     trans.AddNewlyCreatedDBObject(pl, true);
24                     ////加一個小弧
25                     Point3d pt1 = pl.GetPointAtDist(80);
26                     Point3d pt2 = pl.GetPointAtDist(100);
27                     pl.AddVertexAt(1, pt1.Convert2d(new Plane()), 000);
28                     pl.AddVertexAt(2, pt2.Convert2d(new Plane()), 000);
29                     pl.SetBulgeAt(10.78);
30                     
31                     trans.Commit();
32                 }
33                 
34             }
35         }

久久国产色av_国产人妻777人伦精品hd_欧美 国产 日本_好吊色欧美一区二区三区
精品国产拍在线观看| 欧美精品生活片| 久久亚洲影音av资源网 | 日本不卡一区二区三区视频| 国产欧美韩日| 国产精品二区二区三区| 欧美中文字幕视频| 国产成人精品久久二区二区| 一区二区三区av| 国产精品综合网站| 久久成人人人人精品欧| 黄色一级视频播放| 国产精品视频男人的天堂| 日韩欧美激情一区二区| 国产福利不卡| 色哺乳xxxxhd奶水米仓惠香| 国产精品亚洲天堂| 中文字幕在线观看一区二区三区| 国产免费一区二区视频| 久久999免费视频| 国产毛片视频网站| 欧美激情精品久久久| 国产免费色视频| 亚洲综合在线播放| 91精品国产91久久久久麻豆 主演| 在线视频91| 91久久夜色精品国产网站| 亚洲精品久久久久久一区二区| 99热成人精品热久久66| 亚洲精品中文字幕无码蜜桃| 91美女片黄在线观| 亚洲精品中字| 久热这里只精品99re8久| 欧美一级在线看| 久草精品电影| 黄色小视频大全| 精品国产一区二区三区免费| 国产天堂在线播放| 亚洲最大福利网站| 91精品91久久久中77777老牛| 亚洲精品电影在线一区| 久久久99精品视频| 欧美亚洲国产另类| 国产精品日韩av| 国产欧美一区二区| 亚洲一区制服诱惑| 99精品免费在线观看| 日韩av电影在线观看| 久久久久天天天天| 国产在线一区二区三区四区| 久久久久国产精品www| 91精品国产成人| 欧美亚洲视频一区| 欧美激情伊人电影| 日韩欧美一级在线| 国产精品无码电影在线观看| 91国产精品电影| 国产精品揄拍一区二区| 欧美日韩一区二区三区电影| 日日骚一区二区网站| 亚洲伊人久久大香线蕉av| 国产成人精品综合久久久| 91av国产在线| 成年人网站国产| 国产又粗又猛又爽又黄的网站 | 欧美精品一区二区性色a+v| 欧美精品一区二区三区久久 | 亚洲国产欧美不卡在线观看| 久久精品91久久久久久再现| 国产日韩精品久久| 色999日韩自偷自拍美女| 国产精品免费久久久久久| 国产欧美韩国高清| 日韩精品福利视频| 久久久久久国产精品| 久久久久久免费看| 成人av色在线观看| 欧美一区二区影视| 亚洲欧美精品| 国产精品第3页| 久精品国产欧美| 国产精品一区二区三| 欧美专区中文字幕| 亚洲 日韩 国产第一区| 欧美精品在线极品| www.亚洲成人| 91九色蝌蚪国产| 黄色片一级视频| 日韩一区不卡| 中日韩在线视频| 国产精品露脸自拍| 久久亚洲国产成人精品无码区| 免费看欧美一级片| 日本欧美黄网站| 亚洲一卡二卡| 精品丰满人妻无套内射| 日韩视频一区在线| 在线免费一区| 国产精品久久中文| 精品免费二区三区三区高中清不卡| 国产精品污www一区二区三区| 精品久久国产精品| 国产成人精品视频免费看| 久久国内精品一国内精品| 国产精品视频一区国模私拍| 久久精品亚洲热| 国产精彩视频一区二区| 国产欧美一区二区三区不卡高清| 欧美日韩在线观看一区| 日韩国产高清一区| 色乱码一区二区三区熟女| 一本色道久久综合亚洲二区三区| 久热精品在线视频| 成人97在线观看视频| 国产精品福利片| 国产精品久久久久国产a级| 国产成人免费高清视频| 久久另类ts人妖一区二区| 91久久在线视频| 99在线精品免费视频| 国产精品影片在线观看| 国产乱码精品一区二区三区不卡| 黄色一级大片免费| 激情图片qvod| 黄色三级中文字幕| 免费观看精品视频| 国产在线精品一区二区中文| 精品视频导航| 国产自产在线视频| 精品一区日韩成人| 国产内射老熟女aaaa| 国产伦精品一区二区三区四区视频_| 欧美日韩亚洲一区二区三区在线观看| 日本免费一级视频| 日韩精品久久久免费观看| 热99这里只有精品| 欧美在线亚洲一区| 韩国国内大量揄拍精品视频| 精品视频在线观看一区| 国产乱淫av片杨贵妃| 99久久综合狠狠综合久久止 | 国产欧美日韩精品丝袜高跟鞋| 国产肉体ⅹxxx137大胆| 国产免费成人在线| 99国产在线视频| 久国内精品在线| 欧美成人在线影院| 日日夜夜精品网站| 国产午夜福利在线播放| 久久免费看毛片| 国产精品第七十二页| 日韩av一级大片| 国产四区在线观看| 久久久久久久久爱| 亚洲中文字幕无码一区二区三区| 人妻少妇精品久久| 国产精品一区二区不卡视频| 色偷偷9999www| 懂色av粉嫩av蜜臀av| 欧美在线观看网址综合| 欧美日韩第二页| 国产欧洲精品视频| 国产成人一区二区三区小说| 国产精品久久久久久五月尺| 亚洲一区不卡在线| 青青在线免费观看视频| 国产一区二区三区精彩视频| 91精品国产91久久久久久吃药| 日韩中文字幕网站| 国产99在线|中文| 日韩欧美一区二| 国产日韩在线一区| 国产精品69久久久久| 国产精品爽黄69| 亚洲一区三区电影在线观看| 日本乱人伦a精品| 国产热re99久久6国产精品| 国产高清在线不卡| 国产精品黄页免费高清在线观看| 一区二区三区四区国产| 欧美中文在线免费| 国产资源第一页| 日韩av免费在线播放| 欧美日韩免费观看一区| 国产精品中文久久久久久久| 久久久久中文字幕| 欧美激情伊人电影| 欧美综合77777色婷婷| 成人精品一区二区三区电影黑人| 久久久久久久免费| 久久艹在线视频| 日韩欧美一区二区三区四区| 粉嫩av一区二区三区免费观看| 色噜噜狠狠狠综合曰曰曰| 亚洲午夜久久久影院伊人| 欧美精品久久久久久久自慰| 国产精品99一区| 久久艹在线视频| 欧美一级电影久久| 久热免费在线观看|