找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 984|回复: 0

[讨论]:本月焦点--!矩阵!

[复制链接]
发表于 2002-11-12 12:44:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
[B]相关链接:
点钢筋缩放程序 http://www.xdcad.net/forum/showthread.php?postid=87937#post87937
关于矩阵在ACAD二次开发中的应用的讨论
http://www.xdcad.net/forum/showthread.php?s=&threadid=17118

以下讨论到的两个xdapi函数:
(xdrx_entity_getStretchPoint <实体名>) 返回特征拉伸点表
(xdrx_entity_moveStretchPoint <实体名> <移动向量> <p1>..[pn]) 拉伸点按照向量移动到指定位置
[/B]
  
高山流水-别问我是谁 说:
圆,圆心(0,0,0),半径r=3. 用拉伸的方法
高山流水-别问我是谁 说:
1。使其半径改为 5
高山流水-别问我是谁 说:
2。移动到(3,3,0)点
高山流水-别问我是谁 说:
用xdrx_entity_getStretchPoint 以及 (xdrx_entity_moveStretchPoint <实体名> <移动向量> <p1>..[pn])怎么写?
XDSoft 说:
两个API就是和STRETCH命令一样的效果
XDSoft 说:
其他缩放,用其他API
XDSoft 说:
缩放,
XDSoft 说:
构造缩放矩阵
XDSoft 说:
然后作用到实体上
高山流水-别问我是谁 说:
那好吧,换一个 用夹点拉伸直线
XDSoft 说:
stretch API就是 stretch
高山流水-别问我是谁 说:
p1 (0,0,0)  p2(1,1,0)
XDSoft 说:
就是你在命令行交互输入@xx,xx,xx
那向量就是 (2,2,0)
高山流水-别问我是谁 说:
用xdrx_entity_getStretchPoint 返回的点表是 '((0,0,0)(1,1,0))?对否
XDSoft 说:
对啊
高山流水-别问我是谁 说:
(xdrx_entity_moveStretchPoint ent (2,2,0) <p1>..[pn]) 这些p*怎么用?
XDSoft 说:
可以同时拉多个
XDSoft 说:
必须给一个
XDSoft 说:
(xdrx_entity_moveStretchPoint ent (2,2,0) p2)
XDSoft 说:
就拉伸P2点
XDSoft 说:
(xdrx_entity_moveStretchPoint ent (2,2,0) p1)
XDSoft 说:
就拉伸P1
XDSoft 说:
(xdrx_entity_moveStretchPoint ent (2,2,0) p1 p2)
XDSoft 说:
两个都拉伸
XDSoft 说:
相当移动了
XDSoft 说:
第一个参数得到的其中一个你想拉的
XDSoft 说:
第一个函数
XDSoft 说:
是所有拉伸点中的一个
XDSoft 说:
告诉函数拉哪个点
高山流水-别问我是谁 说:
哦,如果 (setq lst (xdrx_entity_getStretchPoint (entsel)))
XDSoft 说:
想拉第二个
XDSoft 说:
就(setq p (cadr lst))

高山流水-别问我是谁 说:

你是在每个点 框起来 拉伸么?
XDSoft 说:
不用啊
高山流水-别问我是谁 说:
程序中是否用了个小的包围框来拉伸?
高山流水-别问我是谁 说:
是什么方法?
XDSoft 说:
你程序愿意怎么交互,就怎么交互
XDSoft 说:
最后你得到需要拉伸的点
XDSoft 说:
就行哦
XDSoft 说:
拉伸点位置返回是固定的
高山流水-别问我是谁 说:
我是问编程的思路,不是实际应用是的情形
XDSoft 说:
你有方法知道是拉伸哪个点就行了
高山流水-别问我是谁 说:
arx方法?
XDSoft 说:
STRETCH的窗选也是确定拉伸点
XDSoft 说:
比如你拉尺寸界线
XDSoft 说:
不一定要让用户窗口选
XDSoft 说:
可以点选附近
XDSoft 说:
然后你就能算出是哪个拉伸点离用户点近
XDSoft 说:
根据交互输入的距离,就可以拉伸了
高山流水-别问我是谁 说:
嗯知道了
高山流水-别问我是谁 说:
那你是怎么求那些拉伸点的?不用实体表?
高山流水-别问我是谁 说:
你的(xdrx_entity_getStretchPoint ent)是怎么做的?
XDSoft 说:
ARX有提供
XDSoft 说:
我只是做到LISP能用
高山流水-别问我是谁 说:
哦,arx有提供拉伸点的函数
高山流水-别问我是谁 说:
有提供夹点的函数么?
XDSoft 说:
当然,ARX是最底层的
XDSoft 说:
你说的其他,都可以用构筑矩阵来做
高山流水-别问我是谁 说:
知不知道 vlisp里面有没有提供夹点的函数?
XDSoft 说:
夹点只是提供一个交互
XDSoft 说:
没有
高山流水-别问我是谁 说:
看来我是要好好学学 矩阵了
XDSoft 说:
学好后,你编程思路都会变化
高山流水-别问我是谁 说:
期待
XDSoft 说:
试验尺寸吧
XDSoft 说:
STRETCH是最方面的命令
XDSoft 说:
但是写程序很难实现
XDSoft 说:
提供这两个API,就可以用LISP轻松实现STRETCH了
XDSoft 说:
很多程序都会变的很短的
XDSoft 说:
你不用在算复杂的组码
XDSoft 说:
http://www.xdcad.net/forum/showt ... post&forumid=97
XDSoft 说:
你去看看这个演示,用矩阵的方法,变换实体


----------梦断江南整理
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-3-29 16:19 , Processed in 0.338992 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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