唯杰地图 logo唯杰地图
VJMAP
EN

overview

vjcad/references/property/overview.md 2.2 KB42 行
原文

本文回答:实体的"属性"分两类:① 对象属性 color / layer / lineType / lineTypeScale / lineWeight / visible / transpMgr;② 默认属性 setDefaults() 套用 Engine.CECOLOR / CELTYPE / CELTSCALE + Engine.currentDoc.CLAYER(Engine.CLAYER 不存在),并把透明度重置为 ByLayer,不碰线宽;不调用时为构造默认 color=256 / lineType='ByLayer' / lineTypeScale=1 / lineWeight=-1 / 图层 '0';扩展数据走 entity.setExtData(appName, dataObj) 与 entity.extData / hasExtData / clearExtData。

一、按子主题挑

想做的 子主题
颜色(ACI / RGB) / 线型 / 线宽 color-linetype
透明度 / 可见性 transparency-visibility
setDefaults() 套用系统默认 set-defaults
扩展数据 XData(DWG 兼容) xdata

二、最常用属性速查

ent.color = 1;                       // ACI
ent.color = 0x1000000 + 0xFF8000;    // RGB
ent.layer = '墙体';                  // 图层不存在时静默落到 '0',先 Engine.createLayer
ent.lineType = 'HIDDEN';
ent.lineTypeScale = 1.5;
ent.lineWeight = 50;                 // = 0.50mm;-1 = ByLayer
ent.visible = false;                 // DXF 60,对实体级别隐藏
ent.transpMgr.setTp100(50);          // 透明度 0~90(>90 钳为 90,完全隐藏用 visible=false)
ent.transpMgr.setValue(-1);          // ByLayer 透明度
ent.setExtData('MyApp', { ... });    // 扩展数据

MCP 参考:vjcad/example/property/01color.js ~ 08visibility.js、vjcad/doc/property/index.md。

三、修改属性后的刷新策略

改了... 是否需要 Engine.regen()
color / lineType / lineWeight 等绘制属性 不会自动:setter 只 setModified() 标脏,改完须 Engine.regen()
visible 必须 Engine.regen()
move/rotate/scale/mirror 几何变换 必须 Engine.regen()
setExtData / 业务字段 不影响显示,可不刷新

参考(官方文档 MCP)

  • 文档:vjcad/doc/property/index.md
  • 示例:vjcad/example/property/01color.js ~ 08visibility.js