carrot1983 发表于 2020-10-15 00:55:00

DrawJig模仿Move时能否不显示原对象

用lisp可以轻松实现。
(defun C:TEST (/ DATA GRR GRRPT KEY LOOP OBJECTS PT SS)
;; by carrot1983 2020.09.29
(setq SS (ssget))
(setq PT (getpoint "\n指定点:"))
(setq OBJECTS (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex SS)))))
(setq LOOP t)
(while LOOP
    (setq GRR (grread t 15 2))
    (setq KEY (car GRR))
    (setq DATA (cadr GRR))
    (cond ((= KEY 5)
         (setq GRRPT DATA)
         (foreach O OBJECTS
             (vla-move O (vlax-3d-point PT) (vlax-3d-point GRRPT))
         )
          ) ;_移动
          ((or (= KEY 3) (= DATA 13))
         (setq LOOP NIL)
          ) ;_3左击 13回车 表示确认
          ((member KEY '(12 25))
         (redraw)
         (setq LOOP NIL)
          ) ;_右键退出
    )
    (setq PT GRRPT) ;_新基点
)
(redraw)
)
如果用drawjig 怎么修改以下代码。实现不显示原对象?
public class MoveJig : DrawJig
    {
      protected Point3d basePt;
      protected Entity[] entities;
      public MoveJig(Entity[] entities, Point3d basePt)
      {
            this.entities = entities;
            this.basePt = basePt;
      }
      public Matrix3d Displacement { get; private set; }
      protected override SamplerStatus Sampler(JigPrompts prompts)
      {
            var options = new JigPromptPointOptions("\nSecond point: ");
            options.UserInputControls = UserInputControls.Accept3dCoordinates;
            options.BasePoint = basePt;
            options.UseBasePoint = true;
            options.Cursor = CursorType.RubberBand;
            var result = prompts.AcquirePoint(options);
            if (basePt.DistanceTo(result.Value)
https://cdn.jsdelivr.net/gh/hishis/forum-master/public/images/patch.gif

brainstorm 发表于 2020-10-17 13:27:00

cad 自己的移动命令都显示 估计很难

brainstorm 发表于 2021-3-23 23:49:00

Lisp 轻松实现的功能,到.net的时候困难真不少。有没有高人出来指点一二。

brainstorm 发表于 2020-11-18 21:07:00

这样行么 但是图元多的时候可能会慢

zixuan203344 发表于 2020-10-15 16:51:00


一楼的代码就是这样子的。

brainstorm 发表于 2020-10-15 19:35:00

找到办法了

carrot1983 发表于 2020-10-15 23:07:00

可以把原图像的透明度变成100%,这样就不显示了。
页: [1]
查看完整版本: DrawJig模仿Move时能否不显示原对象