明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1920|回复: 4

还得请教一个可能有点菜的问题,请解答:

[复制链接]
发表于 2002-8-28 21:17:00 | 显示全部楼层 |阅读模式
在图中,用Autolisp编程,在求得P1和P2点后,自动将1图中的过P2点的线剪掉,即成图2样子。用的语句是
(command "_trim" p1 "" p2 "")
我发现,在线条很密或屏幕缩放比较小时,会发生错误,没有剪掉,这个语句有什么问题,怎么解决?
 楼主| 发表于 2002-8-28 21:19:00 | 显示全部楼层

图没贴上,请看

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2002-8-29 09:00:00 | 显示全部楼层

试试这个

不一定有用,
(command "_trim" "non" p1 "" "non" p2 "")
发表于 2002-8-29 11:13:00 | 显示全部楼层

发生错误的原因和拾取框的大小有关,可以

可以在程序中加入一句(setvar “pickbox” 0),这样在选择时就会精确定位.
发表于 2002-8-29 11:48:00 | 显示全部楼层

非也...

“双元表”,是AutoLISP特有的表数据类型之一,是一种针对AutoCAD数据库所特有的检索指针,就像是 (EntSel) 函数的返回值那样的数据结构。实际上也可以用 (List) 函数,按这种格式组成自定义的双元表。这种特有的数据结构,是在程序中使用CAGD技术的关键之一。
对于一些编辑命令,在指目标时,所指点位与处理的结果有关,就要在AutoLISP 中应当用双元表来“精确响应”要目标的提示,这也是AutoLISP特有的、相当有实用价值的技巧。这类命令有:DIM、EXTEND、TRIM、FILLET、CHAMFER、DIVIDE、MEASURE等等。下面有几个例子来说明双元表的使用技术:
例I:
如用 AutoLISP 制作的功能绘制较大图幅的图形时,一般是在全图幅显示下自动绘图,以便全面查看生成过程。在画机械图时,标尺寸是基本要求。但多数情况下要标尺寸的图线比较密集,其近旁还有不少其它对象,用指定点位来指目标,即使把目标选择框设置得相当小,也会一下子套住好几个目标,造成标注失败。如果为了能唯一地选中目标在程序中使用了 'ZOOM-W,又会加长运行时间。
较好的处理是使用双元表来响应关于DIM中“选择标注对象: ”的提示。用指定对象双元表的方法比指两个点标尺寸更方便和准确,而且能够标注各种尺寸。
如果EN是想要标注尺寸的图线的对象名(一般条件下可以在画好该对象后,紧接着用 (SetQ en (EntLast)) 得到),而 PT 是该对象上的,或对象近旁的一个点的点位表。一般直接使用生成该对象时的所用的点位。更详细的内容在下一个题目中讨论。

摘自《Visual LISP程序设计——技巧与范例》“5.3  对象描述双元表及其使用”
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 17:52 , Processed in 0.260135 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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