关键信息梳理已有工具:LayerHelper.EnsureLayerExist:用来确保图层存在,可直接复用;LayerDefine.ColorRaw需要转成ZwCAD颜色对象外部块导入逻辑:参考你给的ReadDwgFile+db.Insert这套流程;CommBaseDB.PluginEnvironment.TemplateBlocksPath(codeDefine.BlockName)拿到外部dwg完整路径AddSingleDirectionArrow是创建BlockReference的工具方法,可以借鉴,点管点就复用这套创建块引用逻辑codeDefine.PipeType区分Point / Line;Point插入块,Line后续绘制多段线注意事项ZWCAD事务不要嵌套,导入外部块会销毁旧事务,和你示例代码保持一致图层:拿codeDefine.LayerInfo,先确保图层存在,块引用/线实体指定该图层先完成点要素(插块)完整逻辑;线要素预留占位;属性挂载预留注释TODO;异常输出编辑器消息ed.WriteMessage不改动原有UI、树、单例代码,只重写OnStartDrawElement依赖说明:LayerHelper、CommPipe.EntityTypeHelper、PluginEnvironment、AddSingleDirectionArrow都是你项目现有类,直接调用需要拿到ZwCAD Editor / Database,插件内一般var db=HostApplication.WorkingDatabase; var ed=HostApplication.WorkingEditor;protectedvirtualvoidOnStartDrawElement(CodeDefinecodeDefine){vardb=HostApplication.WorkingDatabase;vared=HostApplication.WorkingEditor;if(db==null||ed==null){ed?.WriteMessage("\nCAD文档未打开,无法绘制要素");return;}//1. 处理图层:根据LayerDefine确保图层存在varlayerDef=codeDefine.LayerInfo;stringtargetLayerName=layerDef.LayerKey;// ColorRaw是数据库存的颜色字符串,这里假设你已有工具方法把原始字符串转为ZwCAD ColorZwSoft.ZwCAD.Colors.ColorlayerColor=LayerHelper.ParseRawColor(layerDef.ColorRaw);using(vartrCheckLayer=db.TransactionManager.StartTransaction()){if(!LayerHelper.IsLayerExists(trCheckLayer,db,targetLayerName