找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1058|回复: 13

[LISP函数]:请问斑主????

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

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

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

×
请问晓东兄,本LISP的目的自动剪掉PLINE中的线条,但在运行中发现一个有奇怪的事,
如果当前视图中仅有PLINE和LINE时,程序可以实现我想要的目的,如当前视图中,
PLINE和LINE仅占一部分,程序就不可以实现我想要的目的,这是为什么?


  1. [FONT=courier new]
  2. (defun c:et (/           os         a11   len   len1  b         a1    a2    temp1
  3.              b1           b2         zubiao             p11   p12         p13   p14   p15
  4.              p16   p17         p18
  5.             )
  6.   (setvar "cmdecho" 0)
  7.   (setq os (getvar "osmode"))
  8.   (setvar "osmode" 0)
  9.   (prompt "\n请选择图元")
  10.   (setq        a11 (ssget '((-4 . "< or")
  11.                      (0 . "line")
  12.                      (0 . "LWPOLYLINE")
  13.                      (-4 . "or>")
  14.                     )
  15.             )
  16.   )
  17.   (setq len (sslength a11))
  18.   (setq b11 0)
  19.   (setq a1 (ssadd))
  20.   (setq a2 (ssadd))
  21.   (while (> len 0)
  22.     (progn
  23.       (setq temp1 (ssname a11 (setq len (1- len))))
  24.       (if (= (cdr (assoc 0 (entget temp1))) "LWPOLYLINE")
  25.         (ssadd temp1 a1)
  26.         (ssadd temp1 a2)
  27.       )
  28. ;;;end if
  29.     )
  30. ;;;end progn
  31.   )
  32.   (setq len1 (sslength a1))
  33.   ;(while (< b len1)
  34.    ; (progn
  35.       (setq b2 (ssname a1 b11))
  36.       (setq b1 (entget b2))
  37.       (setq zubiao (xdrx_getinters b2 a2))
  38.       (setq p11 (nth 0 zubiao))
  39.       (setq p12 (nth 1 zubiao))
  40.       (setq p13 (nth 2 zubiao))
  41.       (setq p14 (nth 3 zubiao))
  42.       (setq p15 (nth 4 zubiao))
  43.       (setq p16 (nth 5 zubiao))
  44.       (setq p17 (nth 6 zubiao))
  45.       (setq p18 (nth 7 zubiao))
  46.       (command "break" p11 p12)
  47.   
  48.       (command "break" p13 p14)
  49.       (command "break" p15 p16)
  50.       (command "break" p17 p18)
  51.     ;  (setq b (+ 1 b))
  52.     ;)
  53.   ;)
  54.   (setvar "osmode" os)
  55.   (setvar "cmdecho" 1)
  56.   (PRINC)
  57. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-11-11 15:16:31 | 显示全部楼层

Re: [LISP函数]:请问斑主????

最初由 hhjj9898 发布
[B]请问晓东兄,本LISP的目的自动剪掉PLINE中的线条,但在运行中发现一个有奇怪的事,
如果当前视图中仅有PLINE和LINE时,程序可以实现我想要的目的,如当前视图中,
PLINE和LINE仅占一部分,程序就不可以实现我想要的目的,?.. [/B]


跟大家说说,不能实现,结果是什么?有什么现象?等等

你说的自动裁减掉PLINE中的线条,是什么样的效果,把处理前和后的图截取下来,贴论坛来。

先说下你程序的一个地方:



  1.   (setq        a11 (ssget '((-4 . "< or")
  2.                      (0 . "line")
  3.                      (0 . "LWPOLYLINE")
  4.                      (-4 . "or>")
  5.                     )
  6.             )
  7.   )


这个不用这样麻烦写,就:

(setq all (ssget '((0 . "LINE,LWPOLYLINE"))))

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

使用道具 举报

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

使用道具 举报

发表于 2002-11-11 16:31:05 | 显示全部楼层
最初由 hhjj9898 发布
[B]不好意思,我不会贴图,你可以教我吗?? [/B]


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

使用道具 举报

发表于 2002-11-11 16:36:35 | 显示全部楼层
我知道原因了
是你用break命令时
当第一点在平面外时就无法选择到实体
如果处理的图元不是很多的话,
建议你把break中处理的第一点移到平面中心后再使用bareak命令
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2002-11-11 17:10:43 | 显示全部楼层
你把捕捉给闭了,(setvar "osmode" 0),然后再用那些break命令,试试。

用LISP的BREAK命令,第二个参数最好给(list ent pt),ent是实体名,PT是上面的一个点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2002-11-11 17:20:52 | 显示全部楼层
最初由 hhjj9898 发布
[B]可以在明确一下吗,我已经将osmode关掉了!!! [/B]


比如线L1实体名是e, 你要在P1,P2间打断,那么:

(command ".break" e p1 (list e p2)),这样ACAD知道要断哪个实体。

要保证这两个点在e上啊。

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

使用道具 举报

发表于 2002-11-11 18:17:05 | 显示全部楼层
不要给实体参数的,只要点就可以了
但这个点在平面外面执行就失败了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-11-11 18:33:37 | 显示全部楼层
那为什么只选一个,就可以成功,选两个以上,就不行???而且我选的点多在PLINE上
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-26 05:18 , Processed in 0.197044 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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