找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1075|回复: 12

[编程申请]:请求编一个可以查找0/90/180/270度的直线的LSP程序!谢谢

[复制链接]
发表于 2005-9-5 14:48:33 | 显示全部楼层 |阅读模式

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

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

×
编一个可以查找0/90/180/270度的直线的LSP程序!谢谢!
或者说编一个 查找平行XY的直线的程序,谢谢!
或者说编一个 查找不平行XY的直线的程序,谢谢!

只要满足以上任何一个就可以了,谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-9-5 15:09:13 | 显示全部楼层 |阅读模式

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

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

×
不明白为什么还要编写程序?
CAD本身的命令能解决。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-9-5 15:09:54 | 显示全部楼层
如果一定要程序。WKAI的选择易 
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-5 15:23:37 | 显示全部楼层
谢谢!
我希望是能同时满足条件,满足0/90/180/270度的直线一起选出来
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-5 18:29:52 | 显示全部楼层
试试:
  1. [FONT=courier new](load "xyp_lib")
  2. ;|加载通用函数(可在签名栏直接下载)
  3. 如果已经下载xyp_lib并放到搜索路径下可以不再下载!
  4. 利用以下任何一种方式即可加载和运行通用函数内的所有子程序:
  5. 1.在acad.lsp中增加(load"xyp_lib")
  6. 2.在每个程序内增加(load"xyp_lib")
  7. 3.在command下,输入(load"xyp_lib")
  8. 4.在菜单.mnl中增加(load"xyp_lib")
  9. 5.将xyp_lib.vlx文件直接拽到cad屏幕
  10. [COLOR=red] ★通用函数下载地址:[/COLOR]
  11. [url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]
  12. [url]http://www.mjtd.com/bbs/dispbbs.asp?boardID=3&ID=37554&page=1[/url]|;

  13. ;;;查找满足0/90/180/270度的直线选择集
  14. (defun c:test ()
  15.   (CMDLA0)
  16.   (setq        ss (ssget '((0 . "LINE")))
  17.         sss(ssadd)
  18.         i  -1
  19.   )
  20.   (while (setq s1 (ssname ss (setq i (1+ i))))
  21.     (setq ang(rad2ang(vla-get-angle (vlax-ename->vla-object s1))));弧度转角度
  22.     (if (or
  23.           (= ang 0)
  24.           (= ang 90)
  25.           (= ang 180)
  26.           (= ang 270))
  27.       (setq sss (ssadd s1 sss))
  28.     )
  29.       )
  30.   (XYP_LX sss);选择集亮显
  31.   (CMDLA1)
  32.   sss;选择集名称 !sss
  33. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-5 20:52:35 | 显示全部楼层
[PHP]
(defun c:test()
(setq ss (ssget (list (cons 0 "LINE"))))
(setq sstemp (ssadd) i 0)
(repeat (sslength ss)
(setq ent (entget (ssname ss i)))
(if (or (= (- (cadr (assoc 10 ent)) (cadr (assoc 11 ent))) 0)(= (- (caddr (assoc 10 ent)) (caddr (assoc 11 ent))) 0))
(ssadd (ssname ss i) sstemp)
)
(setq i (1+ i))
)
(setq ss sstemp)
(command "erase" ss)
)
[/PHP]

编着过瘾而已,比xyp1964兄的大有不如
我们设计院一直都用r14的,所以vl系列一直用不上,挺郁闷的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-5 21:07:07 | 显示全部楼层

  1.   [FONT=courier new]
  2. (defun c:tt ()
  3.   (setq        ss (ssget '((0 . "LINE")))
  4.         sss(ssadd)
  5.         i  -1)
  6.   (while (setq e (ssname ss (setq i(1+ i))))
  7.     (if (= 0 (rem (vla-get-angle (vlax-ename->vla-object e)) (/ PI 2)))
  8.       (setq sss (ssadd e sss))
  9.     )
  10.   )
  11.   (sssetfirst sss sss)
  12. )
  13.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-5 23:19:28 | 显示全部楼层
选物体,
分别找到线的起点和终点.
分别列出,X Y 坐标,如果 x1= x2
或者 Y1=Y2
就是楼主所需要的了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-9-5 23:45:50 | 显示全部楼层
(vla-get-angle (vlax-ename->vla-object e))
=
(angle (vlax-curve-getstartpoint e) (vlax-curve-getendpoint e))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-6 07:54:12 | 显示全部楼层
我更喜欢8楼的,虽然程序复杂,但效率高,可拓展到Pline上使用.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-6 10:34:56 | 显示全部楼层
谢谢!有一个问题:请看:


(defun c:tt ()
  (setq        ss (ssget '((0 . "LINE")))
        sss(ssadd)
        i  -1)
  (while (setq e (ssname ss (setq i(1+ i))))
    (if (/= 0 (rem (vla-get-angle (vlax-ename->vla-object e)) (/ PI 2.0)))
      (setq sss (ssadd e sss))
    )
  )
  (sssetfirst sss sss)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-9-6 12:18:13 | 显示全部楼层
(/= 0 (rem (vla-get-angle (vlax-ename->vla-object e)) (/ PI 2.0)))
应该是
(zerop  (rem (vla-get-angle (vlax-ename->vla-object e)) (/ PI 2.0)))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-6 13:57:28 | 显示全部楼层
你的那两条线条绝对是不垂直的
dim/ang 有精度限制的,当小于精度时候,标注提示平行
你可试试,画两条垂直线,将其中一条的一个端点向左边或右边用夹点移动0.0000001单位,然后用dim/ang测试.提示是平行的

针对你的情况,可考虑程序中设置精度,满足选中"基本"平行或垂直的线条.
[php]
(defun c:tt ()
  (setq        ss (ssget '((0 . "LINE")))
        sss(ssadd)
        i  -1)
  (while (setq e (ssname ss (setq i(1+ i))))
    (if (equal 0. (rem (vla-get-angle (vlax-ename->vla-object e)) (/ PI 2)) 1e-2);;1e-2容差,可根据需要自行修改.
      (setq sss (ssadd e sss))
    )
  )
  (sssetfirst sss sss)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 14:10 , Processed in 0.386644 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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