明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2503|回复: 5

请问C#有办法实现lisp中grread的功能吗

[复制链接]
发表于 2014-2-12 11:13:39 | 显示全部楼层 |阅读模式
请问C#有办法实现lisp中grread的功能吗 或者部分功能
比如一段程序,即能实时获取鼠标坐标也能同时获取键盘按键,根据键盘不同按键实时运行不同子程序
按键盘的时候不需要空格确认 按键之后直接运行子程序
发表于 2014-2-19 09:23:50 | 显示全部楼层
用事件监控啊
发表于 2014-2-21 11:02:53 | 显示全部楼层
本帖最后由 efan2000 于 2014-3-18 16:00 编辑

  1. Dim track As Integer
  2.         track = 1
  3.         Dim t As Integer
  4.         Dim result As ResultBuffer = New ResultBuffer
  5.         Dim r As Integer
  6.         While track <> 0
  7.             r = mcnetarx.GlobalFunctions.AcedGrRead(track, t, result)
  8.             If r <> 5100 Then
  9.                 Exit While
  10.             End If
  11.             If t = 3 Then
  12.                 track = 0End If
  13.             If t <> 5 Then
  14.                 Exit While
  15.             End If
  16.         End While

t=3是点击鼠标右键时返回的类型
t=5是返回鼠标位置的类型
  1. Dim tvs() As TypedValue = result.AsArray()
  2. If tvs(0).TypeCode = 5009 Then
  3.     Dim p As Point3d = tvs(0).Value
  4.     e.WriteMessage(p.X & ", " & p.Y & ", " & p.Z)
  5. End If

如果类型码是5009,即RT3DPOINT,就是点的坐标值了。

调用库地址


 楼主| 发表于 2014-3-18 15:14:20 | 显示全部楼层
efan2000 发表于 2014-2-21 11:02
t=3是点击鼠标右键时返回的类型
t=5是返回鼠标位置的类型
如果类型码是5009,即RT3DPOINT,就是点的坐标 ...

谢谢 请问能改成C#吗?
发表于 2014-3-18 16:01:43 | 显示全部楼层
到这个地址下载,C#当然也可以调用了。
http://bbs.mjtd.com/thread-109091-1-1.html
发表于 2020-5-15 16:34:44 | 显示全部楼层
我也正研究这个问题,但才疏学浅,有没有高手简单写写,,谢谢,,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 06:53 , Processed in 0.162336 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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