国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

c# CAD二次開發(fā) 模擬CAD移動圖形, 通過圓現(xiàn)在注記,改變圖形顏色

這篇具有很好參考價值的文章主要介紹了c# CAD二次開發(fā) 模擬CAD移動圖形, 通過圓現(xiàn)在注記,改變圖形顏色。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

c# CAD二次開發(fā) 模擬CAD移動圖形, 通過圓現(xiàn)在注記,改變圖形顏色
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Runtime;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Application = Autodesk.AutoCAD.ApplicationServices.Application;
using System.Windows.Forms;

namespace _7_屬性查找
{
public class Class1
{
///
/// 通過文本和擴(kuò)展屬性進(jìn)行搜索
///
[CommandMethod(“yesee”)]
public void selectdemo()
{
Form1selecte form = new Form1selecte();
form.Show();
}
///
/// 更新圖形顏色
///
///
private void changecolor(SelectionSet sset)
{
ObjectId[] ids = sset.GetObjectIds();
Database db = HostApplicationServices.WorkingDatabase;
using (Transaction trans = db.TransactionManager.StartTransaction())
{
for (int i = 0; i < ids.Length; i++)
{
Entity ent = (Entity)ids[i].GetObject(OpenMode.ForWrite);

                ent.ColorIndex = 1;
                DBText textEntity = ent as DBText;
                string sTxt = textEntity.TextString;
            }
            trans.Commit();
        }
    }
    /// <summary>
    /// 通過選擇圓來選擇
    /// </summary>
    [CommandMethod("yese1")]
    public void selectdemo1()
    {
        Database db = HostApplicationServices.WorkingDatabase;
        Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
        //通過過濾器選擇圓
        TypedValue[] values = new TypedValue[]
        {
            new TypedValue((int)DxfCode.Start,"circle")//選擇圖形為圓
        };
        SelectionFilter filter = new SelectionFilter(values);
        PromptSelectionResult psr = ed.GetSelection(filter);
        List<ObjectId> ids = new List<ObjectId>();
        if (psr.Status == PromptStatus.OK)
        {
            //遍歷每個圓,將每個
            SelectionSet sset = psr.Value;
            List<Point3d> points = this.getpoint(sset);
            for (int i = 0; i < points.Count; i++)
            {
                PromptSelectionResult ss1 = ed.SelectCrossingWindow(points.ElementAt(i), points.ElementAt(i));
                ids.AddRange(ss1.Value.GetObjectIds());
            }
        }
        this.changecolor1(ids);
    }
    /// <summary>
    /// 通過頂點(diǎn)選擇集
    /// </summary>
    /// <param name="sset"></param>
    /// <returns></returns>
    private List<Point3d> getpoint(SelectionSet sset)
    {
        List<Point3d> points = new List<Point3d>();
        ObjectId[] ids = sset.GetObjectIds();
        Database db = HostApplicationServices.WorkingDatabase;
        using (Transaction trans = db.TransactionManager.StartTransaction())
        {
            for (int i = 0; i < ids.Length; i++)
            {
                Entity ent = (Entity)ids[i].GetObject(OpenMode.ForWrite);
                Point3d creter = ((Circle)ent).Center;
                double radius = ((Circle)ent).Radius;
                points.Add(new Point3d(creter.X + radius, creter.Y, creter.Z));
            }
            trans.Commit();
        }
        return points;
    }
    /// <summary>
    /// 更新圖形顏色
    /// </summary>
    /// <param name="sset"></param>
    private void changecolor1(List<ObjectId> ids)
    {
        Database db = HostApplicationServices.WorkingDatabase;
        using (Transaction trans = db.TransactionManager.StartTransaction())
        {
            for (int i = 0; i < ids.Count; i++)
            {
                Entity ent = (Entity)ids[i].GetObject(OpenMode.ForWrite);
                ent.ColorIndex = 3;
            }
            trans.Commit();
        }
    }
    /// <summary>
    /// 動態(tài)交互,移動圖形
    /// </summary>
    [CommandMethod("yemove", CommandFlags.UsePickSet)]
    public void yemove()
    {
        Database db = HostApplicationServices.WorkingDatabase;
        Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
        //選擇在命令前的圖形
        PromptSelectionResult psr = ed.SelectImplied();
        //如果執(zhí)行命令前沒有選擇對象,則執(zhí)行選擇
        if (psr.Status != PromptStatus.OK)
        {
            psr = ed.GetSelection();
        }
        if (psr.Status != PromptStatus.OK) return;
        //獲取用戶指定的基礎(chǔ)點(diǎn)
        Point3d pointbase = new Point3d(0, 0, 0);
        PromptPointOptions ppo = new PromptPointOptions("\n 指定基點(diǎn)或[位移(D)]<位移>:");
        ppo.AllowNone = true;
        PromptPointResult ppr = ed.GetPoint(ppo);
        //判斷用戶指定基礎(chǔ)點(diǎn)的輸入
        if (ppr.Status == PromptStatus.Cancel) return;
        if (ppr.Status == PromptStatus.OK) pointbase = ppr.Value;

        //獲取選擇圖形的圖形對象
        List<Entity> entlist = new List<Entity>();
        //把選中的ID賦給ids
        ObjectId[] ids = psr.Value.GetObjectIds();
        entlist = this.getentity(ids);
        //改變源對象的顏色
        this.lowcolor(entlist, 211);
        //聲明一個移動類
        MoveJig movejig = new MoveJig(entlist, pointbase);
        PromptResult pr = ed.Drag(movejig);
    }
    /// <summary>
    /// 將選擇的對象轉(zhuǎn)成Entity
    /// </summary>
    /// <param name="ids">圖形列表</param>
    /// <returns></returns>
    private List<Entity> getentity(ObjectId[] ids)
    {
        Database db = HostApplicationServices.WorkingDatabase;
        List<Entity> enlist = new List<Entity>();
        using (Transaction trans = db.TransactionManager.StartTransaction())
        {
            for (int i = 0; i < ids.Length; i++)
            {
                Entity ent = (Entity)ids[i].GetObject(OpenMode.ForWrite);
                enlist.Add(ent);
            }
        }
        return enlist;
    }
    /// <summary>
    /// 改變圖形對象的顏色
    /// </summary>
    /// <param name="enlist">圖形對象</param>
    /// <param name="colorindex">顏色值</param>
    private void lowcolor(List<Entity> enlist, int colorindex)
    {
        Database db = HostApplicationServices.WorkingDatabase;
        using (Transaction trans = db.TransactionManager.StartTransaction())
        {
            for (int i = 0; i < enlist.Count; i++)
            {
                Entity ent = (Entity)enlist[i].ObjectId.GetObject(OpenMode.ForWrite);
                ent.ColorIndex = colorindex;
            }
            trans.Commit();
        }
    }
}

}文章來源地址http://www.zghlxwxcb.cn/news/detail-465587.html

到了這里,關(guān)于c# CAD二次開發(fā) 模擬CAD移動圖形, 通過圓現(xiàn)在注記,改變圖形顏色的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Cad二次開發(fā)關(guān)于多段線

    NumberOfVertices 是一個表示多段線(Polyline)對象中頂點(diǎn)數(shù)量的屬性。頂點(diǎn)表示多段線上的角點(diǎn)或拐點(diǎn),決定了多段線的形狀。 在AutoCAD等CAD軟件中,多段線是由一系列直線段組成的圖形對象。它可以包含任意數(shù)量的頂點(diǎn),并且可以是開放的或閉合的。 NumberOfVertices 屬性用于獲取

    2024年02月14日
    瀏覽(25)
  • 【CAD二次開發(fā)】給CAD添加TRUSTEDPATHS避免dll插件信任彈窗

    【CAD二次開發(fā)】給CAD添加TRUSTEDPATHS避免dll插件信任彈窗

    找到配置文件目錄,遍歷下面的每個配置文件; 找到 Variables 下的 TRUSTEDPATHS 項目;在后面添加新的目錄即可,多個目錄使用分號分隔;

    2024年02月07日
    瀏覽(24)
  • 2.ObjectArx .NET 二次開發(fā)入門(CAD 2016)

    2.ObjectArx .NET 二次開發(fā)入門(CAD 2016)

    愿你出走半生,歸來仍是少年!? 目錄 1. 環(huán)境準(zhǔn)備 1.1 ObjectArx .NET 1.2 VS安裝 ?1.2.1 CAD與Visiul Studio版本對照 ?1.2.1 Visiul Studio2022關(guān)于.NET 4.5的處理 2.Hellow World 2.1新建項目 2.2加載依賴 2.3 編寫第一個命令 2.4 生成、加載并測試 ????????開發(fā)這事情,本著有新的肯定用新的思想,

    2024年02月11日
    瀏覽(20)
  • QGIS二次開發(fā):集成二維CAD控件MxDraw

    QGIS二次開發(fā):集成二維CAD控件MxDraw

    本文記錄在QGIS中集成MxDraw控件的方法。 參見筆者博文“FreeCAD二次開發(fā):集成二維CAD控件MxDraw”所述的安裝方法。 參見筆者博文\\\"Windows 10下編譯安裝QGIS\\\"所述的編譯安裝方法。 按照QGIS的管理,Qt ui文件可放到src/ui目錄及其子目錄下。因此,可將MxDrawView.ui拷貝到src/ui/gd目錄下,

    2024年02月15日
    瀏覽(25)
  • python-cad二次開發(fā)入門教程

    python-cad二次開發(fā)入門教程

    用python做cad二次開發(fā)已經(jīng)快兩年的時間了,今天看到群里一個哥們到處問怎么python怎么進(jìn)行cad二次開發(fā),不禁回想起當(dāng)初自己找教程找的焦頭爛額,卻始終不得辦法的辛酸?,F(xiàn)在網(wǎng)上的教程逐漸多了起來,但是我看很多都沒有直接講一個問題,那就是“ 我到底怎么去二次開發(fā)

    2024年02月06日
    瀏覽(13)
  • CAD二次開發(fā),安裝程序中寫注冊表

    CAD二次開發(fā),安裝程序中寫注冊表

    我們知道,dll加載到cad中后使用 就可以拿到當(dāng)前cad的注冊表,那么如果想在安裝程序時寫,此時并沒有cad的環(huán)境,要怎么辦呢? cad在安裝后,會在注冊表的 計算機(jī)HKEY_LOCAL_MACHINESOFTWAREAutodeskHardcopy 目錄下存放所有已安裝的cad的注冊表位置 如圖,由于我只安裝了一個,所以

    2023年04月11日
    瀏覽(22)
  • 【CAD二次開發(fā)】重新加載acad.pgp快捷菜單文件

    【CAD二次開發(fā)】重新加載acad.pgp快捷菜單文件

    為了加快繪圖速度,好多人會進(jìn)行CAD快捷命令的修改,那怎么在不需要重啟CAD的情況下自動更新? CAD修改acad.pgp,快捷命令后,自動更新。 方法一 命令行輸入reinit,命令。 在彈出的窗口中,選擇‘PGP文件’,那么修改后的快捷命令將更新。 方法二 c#代碼的方式

    2024年02月09日
    瀏覽(25)
  • 【ArcGIS Pro二次開發(fā)】(17):打開GDB、SHP、CAD等各種數(shù)據(jù)

    【ArcGIS Pro二次開發(fā)】(17):打開GDB、SHP、CAD等各種數(shù)據(jù)

    1、打開表格【Table】 2、打開要素類【FeatureClass】 3、以表格的形式打開一個要素類 這里雖然是以表格的形式打開,但是實際上它仍然是一個要素類,可以自由轉(zhuǎn)換格式。 4、打開要素數(shù)據(jù)集【FeatureDataset】 需要注意的是,打開shp文件,可以帶【.shp】的后綴,也可以不加。 如

    2023年04月21日
    瀏覽(64)
  • c# 通過現(xiàn)在文件夾,獲取下面所有的照片,并對其進(jìn)行統(tǒng)一尺寸裁剪

    c# 通過現(xiàn)在文件夾,獲取下面所有的照片,并對其進(jìn)行統(tǒng)一尺寸裁剪 using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Syst

    2023年04月26日
    瀏覽(30)
  • Unity 通過鼠標(biāo)控制模擬人物移動和旋轉(zhuǎn)視角

    Unity 通過鼠標(biāo)控制模擬人物移動和旋轉(zhuǎn)視角

    要通過鼠標(biāo)控制并模擬人物移動和轉(zhuǎn)換視角,將會使用射線檢測、鼠標(biāo)點(diǎn)擊和鼠標(biāo)水平移動,配合物體旋轉(zhuǎn)和移動方法共同實現(xiàn)。 首先搭建個由一個Plane地板和若干cube組成的簡單場景: 其次創(chuàng)建一個Capsule作為移動物體,并把攝像頭拉到該物體中。 創(chuàng)建以下腳本: ?把腳本拉

    2024年02月03日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包