久久国产色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_欧美 国产 日本_好吊色欧美一区二区三区
国产在线观看精品| 国产精品69久久| 国产美女在线精品免费观看| 日日骚久久av| 亚洲国产婷婷香蕉久久久久久99| 国产一区二区不卡视频在线观看| 少妇久久久久久| 亚洲v国产v| 粉嫩av四季av绯色av第一区| 国产精品第一第二| 日本欧美精品久久久| av免费观看久久| 国产精品免费久久久久影院| 一本—道久久a久久精品蜜桃| 成人做爽爽免费视频| 国产精品午夜一区二区欲梦| 亚洲a级在线观看| 国产日韩欧美影视| 国产精品久久..4399| 欧美精品亚洲| 国产在线一区二区三区四区| 不卡av在线播放| 97人人澡人人爽| 国产日韩一区在线| 国产高清av在线播放| 在线丝袜欧美日韩制服| 久久久国产精品视频| 色视频www在线播放国产成人| 国产精品午夜av在线| 国产一区二区不卡视频在线观看| 国产精品av在线| 欧美人与物videos| 国产内射老熟女aaaa| 欧美激情欧美激情在线五月| 国产在线观看91精品一区| 国产精品大全| 国产日韩欧美综合| 日本久久久精品视频| 91精品国产91久久久久久不卡| 激情五月综合色婷婷一区二区| 国产这里只有精品| 午夜免费电影一区在线观看| 黄色网在线视频| 蜜臀av性久久久久蜜臀av| 国产精品日韩av| 国内精品中文字幕| 国产精品第1页| 国产精品影院在线观看| 亚洲午夜精品福利| 久久一区免费| 日本a级片在线播放| 久久精品99久久久久久久久| 蜜桃久久精品乱码一区二区| 久久99国产精品久久久久久久久| 国产精品综合网站| 亚洲一区二区在线播放| 久久综合久久色| 欧美牲交a欧美牲交aⅴ免费真| 久久亚洲欧美日韩精品专区| 成人短视频在线观看免费| 性欧美亚洲xxxx乳在线观看 | 日韩中文字幕在线播放| 精品一区二区久久久久久久网站| 久久99国产精品自在自在app| 国产精品亚发布| 日日噜噜噜噜夜夜爽亚洲精品| 日韩在线视频中文字幕| 国产一区二区色| 亚洲爆乳无码专区| 久久精品91久久久久久再现| 国产裸体写真av一区二区| 日日噜噜夜夜狠狠久久丁香五月| 久久久精品一区二区三区| 国产精品中文在线| 日本一区二区三区在线播放| 久久综合九色九九| 国产成人+综合亚洲+天堂| 国产原创中文在线观看| 欧美一区二区三区四区夜夜大片 | 国产精品久久久久秋霞鲁丝| 97色伦亚洲国产| 精品人伦一区二区三区| 亚洲乱码日产精品bd在线观看| 久久激情视频久久| 91九色偷拍| 国产熟女高潮视频| 日本欧美国产在线| 伊人久久在线观看| 国产精品日韩欧美| 国产成人精品免费看在线播放| 国产综合18久久久久久| 午夜在线视频免费观看| 国产精品高潮呻吟久久av无限| 久久久久久国产精品mv| 国产日韩精品综合网站| 日韩欧美电影一区二区| 一区二区不卡视频| 国产精品久久久对白| 国产成人精品免费视频 | 欧美精品福利在线| 久久九九亚洲综合 | 日本欧美黄网站| 在线国产99| 国产精品成人一区二区三区吃奶| 久久精品视频16| 91精品视频在线播放| 国产亚洲天堂网| 精品免费一区二区三区蜜桃| 日本欧美国产在线| 亚洲xxxx在线| 一卡二卡三卡视频| 久久99久久久久久久噜噜| 国产精品手机播放| 日韩中文字幕在线视频播放| 国产福利不卡| 国产精品444| 99久re热视频这里只有精品6| 欧美日韩在线观看一区| 日本一区二区高清视频| 午夜精品一区二区三区四区| 欧美激情中文网| 欧美巨大黑人极品精男| 美女扒开尿口让男人操亚洲视频网站| 国产精品视频中文字幕91| 日韩亚洲欧美中文高清在线| 国产成人91久久精品| 国产成人一区二| 国产mv久久久| 久久久久久久午夜| 北条麻妃99精品青青久久| 久久久久久久97| 日韩视频在线观看免费| www.欧美三级电影.com| 按摩亚洲人久久| 国产精品久久久久久久久久新婚| 国产精品视频免费在线观看| 久久精品国产欧美亚洲人人爽| 波霸ol色综合久久| 国产精品偷伦视频免费观看国产 | 一本大道熟女人妻中文字幕在线 | 中文字幕中文字幕一区三区| 欧美成人在线网站| 久久资源免费视频| 精品久久久久久久免费人妻| 久久国产精品亚洲| 久久99精品视频一区97| 最新av网址在线观看| 中文字幕一区二区三区有限公司| 一区二区三区av| 亚洲国产精品综合| 视频一区视频二区视频| 日本公妇乱淫免费视频一区三区| 日韩久久不卡| 免费看成人午夜电影| 国产精品一区在线免费观看| 91免费国产网站| 久久久之久亚州精品露出| 日韩天堂在线视频| 国产精品精品软件视频| 一道本在线观看视频| 日本a级片电影一区二区| 欧美精品久久| 国产精品一区二区三区四区五区| 97人人模人人爽人人少妇| 国产不卡视频在线| 国产精品久久9| 亚洲天堂av免费在线观看| 日本va中文字幕| 精品一区二区中文字幕| 97精品国产97久久久久久| 久久久久久久久久久国产| 国产精品麻豆免费版| 一本久道综合色婷婷五月| 日本午夜精品一区二区三区| 海角国产乱辈乱精品视频| 国产精品亚洲激情| 久久久久久国产精品一区| 欧美黄网免费在线观看| 色999日韩自偷自拍美女| 黄色影视在线观看| 91免费精品国偷自产在线| 久久人人爽人人爽人人片亚洲| 欧美激情小视频| 日韩精品一区二区三区外面| 免费高清一区二区三区| 91精品国产自产在线| 色老头一区二区三区在线观看| 精品久久久久久一区二区里番| 日本在线观看一区| 国产美女永久无遮挡| 久久久久久久久久久久久国产精品| 精品久久久久久中文字幕动漫| 日本亚洲精品在线观看| 国产日韩欧美一二三区| 久久久久一本一区二区青青蜜月| 九九精品视频在线| 欧美在线视频一区二区三区| 97免费视频观看| 国产精品久久久久久久久久尿| 日韩av电影在线网|