找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 771|回复: 10

[求助] [求助]:谁能帮我完善这个程序?

[复制链接]
发表于 2006-1-11 15:41:43 | 显示全部楼层 |阅读模式

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

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

×
自己编了一个小程序,实现打断相交的一条线段。
正常选择没有问题,但不小心没有选上被打断的线就不能正常执行程序。且原有的特征点全给清空了,辅助的园也不能删除。

谁能帮忙完善一下?



还有不知道怎么直接贴出原程序,只能放附件了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-1-11 16:03:48 | 显示全部楼层
[php]
(defun C:vv ()
  (command "undo" "begin")
  (setq old_osmode (getvar "osmode"))
  (setvar "osmode" 32)
  (setq pt1 (getpoint "\n   取交点:"))
  (setq r1 2.0)
  (command "circle" pt1 (/ r1 2.0))
  (setq ss1 (entlast))
  (command "zoom" "o" ss1 "")
  ;;(setvar "osmode" 512)
  (setq point (cadr (entsel "\n 选择要修剪部份:")))
  (if (/= point nil)
    (progn
      (setq point (osnap point "nea"))
      (command "trim" ss1 "" point)
      (while (setq point (cadr (entsel "\n 选择要修剪部份:")))
        (command (osnap point "nea"))
      )
      (command "")

    )
    (princ "没有选择到物体!")
  )
  (command "erase" ss1 "")
  (command "zoom" "p")
  (setvar "osmode" old_osmode)
  (command "undo" "end")
  (princ)
)
[/php]

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

使用道具 举报

 楼主| 发表于 2006-1-11 16:37:27 | 显示全部楼层
谢谢2楼,试了你改的程序,没有选中(误操作)被修剪的线段会中止程序,但原有设置的线段特征点同时也消失了。希望能保留原来的特征点
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-11 19:35:07 | 显示全部楼层
不知道你说的线段特征点指得是什么,我没明白
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-12 08:56:50 | 显示全部楼层
是指象端点,中点,交点等,用(setq old_osmode (getvar "osmode")) 就是为了保存原有的特征点,但误操作后特征点就全部得重新设置了,很烦人,而误操作又无法避免
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-12 09:11:41 | 显示全部楼层
原来是这个意思,那2楼改得程序不会啊,误操作或是直接回车只会结束trim命令,不会中途退出程序啊。不知道你用的是什么版本,或许版本差异有关系
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-12 09:44:38 | 显示全部楼层
又试了一次,不行,设了4个特征点,在修剪时点在空处会自动结束程序,只剩下交点了,我用的是英文的正版2006

还有程序中止后会残留辅助园,且不能回到原有的图面,也就是(command "zoom" "p") 这个命令没有执行
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-12 11:31:48 | 显示全部楼层
问题应该出在这儿:
(while (setq point (cadr (entsel "\n 选择要修剪部份:")))
    (command (osnap point  "nea"))
  )
这句我这里运行没问题的,当(setq point (cadr (entsel "\n 选择要修剪部份:"))) 执行时,空选了,应该返回nil值,所以楼主直接试一下这句(setq point (cadr (entsel "\n 选择要修剪部份:"))) ,看返回什么
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-12 11:56:06 | 显示全部楼层
空选后返回的就是nil:

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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