明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1404|回复: 8

请大家来帮我看看一个编程的问题

[复制链接]
发表于 2004-5-28 21:27:00 | 显示全部楼层 |阅读模式
我在编程中使用了GETENTITY函数,其目的有两个,一个用于得到一个实体(直线),另外我想同时精确的得到在它上面的一个点坐标。


GETENTITY包括两个参数,一个是输出的直线实体对象,一个是在图形上选择的点的坐标,然而由于点的位置在选择的时候不一定就在被选直线实体上,我不得不进行如下操作;


当子过程运行到该函数时,在选择点时为了使选择的点在直线上,都必须人为的按住SHIFT+鼠标右键来临时选取最近点以使得到的点在直线上来完成,十分麻烦。


不知道斑竹和各位有没有这方面的编程经验,在编程代码中来自动实现点的定位。谢谢
发表于 2004-5-28 21:36:00 | 显示全部楼层
你要得到什么点,总不会是直线上任一点吧?


直线有端点可以直接得到。
 楼主| 发表于 2004-5-28 21:42:00 | 显示全部楼层
TO:mikewolf2k 是用户在图形上任意选择的一点,但必须在直线上,由于GETENTITY所提取的点很难在直线上,所以需要用到临时捕捉最近点的办法来得到这个点,但是我找不到通过程序来实现临时捕捉最近点的办法。
发表于 2004-5-28 21:51:00 | 显示全部楼层
自己算吧,一个点到直线上的垂直点。
发表于 2004-5-28 21:51:00 | 显示全部楼层
设置cad系统变量OSMODE,例如: Dim sysVarName As String
Dim varData As Variant
Dim intData As Integer
Dim returnPnt As Variant
sysVarName = "OSMODE" '系统变量类别
varData = ThisDrawing.GetVariable(sysVarName) '存储cad原有物体捕捉的设置
intData = varData
ThisDrawing.SetVariable sysVarName, 512 '设置自定义的捕捉模式为NEA(最近点)
returnPnt = ThisDrawing.Utility.GetPoint(, "请选择点位!")
ThisDrawing.SetVariable sysVarName, 0 '取消捕捉
returnPnt = ThisDrawing.Utility.GetPoint(, "请指定位置!")
ThisDrawing.SetVariable sysVarName, intData '恢复原有设置模式
Update 其中,参数说明: OSMODE 系统变量
使用下列位码设置“对象捕捉”的运行模式: 0 NON(无) 1 END(端点) 2 MID(中点) 4 CEN(圆心) 8 NOD(节点) 16 QUA(象限点) 32 INT(交点) 64 INS(插入点) 128 PER(垂足) 256 TAN(切点) 512 NEA(最近点) 1024 QUI(快速) 2048 APP(外观交点) 4096 EXT(尺寸线) 8192 PAR(平行)
 楼主| 发表于 2004-5-28 22:03:00 | 显示全部楼层
sdxylijian:这个方法我试过,但是似乎对GETENTITY函数不管用,联想到这个函数是选择实体对象的用途,我们在AUTOCAD中,不管有没有设置捕捉对象,在选择实体对象中鼠标都显示为一个方框,而没有捕捉功能,只能再按SHIFT+鼠标右键,选择最近点来实现临时性捕捉,最终点落到直线上,这样对用户很不方便。
 楼主| 发表于 2004-5-28 22:06:00 | 显示全部楼层
请教斑竹,有没有我首先获得点,然后获得直线实体的实现方式,只要在用户操作看来只是选择了直线上的一点就行,最好是采用能基于对象捕捉的函数,如选择GETPOINT函数,这样更加直观。
发表于 2004-5-28 23:15:00 | 显示全部楼层
可以先获取点,然后以这个点为中心,做一个小小的矩形,选择落在这个区域的对象。
 楼主| 发表于 2004-5-29 08:55:00 | 显示全部楼层
感谢两位斑竹和大家的热心帮助,采用efan2000的办法终于实现了我需要的功能。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 05:48 , Processed in 0.164500 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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