找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 541|回复: 3

[求助] 新手代码疑问请求解答

[复制链接]
发表于 2019-7-22 01:54:35 | 显示全部楼层 |阅读模式

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

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

×
自己写了一个代码,是要实现窗选所有的闭合矩形,通过获取矩形的四个顶点来计算矩形的中心点坐标,然后在中心点上添加文字
但是添加的文字都只是显示在第一个图元上面,有没有高手帮看一下到底是什么问题

代码如下:
(defun c:mhs ()
  (setvar "cmdecho" 0)
  (princ "\n请选择对象:")
  (setq _ssget (ssget))
  (setq _ssget_length (sslength _ssget))
  (setq _num 0)
  (setq _list_index 0)
  
  (repeat _ssget_length
    (setq _entget_object (ssname _ssget _num)) ;遍历选择集图元
    (setq _entget_data (entget _entget_object)) ;获取图元组码信息
    (setq _entget_type (cdr (assoc 0 _entget_data))) ;获取图元类型
    (setq _list_70_value (cdr (assoc 70 _entget_data)))
    (if (and (wcmatch _entget_type "LWPOLYLINE,POLYLINE")(= _list_70_value 1))   
      (progn
(repeat (length _entget_data);获取矩形坐标开始
   (if (= (car (nth _list_index _entget_data)) 10)
       (setq _list_point (append _list_point (list (cdr (nth _list_index _entget_data)))))
   ) ;获取矩形坐标结束
   (setq _list_index (1+ _list_index))
)
      )
    )
    ;拼凑中心点坐标
     (setq _list_xp1 (car (nth 0 _list_point)))
     (setq _list_xp2 (car (nth 1 _list_point)))
     (setq _list_yp1 (car (cdr (nth 1 _list_point))))
     (setq _list_yp2 (car (cdr (nth 2 _list_point))))
     (setq _point_x (+ _list_xp1 (/ (- _list_xp2 _list_xp1) 2)))
     (setq _point_y (- _list_yp1 (/ (- _list_yp1 _list_yp2) 2)))
     (setq _index_point (list _point_x _point_y))
     (command "TEXT" _index_point "500" 0 "中心点")   
            (setq _num (1+ _num))
  )
)


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

已领礼包: 5295个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 541个

财富等级: 财运亨通

发表于 2019-7-22 08:50:16 | 显示全部楼层
变量_list_index读取完一根多段线顶点之后要从0开始
变量_list_point设置好中心点后要重新设置成nil
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-22 18:42:46 | 显示全部楼层
lovezp 发表于 2019-7-22 08:50
变量_list_index读取完一根多段线顶点之后要从0开始
变量_list_point设置好中心点后要重新设置成nil

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-23 12:32 , Processed in 0.218585 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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