mokson 发表于 2018-5-8 19:32:47

CAD能否编程以实现一个图层有这样的效果?

本帖最后由 mokson 于 2018-5-9 08:26 编辑

在CAD主窗口里创建一个图层,但这个图层很特别,是一个固态层,
也就是说这个图层上的对象是固定的,置顶的,且不会因为随着鼠标的平移或缩放而改变其位置或大小。
我不懂编程,不知道这样的图层会不会可能实现?
我想是不是 application , mainwindow 这些对象的子对象属性呢?求知,谢谢。

zhangcan0515 发表于 2018-5-8 20:07:04

0层不就可以

fan_zh 发表于 2018-5-9 17:59:04

布局
也就是图纸空间试试

edata 发表于 2018-5-9 23:51:49

多线程加 grdraw

mokson 发表于 2018-5-10 09:31:52

edata 发表于 2018-5-9 23:51
多线程加 grdraw

不明白,可否来个代码例子?

edata 发表于 2018-5-12 15:37:37

注意,以下代码可能会出现不可描述的问题,请注意一定要在新开的cad中进行测试。
该例子正常运行后会在绘图区绘制红色对角线一根。

代码采用的是高飞鸟的定时器方案,详见帖子
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=107012&extra=page%3D2%26filter%3Dtypeid%26typeid%3D108
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=90447&page=1&extra=#pid604291
(defun C:killTimer()
(HFB_KillLispTimer)
(princ)
)
(defun zj-get-scr-coods (/ half_h half_w pt_cen lst ptx pty)
   (setq pt_cen (trans (GETVAR "VIEWCTR") 1 2)
   ptx (car pt_cen)
   pty (cadr pt_cen)
      half_h (* 0.5 (GETVAR "VIEWSIZE"))
   half_w (* half_h (/ (car (GETVAR "SCREENSIZE")) (cadr (GETVAR "SCREENSIZE"))))
   )
(LIST (LIST (- ptx half_w) (- pty half_h)) (LIST (+ ptx half_w) (+ pty half_h)))

)
(defun c:tt()

(defun TimerCallback5 (hWnd nMsg nTimerid dwTime)
    (setq pts(zj-get-scr-coods))
    (redraw)
    (grdraw (car pts)(cadr pts) 1)   
)
(HFB_KillLispTimer)
(setq t5 (HFB_SetLispTimer "TimerCallback5" 50 ))
(vl-bb-set 't5 t5)
)

mokson 发表于 2018-5-13 08:34:03

本帖最后由 mokson 于 2018-5-13 08:37 编辑

我将它保存为 lsp 文件后并加载到CAD,然后运行命令: KILLTIMER,
提示错误: no function definition: HFB_KILLLISPTIMER
即:未定义函数:HFB_KILLLISPTIMER

edata 发表于 2018-5-26 17:34:19

代码采用的是高飞鸟的定时器方案
相关插件在哪个网址里面。。。

bskidtf 发表于 2024-5-28 23:16:32

是想一直屏幕显示某些东西吧

bskidtf 发表于 2024-5-28 23:18:47

这个用ARX实现容易些
页: [1]
查看完整版本: CAD能否编程以实现一个图层有这样的效果?