找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 470|回复: 6

[求助] [求助]:我的问题在哪

[复制链接]
发表于 2003-12-11 11:23:45 | 显示全部楼层 |阅读模式

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

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

×
(defun c:zzxyh()
             (setq ocmde (getvar "cmdecho"))
         (setvar "cmdecho" 0)
             (setq num (getint "\n请输入优化直线的数量:"))
             (setq n 1)
             (repeat num
                 (zxyh)
                  (setq n (+ n 1))
              )
             (setvar "cmdecho" ocmde)
             (princ)
)
(defun zxyh()
               (vl-load-com)
               (setq en1 (entsel "\n请选择直线:"))
               (setq n1 (car en1))
               (setq m1 (vlax-ename->vla-object n1))
               (setq start1_point (vlax-curve-getstartpoint m1))
               (setq end1_point (vlax-curve-getendpoint m1))
               (setq refer_point (getpoint "\n请输入靠近直线的起始点的一点:"))
               (setq l1 (distance refer_point start1_point))
               (setq l2 (distance refer_point end1_point))
                (if (<= l1 l2)
                    (progn
                          (setq refer_point (polar end1_point 0 0))
                         (command "line" start1_point end1_point "")
                     )
                     (progn
                          (setq refer_point (polar start1_point 0 0))
                          (command "line" end1_point start1_point "")
                     )
                  )
                  (command "erase" en1)
                  (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-12-13 10:47:35 | 显示全部楼层
看不明白, 什么是"优化直线"? 能不能说说你究竟想达到什么目的, 再来分析程序?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-12-13 11:29:09 | 显示全部楼层
就是根据需要改变直线的方向(起点与终点互换)
子程序可以实现单条,但我循环子程序来解决多条时,失败!!!
请多多指教!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-13 11:30:08 | 显示全部楼层
(if (<= l1 l2)
(progn
(setq refer_point (polar end1_point 0 0));~~~~~~这里的变量refer_point没有放到COMMAND里面去啊,好像没有起到作用
;而且0度0距离不是还是end1_point没有变吧
(command "line" start1_point end1_point "")
)
(progn
(setq refer_point (polar start1_point 0 0))
(command "line" end1_point start1_point "")
)
)
不知道你要命令的作用是什么,如果是改变LINE线的起点和终点的话那应该POLAR也用不到呀?只要改改两点就行了啊


改变方向的话只要把END和START两个点对换一下就行了呀?不用POLAR的吧?而且我觉得那个
(setq num (getint "\n请输入优化直线的数量:"))
是多余的,你只要在(setq en1 (entsel "\n请选择直线:"))这里做个判断就行了,如果那个EN1为空就不继续,不空就继续,还有你在函数里没有局部变量,这样你多次调用该函数时就有可能出错:)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-13 12:19:49 | 显示全部楼层
最初由 morecs 发布
[B]就是根据需要改变直线的方向(起点与终点互换)
子程序可以实现单条,但我循环子程序来解决多条时,失败!!!
请多多指教!!! [/B]


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

使用道具 举报

发表于 2003-12-13 12:27:37 | 显示全部楼层
我帮楼主改了一下,请长老看看有没什么不好地方~
(defun c:zz( / en1 ocmde n1 refer_point m1 start1_point end1_point l1 l2)
(setq ocmde (getvar "cmdecho"))
(setvar "cmdecho" 0)

(while (setq en1 (entsel "\n请选择直线:"))
  (setq        n1 (car en1)
        refer_point
         (cadr en1)
  )
  (setq m1 (entget n1))
  (if (= (cdr (assoc 0 m1)) "LINE")
    (progn
  (setq        start1_point (cdr (assoc 10 m1))
        end1_point   (cdr (assoc 11 m1))
  )
  (setq l1 (distance refer_point start1_point))
  (setq l2 (distance refer_point end1_point))
  (if (> l1 l2)
    (progn
      (setq m1 (subst (append '(10) end1_point) (assoc 10 m1) m1))
      (setq m1 (subst (append '(11) start1_point) (assoc 11 m1) m1))
      (entmod m1)
    )
  )
  (princ "\n修改完成!")
)
(princ "\n你选的不是LINE线!")    ))
(setvar "cmdecho" ocmde)
(princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-13 16:34:00 | 显示全部楼层
最初由 luoyaya 发布
[B]我帮楼主改了一下,请长老看看有没什么不好地方...[/B]


不好意思, 还是不知道1楼到底想干什么? 你知道吗?
我运行了一下你的程序, 没什么反映呀?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-29 01:27 , Processed in 0.397708 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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