找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1394|回复: 10

[求助] 关于论坛中的块平齐

[复制链接]

已领礼包: 127个

财富等级: 日进斗金

发表于 2013-10-11 21:38:39 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 spp_wall 于 2013-10-11 21:42 编辑

(defun c:XDTB_ObjAlign (/ box1 e1 e2 mat p1 pd1 pd2 ps1 ps2 vd vs)
  (if (setq e1 (xdrx_entsel "\n拾取平齐的基线<退出>:" '((0 . "LINE,*POLYLINE"))))
    (progn
      (while (setq e2 (car (xdrx_entsel "\r选取要平齐的对象<退出>:")))
        (setq box1 (XD::Entity:BoxAtEcs e2 e2)
              ps1 (car box1)
              ps2 (cadr box1)
              vs (xdrx_vector_normalize (mapcar
                                          '-
                                          ps2
                                          ps1
                                        )
                 )
              p1 (cadr e1)
              e1 (car e1)
              pd1 (xdrx_curve_getClosestPoint e1 p1)
              vd (xdrx_curve_getFirstDeriv e1 p1)
              vd (if (xdrx_vector_IsCodirectional vs vd)
                   vd
                   (xdrx_vector_negate vd)
                 )
              pd2 (mapcar
                    '+
                    p1
                    vd
                  )
              mat (XD::Matrix:Align ps1 ps1 pd1 ps2 pd2)
        )
        (xdrx_entity_transform e2 mat)
      )
    )
  )
  (princ)
)

是不是能修改下 能对下面这个图适用!

块平齐.gif

temp.zip

9.51 KB, 下载次数: 3

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

已领礼包: 685个

财富等级: 财运亨通

发表于 2013-10-11 21:57:25 | 显示全部楼层
'((0 . "LINE,*POLYLINE"))))   为什么 POLYLINE 前要加个*    ?

点评

*POLYLINE表示 可以是 LWPOLYLINE 也可以是POLYLINE  详情 回复 发表于 2013-10-11 22:03
pline分LWPOLYLINE和polyline两种,前者是二维,整条线一定在一个平面,后者可以是三维空间线,可以看看CURVE类,ARC CIRCLE ELLIPSE SPLINE,曲线  详情 回复 发表于 2013-10-11 22:02
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-10-11 22:02:35 来自手机 | 显示全部楼层
本帖最后由 st788796 于 2013-10-11 22:05 编辑
ysq101 发表于 2013-10-11 21:57
'((0 . "LINE,*POLYLINE"))))   为什么 POLYLINE 前要加个*    ?


pline分LWPOLYLINE和polyline两种,前者是二维,整条线一定在一个平面,后者可以是三维空间线,可以看看CURVE类,ARC CIRCLE ELLIPSE SPLINE,曲线

楼主把这些标志块补全,约定路边图层,程序好写

点评

最近才开始准备学lisp 现在还是入门 只会用别人写的东西! 其实我是这样想的 把每个安全设施的块 的 中心定于原点 位置垂直于中心点 这样对齐线的时候就有规律可以遵循 但是如果要自己改 我估计一  详情 回复 发表于 2013-10-12 11:46
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-10-11 22:03:47 | 显示全部楼层
ysq101 发表于 2013-10-11 21:57
'((0 . "LINE,*POLYLINE"))))   为什么 POLYLINE 前要加个*    ?

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-10-11 22:06:36 | 显示全部楼层
对齐是按照块的角度定的。 你的想对齐哪个边,做块的时候做好。这个是通用的程序。

如果你想适合任意,那么就要选2点,单个实体对齐了,那样和ALIGN命令就没什么太大区别了。

你要批量,就一定要有个规则,程序可以调适合你这个,但也只适合你这样需要的角度。其他就不适用了。

点评

2008为什么无法加载 XDRX_API.R17.X32.arx  详情 回复 发表于 2013-10-12 15:34
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 127个

财富等级: 日进斗金

 楼主| 发表于 2013-10-12 11:46:17 | 显示全部楼层
st788796 发表于 2013-10-11 22:02
pline分LWPOLYLINE和polyline两种,前者是二维,整条线一定在一个平面,后者可以是三维空间线,可以看 ...

最近才开始准备学lisp   现在还是入门  只会用别人写的东西!

其实我是这样想的   把每个安全设施的块  的 中心定于原点  位置垂直于中心点   这样对齐线的时候就有规律可以遵循

但是如果要自己改  我估计一时半会是做不到!  

有没好心人出手修改下{:soso_e100:}

点评

你这不有思路了,先把块定义搞好,中心在哪,块定义一定做成水平,这样你修改块的角度就可以实现与线平齐。 你用在位编辑修改下块定义,然后再试上面的程序  详情 回复 发表于 2013-10-12 11:56
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-10-12 11:56:24 来自手机 | 显示全部楼层
spp_wall 发表于 2013-10-12 11:46
最近才开始准备学lisp   现在还是入门  只会用别人写的东西!

其实我是这样想的   把每个安全设施的块 ...

你这不有思路了,先把块定义搞好,中心在哪,块定义一定做成水平,这样你修改块的角度就可以实现与线平齐。

你用在位编辑修改下块定义,然后再试上面的程序
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 127个

财富等级: 日进斗金

 楼主| 发表于 2013-10-12 15:34:04 | 显示全部楼层
newer 发表于 2013-10-11 22:06
对齐是按照块的角度定的。 你的想对齐哪个边,做块的时候做好。这个是通用的程序。

如果你想适合任意, ...

2008为什么无法加载  XDRX_API.R17.X32.arx

点评

你操作系统是什么? XP OR WIN7?  详情 回复 发表于 2013-10-12 15:57
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-10-12 15:57:29 | 显示全部楼层
spp_wall 发表于 2013-10-12 15:34
2008为什么无法加载  XDRX_API.R17.X32.arx

你操作系统是什么? XP OR WIN7?

点评

XP的 家里06的 可以用  详情 回复 发表于 2013-10-12 22:36
估计是Windows XP  详情 回复 发表于 2013-10-12 17:57
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-10-12 17:57:47 来自手机 | 显示全部楼层
newer 发表于 2013-10-12 15:57
你操作系统是什么? XP OR WIN7?

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

使用道具 举报

已领礼包: 127个

财富等级: 日进斗金

 楼主| 发表于 2013-10-12 22:36:08 | 显示全部楼层
newer 发表于 2013-10-12 15:57
你操作系统是什么? XP OR WIN7?

XP的  

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 11:41 , Processed in 0.213550 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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