明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 617|回复: 3

C#动态绘图疑问

[复制链接]
发表于 2024-6-15 14:53:14 | 显示全部楼层 |阅读模式
本帖最后由 幽兰聆雨 于 2024-6-17 14:26 编辑

动态绘图的时候出现这种情况咋解决啊?教学视频没出现这种情况。
lisp能用redraw解决,C#有类似的方法不?

2024.6.17,找到问题了,和屏幕刷新没关系,polyline修改顶点方法使用错误,应该是SetPointAt。

  1. public class JigPdmx : EntityJig
  2. {
  3.      //定义JigPdmx的属性
  4.      private Point2d _startPoint;//外部输入赋值后不变
  5.      private Point2d _endPoint;//通过鼠标动态获取
  6.      private double _size;//外部输入赋值后不变
  7.      // 对象属性,不更新
  8.      public JigPdmx(Point2d StartPoint, double Size) // 定义外部输入数据
  9.          : base(new Polyline(6))//定义JigPdmx为具有6个点的polyline
  10.      {
  11.          this._startPoint = StartPoint;// 将JigPdmx的属性赋值
  12.          this._size = Size;//将JigPdmx的属性赋值
  13.      }
  14.      //用于更新自定义对象(JigPdmx)属性
  15.      protected override bool Update()
  16.      {
  17.          在这儿写一个类似redraw的操作
  18.          Point2d[] pts = _startPoint.GetPdmxPoint(_endPoint, _size);
  19.          ((Polyline)Entity).AddVertexAt(0, _startPoint, 0, 0, 0);
  20.          ((Polyline)Entity).AddVertexAt(1, pts[0], 0, 0, 0);
  21.          ((Polyline)Entity).AddVertexAt(2, pts[1], 0, 0, 0);
  22.          ((Polyline)Entity).AddVertexAt(3, pts[2], 0, 0, 0);
  23.          ((Polyline)Entity).AddVertexAt(4, pts[3], 0, 0, 0);
  24.          ((Polyline)Entity).AddVertexAt(5, _endPoint, 0, 0, 0);
  25.          return true;

  26.      }
  27.      //给_endPoint赋值
  28.      protected override SamplerStatus Sampler(JigPrompts prompts)
  29.      {
  30.          //声明提示信息
  31.          JigPromptPointOptions jppo = new JigPromptPointOptions("\n指定第二点");
  32.          jppo.UserInputControls = UserInputControls.Accept3dCoordinates;
  33.          //获取鼠标位置
  34.          PromptPointResult ppr = prompts.AcquirePoint(jppo);
  35.          //将当前鼠标位置点赋予_endPoint
  36.          _endPoint = ppr.Value.ToPoint2d();
  37.          return SamplerStatus.NoChange;
  38.      }
  39. }



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2024-6-15 16:16:47 | 显示全部楼层
https://gitee.com/inspirefunctio ... stShared/TestJig.cs
很多疑问直接在ifox搜就好了
 楼主| 发表于 2024-6-15 16:33:03 | 显示全部楼层
你有种再说一遍 发表于 2024-6-15 16:16
https://gitee.com/inspirefunction/ifoxcad/blob/jing/tests/TestShared/TestJig.cs
很多疑问直接在ifox ...

编程是感兴趣自学的,类似github这种平台不咋会用。
我看他定义TextPlacementJig : EntityJig的时候好像也没做刷新屏幕之类的操作啊?
发表于 2024-6-15 17:30:52 | 显示全部楼层
本帖最后由 你有种再说一遍 于 2024-6-15 17:53 编辑
幽兰聆雨 发表于 2024-6-15 16:33
编程是感兴趣自学的,类似github这种平台不咋会用。
我看他定义TextPlacementJig : EntityJig的时候好像 ...

JigEx已经封装好了,看参数提示就行了,加入队列就是刷新...
要慢慢学,不要觉得能够一下子追上我们,我也得学了几年才会git,总不能说凭借感兴趣就不看别人代码吧,那么去哪里看别人代码呢?要么我博客,要么github啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 04:49 , Processed in 0.157121 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表