明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 445|回复: 4

[提问] 请教acet-ss-drag-move函数如何响应用户输入

[复制链接]
发表于 2023-2-6 21:39 | 显示全部楼层 |阅读模式
(acet-ss-drag-move ss pt [prompt][highlight [cursor]])
据说可以响应用户输入,但是一直没有测试成功,
例如以下代码测试不成功,请教问题在哪里?
(initget 128 "B")
(acet-ss-drag-move (ssget)  (getpoint "\nbasePt:") "\nChoose Location ... ")


发表于 2023-2-7 08:37 | 显示全部楼层
  1. (DEFUN C:E1 ()
  2.   (VL-LOAD-COM)
  3.   (SETQ        SS (SSGET)
  4.         PT (GETPOINT "\n指定基点")
  5.   )
  6. (LY:ROTATE SS PT 0)
  7. ;;;  (LY:MOVE SS PT 2 )
  8. ;;;  (LY:SCALE SS PT 1 )
  9. )
  10. (DEFUN LY:ROTATE (SSX P cur / I E ANG)
  11.   (SETQ        ANG (ACET-SS-DRAG-ROTATE SSX P "\n指定旋转角度" cur)
  12.         I   0       
  13.   )
  14.   (PRINC (TYPE ANG))
  15.   (foreach E (acet-ss-to-list ssx)
  16.     (VLA-ROTATE
  17.       (VLAX-ENAME->VLA-OBJECT E)
  18.       (VLAX-3D-POINT P)
  19.       ANG
  20.     )
  21.   )

  22. ;;;  (REPEAT (SSLENGTH SSX)
  23. ;;;    (SETQ E (SSNAME SSX I))
  24. ;;;    (VLA-ROTATE
  25. ;;;      (VLAX-ENAME->VLA-OBJECT E)
  26. ;;;      (VLAX-3D-POINT P)
  27. ;;;      ANG
  28. ;;;    )
  29. ;;;    (SETQ I (1+ I))
  30. ;;;  )
  31.   (princ)
  32. )
  33. (DEFUN LY:MOVE (SSX P1 cur / I E ANG)
  34.   (SETQ        P2 (ACET-SS-DRAG-move SSX P1 "\n指定第二个点" cur)
  35.         I  0
  36.   )
  37.   (foreach E (acet-ss-to-list ssx)
  38.     (VLA-MOVE
  39.       (VLAX-ENAME->VLA-OBJECT E)
  40.       (VLAX-3D-POINT P1)
  41.       (VLAX-3D-POINT P2)
  42.     )
  43.   )
  44. ;;;  (REPEAT (SSLENGTH SSX)
  45. ;;;    (SETQ E (SSNAME SSX I))
  46. ;;;    (VLA-MOVE
  47. ;;;      (VLAX-ENAME->VLA-OBJECT E)
  48. ;;;      (VLAX-3D-POINT P1)
  49. ;;;      (VLAX-3D-POINT P2)
  50. ;;;    )
  51. ;;;    (SETQ I (1+ I))
  52. ;;;  )
  53.   (princ)
  54. )

  55. ;;;
  56. ;;;(DEFUN LY:SCALE        (SSX P1 cur / I E N)
  57. ;;;;;;;;;缩放无动态显示
  58. ;;;  (SETQ        N (ACET-SS-DRAG-scale SSX P1 "\n指定比例因子" cur)
  59. ;;;        I 0
  60. ;;;  )
  61. ;;;  (PRINC (TYPE N))
  62. ;;;;;;  (REPEAT (SSLENGTH SSX)
  63. ;;;;;;    (SETQ E (SSNAME SSX I))
  64. ;;;;;;    (vla-ScaleEntity
  65. ;;;;;;      (VLAX-ENAME->VLA-OBJECT E)
  66. ;;;;;;      (VLAX-3D-POINT P1)
  67. ;;;;;;      (RTOS N 2 0)
  68. ;;;;;;    )
  69. ;;;;;;    (SETQ I (1+ I))
  70. ;;;;;;  )
  71. ;;;  (princ)
  72. ;;;)
复制代码



以前我研究的代码,都是可以运行的,缩放没法看到动态过程
 楼主| 发表于 2023-2-7 12:11 | 显示全部楼层
liuhe 发表于 2023-2-7 08:37
以前我研究的代码,都是可以运行的,缩放没法看到动态过程

您可能没有明白我表达的意思,我希望的是在acet-ss-drag-move动态拖动选择集过程中,
如果鼠标取点,可以正常执行。但如果输入自定义的关键字,无法返回关键字字符串。acet-ss-drag-move说明书提到可以配合initget设置关键字,但又没有给出相应的例子。
发表于 2023-2-7 15:47 | 显示全部楼层
和get类函数完全一样的用法

注意一下
如果加载了高飞鸟的DYN函数
那么返回值区别大小写
 楼主| 发表于 2023-2-7 16:46 | 显示全部楼层
masterlong 发表于 2023-2-7 15:47
和get类函数完全一样的用法

注意一下

经过尝试,搞定,感谢指点。
(Setq Ss     (Ssget)
      Basept (Getpoint "\nBasePt:")
)
(Initget "B")
(Setq Pt (Acet-Ss-Drag-Move Ss BasePt "\n选择点[选项(B)]:"))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-27 05:00 , Processed in 0.324337 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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