找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1065|回复: 7

[求助] [求助]:传说中的大虾帮忙呀关于块的交点??

[复制链接]
发表于 2006-2-6 11:10:27 | 显示全部楼层 |阅读模式

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

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

×
我在做管道路径标注程序遇到一些问题:
具体表现为直线和块的交点用INTERSCTWITH方法求不出来??
或交点的值误差较大,我狂晕,神呀 快救救我吧





[dwf]d:\drawing1.dwg[/dwf]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-2-6 11:36:28 | 显示全部楼层
你可把块炸开,求交点后undo一步
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-6 15:22:01 | 显示全部楼层
难道没有别的方法了吗???
能不能直接解决呢!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-7 22:45:33 | 显示全部楼层
不如用其它方法吧
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-2-8 08:32:22 | 显示全部楼层

  1. (defun c:tt ()
  2.   (if (and (setq e (car (entsel "\nSelect Line: ")))
  3.            (setq blk (car (entsel "\nSelect Block: ")))
  4.       )
  5.     (progn
  6.       (setq blkobjs (safearray-value
  7.                       (vla-explode (vlax-ename->vla-object blk));_只有等比Insert才可以,否则只能用 explode 命令
  8.                     )
  9.             ln            (vlax-ename->vla-object e)
  10.       )
  11.       (foreach b blkobjs
  12.         (setq pts (vla-intersectwith b ln acextendnone))
  13.         ;;...求交点
  14.       )
  15.       ;;...各种操作
  16.       (mapcar 'vla-delete blkobjs) ;_删除多余实体
  17.     )
  18.   )
  19.   (princ)
  20. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-8 15:32:02 | 显示全部楼层
高手们  能不能编写个类似intersectwith方法的函数呢?????
我是没有什么办法了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-10 01:15:37 | 显示全部楼层
编程大致的思路以供参考

1; 子程序A,遍列块中所有实体, 过滤出 直线 , 多义线 , 弧线, 组成 表a   
(可以利用xd函 数 , 网上有这类程序 )   
2; 用 nentsel 选块 , nentsel 可以返回实体名 --->  子程序A
                                          nentsel 还返回了一个矩阵B  , 这个矩阵i是这个程序的关键   
3; 子程序B , 把矩阵B 转换成  矩阵B的逆矩阵C (可以利用xd函 数 , 网上有这类程序 )
4; 选择直线c 得到直线两端点 D,F,   利用 逆矩阵C 把 D,F 两 点 转 换 成 块 内 坐 标
    并生成新直线G
5;   直线G与 表a用 intersectwith 可以获得交点 , 组成交点表   , 删除直线G

6;用矩阵B 把 交点表 转化 成块外世界坐标系坐标 。
这样其 交点就 得到了 。  可能思路 和 程序 有点出路, 但原理 应该是这样的   

基本知识 , 块中坐标系 与 块外的世界坐标系是不同的, 所以线的端点坐标在块里 和 块外是 不同的。 可以 利用 nentsel对块返回的矩阵, 把  端点坐标进行转换   


研究一下 附件 JonFleming.LSP 是个比较经典 的点 在块里块外的转换  
程序
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-10 12:39:52 | 显示全部楼层
终于 又看见高手了 斑竹应奖励呀 感谢呀
下载研究一下  程序中有说明 并且很详细呀 真是感谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-29 02:40 , Processed in 0.182123 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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