找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 643|回复: 3

[求助] [求助]:麻烦看下面语句

[复制链接]
发表于 2003-8-20 21:37:23 | 显示全部楼层 |阅读模式

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

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

×

  1. (defun c:-1 (/ n m bjv nbjv bjvn bjvl jv mjv jvm jvl) ; 相贯线切割
  2.   (prompt "请选择编辑实体:")
  3.   (setq bjv (ssget))
  4.   (prompt "请选择相贯实体:")
  5.   (setq jv (ssget))
  6.   (setq nbjv (sslength bjv))
  7.   (setq mjv (sslength jv))
  8.   (setvar "cmdecho" 0)                       ; 关闭命令提示
  9.   (command "undo" "be")                       ; 定义返回点
  10.   (setq n 0)                               ; 定义N初始值
  11.   (while (< n nbjv)                       ; 定义循环
  12.     (setq bjvn (ssname bjv n))
  13.     (setq n (1+ n))
  14.     (setq m 0)                               ; 定义M初始值
  15.     (cond
  16.       ((= (cdr (assoc '0 (entget bjvn))) "3DSOLID") ; 判断是否实体
  17.         (while (< m mjv)               ; 定义循环
  18.           (setq jvm (ssname jv m))
  19.           (setq m (1+ m))
  20.           (cond
  21.             ((= (cdr (assoc '0 (entget jvm))) "3DSOLID") ; 判断是否实体
  22.               (command "copy" jvm "" "0,0,0" "0,0,0")
  23.               (setq jvml (ssget "l"))
  24.               (command "subtract" bjvn "" jvml "")
  25.               (command "solidedit" "body" "separate" bjvn "" "") ;
  26.               (command "ERASE" bjvn "")

  27.               (setq bjvn (ssget "l"))
  28.             )
  29.           )
  30.         )
  31.       )
  32.     )
  33.   )
  34.   (command "undo" "e")                       ; 定义返点
  35.   (setvar "cmdecho" 1)                       ; 打开命令提示

  36. )

在这里我遇到一个问题,最后删除的有时候出错,原因生成对象序列排序,我新手望点解。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-8-20 22:43:02 | 显示全部楼层

Re: [求助]:麻烦看下面语句

最初由 ago9999 发布
[B](defun c:-1 (/ n m bjv nbjv bjvn bjvl jv mjv jvm jvl) ; 相贯线切割
(prompt "请选择编辑实体:")
(setq bjv (ssget))
(prompt "请选择相贯实体:")
(setq jv (ssget))
(setq nbjv (sslength bjv))
(se... [/B]


出错现象是什么,给大家说说。

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

使用道具 举报

发表于 2003-8-21 09:23:37 | 显示全部楼层
(setq bjvn (ssget "l"))
可能这句出了问题。照上面(setq bjvn (ssname bjv n)) 应该是按编号来定的,last 是最后加入的对象,“原因生成对象序列排序”是不是指这个?ACAD的对象排序是按绘图(包括编辑)加入的先后,不是对象选择的先后。不过我对该程序没仔细看,不一定对。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-8-21 22:06:51 | 显示全部楼层
柔柔基本说对
这个是管切相关线,方法可能不是很好,如果我对投影了解多一些我可以用其它的办法来避免上面产生的现象。
上面的结构其实就是复制一个-对象,然后拿被减对象-去一个,生成一个双实体,然后分割开,再删除去一部分,可我难以判断哪个是删除对象。本来想用体积来判断(因为我们大多是保留体积大的一部分),可很多实体体积读不出来,只好用这个馊主义了。
其实我还有个-2,在-1不行的时候,一般-2就可以。可总觉得不是很理想。
为了方便理解这个东西,我可以先把我画管的代码写上,你们建立些空间管来试下,看有没其它更理想的结构。
对了就是不知道分割后实体的排序规则。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-26 19:18 , Processed in 0.183388 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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