vjcad 1.0.11 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/types.d.ts CHANGED
@@ -6310,31 +6310,35 @@ declare class LineDrawer {
6310
6310
  */
6311
6311
  getMaxSegmentLimit(): number;
6312
6312
  /**
6313
- * 绘制简单线型(只包含实线、间隙、点)
6314
- * @param definition - 线型定义
6315
- * @param {Point2D} endPoint - 结束点
6316
- */
6317
- drawSimpleLinetype(definition: {
6318
- getSimplePattern: () => number[];
6319
- }, endPoint: Point2D$1): void;
6320
- /**
6321
- * 绘制复杂线型(包含文字和形状)
6322
- * @param definition - 线型定义
6323
- * @param {Point2D} endPoint - 结束点
6313
+ * 按"沿路径累计相位"绘制自定义线型(dash / 间隙 / 点 / 文字 / 形状)。
6314
+ *
6315
+ * 关键修复:旧实现按单条线段独立计算相位,且当线段短于一个完整线型周期时
6316
+ * 整段回退为实线(completeCycles === 0 → cadLineTo_Continuous),导致被细分为
6317
+ * 大量短段的曲线(如 bulge 多段线)虚线被画成实线、线型中的符号(▲/文字)几乎
6318
+ * 全部丢失。这里改为读取/写回 this.gr.linetypePhase 让相位跨段连续累计,
6319
+ * 只绘制落在当前线段内的那部分图案,且不再因单段过短而回退实线。
6320
+ *
6321
+ * 简单线型与复杂线型统一在此处理:DASH/GAP 推进相位,DOT/像素点/文字/形状
6322
+ * 0 长度符号、绘制在当前累计位置且不推进相位。
6323
+ *
6324
+ * @param definition - 线型定义(含 elements)
6325
+ * @param endPoint - 当前线段终点(起点为 this.gr.currentPoint)
6324
6326
  */
6325
- drawComplexLinetype(definition: {
6327
+ drawLinetypePatternTo(definition: {
6326
6328
  elements: Array<{
6327
6329
  type: string;
6328
6330
  length: number;
6329
- scale?: number;
6330
- xOffset?: number;
6331
- yOffset?: number;
6332
- rotation?: number;
6333
- rotationMode?: string;
6334
- text?: string;
6335
- style?: string;
6336
6331
  }>;
6337
6332
  }, endPoint: Point2D$1): void;
6333
+ /**
6334
+ * 绘制线型中的 0 长度符号元素(点 / 像素点 / 文字 / 形状)。
6335
+ * @param element - 符号元素
6336
+ * @param lineStart - 线段起点
6337
+ * @param lineAngle - 线段角度(弧度)
6338
+ * @param distanceAlong - 符号在线段上距起点的距离
6339
+ * @param ltscale - 线型比例
6340
+ */
6341
+ emitLinetypeSymbol(element: any, lineStart: Point2D$1, lineAngle: number, distanceAlong: number, ltscale: number): void;
6338
6342
  /**
6339
6343
  * 计算文字旋转角度
6340
6344
  * @param {string} rotationMode - 旋转模式 (U=正立, R=相对, A=绝对)
@@ -6564,6 +6568,7 @@ declare class CadGraphics extends Graphics {
6564
6568
  currentPoint: Point2D$1;
6565
6569
  ltscale: number;
6566
6570
  lineType: string;
6571
+ linetypePhase: number;
6567
6572
  DIST1: number;
6568
6573
  DIST2: number;
6569
6574
  skipRenderOriginOffset: boolean;
@@ -32590,6 +32595,18 @@ declare class CanvasController {
32590
32595
  * 检查并设置渲染原点
32591
32596
  */
32592
32597
  private checkAndSetRenderOrigin;
32598
+ /**
32599
+ * 在视图缩放确定后,按当前缩放强制重建所有桶。
32600
+ *
32601
+ * 用途(文档加载首帧):setActiveDocument 中的 regen(true) 可能在 currentSpace.zoom==0
32602
+ * (尚未 zoomExtents 自适应)时就把实体栅格化进桶。此时线宽换算 LineWeightResolver.toWorldWidth
32603
+ * 对 zoom<=0 的兜底是"把屏幕像素直接当成世界宽",于是小半径实体(如圆)被一条很粗的描边
32604
+ * 糊成实心。zoomExtents 之后才把 zoom 设为真实值,但桶仅在 renderOrigin 变化时才会重建
32605
+ * (见 checkAndSetRenderOrigin);对"文档已带 renderOrigin"的大坐标图,桶会停留在 zoom=0
32606
+ * 的错误线宽,表现为加载即实心,需手动"全部重绘"/拖夹点才恢复。
32607
+ * 本方法在 zoom 就绪后重建桶,等价于手动"全部重绘",但走更轻量的局部重绘路径。
32608
+ */
32609
+ rebuildBucketsAtCurrentZoom(): void;
32593
32610
  /**
32594
32611
  * 获取当前屏幕内的实体
32595
32612
  * @param expandFactor - 屏幕边界扩展因子(默认1.0,不扩展)