找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 760|回复: 7

[求助] [求助]:用什么方法读取spline中代码相同的不同拟和点的坐标

[复制链接]
发表于 2005-12-31 14:21:28 | 显示全部楼层 |阅读模式

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

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

×
用assoc 11 en总是读出同一个点拟和点的坐标
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-12-31 15:25:30 | 显示全部楼层
这个题目不错。等高线的分析需要它。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-31 16:35:16 | 显示全部楼层
是要这样的么:
  1. (defun c:test7 (/ ss1 slth i ent plist loops1 blist)
  2.   (setq        ss1 (ssget '((0 . "SPLINE")))
  3.         i   0
  4.   )
  5.   (if ss1
  6.     (progn
  7.       (setq slth (sslength ss1))
  8.       (repeat slth
  9.         (setq ent    (entget (ssname ss1 i))
  10.               i             (1+ i)
  11.               plist  nil
  12.               blist  nil
  13.               loops1 (cdr (assoc 74 ent))
  14.               elist  (member (assoc 11 ent) ent)
  15.         )
  16.         (repeat        loops1
  17.           (setq        plist (cdr (car elist))
  18.                 blist (cons plist blist)
  19.                 elist (cdr elist)
  20.           )
  21.         )
  22.         (princ "\n第")
  23.         (princ i)
  24.         (princ "个spline线")
  25.         (princ blist)
  26.       )
  27.     )
  28.     (princ "\n未选中spline线")
  29.   )
  30.   (princ)
  31. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-31 16:52:30 | 显示全部楼层
好像不行阿,读出来的四个坐标是同一个点呀
第1个spline线((520.784 556.586 0.0) (520.784 556.586 0.0) (520.784 556.586 0.0)
(520.784 556.586 0.0))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2005-12-31 23:17:17 | 显示全部楼层
怎么在我这是
错误: 输入的列表有缺陷
你编译通过了吗
现在已经可以了,谢了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 111个

财富等级: 日进斗金

发表于 2006-1-2 13:32:15 | 显示全部楼层
;改为如下更简洁

  1. (defun c:test7 (/ ss1 slth i ent plist loops1 blist)
  2.   (setq        ss1 (ssget '((0 . "SPLINE")))
  3.         i   0
  4.   )
  5.   (if ss1
  6.     (progn
  7.       (setq slth (sslength ss1))
  8.       (repeat slth
  9.         (setq ent    (entget (ssname ss1 i))
  10.               i             (1+ i)
  11.               blist  (vl-remove-if '(lambda(x)(/= (car x) 11)) ent)
  12.          )
  13.         (princ "\n第")
  14.         (princ i)
  15.         (princ "个spline线")
  16.         (princ blist)
  17.       )
  18.     )
  19.     (princ "\n未选中spline线")
  20.   )
  21.   (princ)
  22. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-17 11:58:20 | 显示全部楼层

有关复合线坐标的

;按不同的线型提取是一种很基本的操作,CAD的几种基本线型包括LINE、POLYLINE、LWPLYLINE等,spline是一种图形编辑中较少用到的种
;线型之一,SPLINE线经过编辑以后,SPLINE线会增加未知的许多端点,使列表无法正常分析。而且在常用线型中
;我们也很难看到使用SPLINE做为规范线型的例子。因此我们主要针对POLYLINE、LWPLYLINE、两种线形作分析:
(defun c:test7 (/ ss1 sslist ss1date)
  (setq ss1 (car (entsel"拾取范围线:")))
  (setq enddate nil)
  (setq sslist (entget ss1))
  (setq ss1date (cdr (assoc 0 sslist)))
  (cond ((= "lwplyline" ss1date) (c:ltest));当范围线是复合线的时候,一般为这种线型
        ((= "polyline"  ss1date) (c:ptest));拟合线大多为这种线型
  )
)
(defun c:ltest()
  (setq ss1number (assoc 90 sslist));返回数据列表中的顶点数
  (setq ss1date (member (assoc 10 sslist ) sslist));从第一个坐标点对表开始排列组成新的列表
  (setq dump 0);设置循环量
  (repeat ss1number;|重复步数|;
    (setq enddate (cons (cdr (nth dump ss1date) enddate)));提取第一个坐标点对组表
    (setq dump (+ dump 3.0))
  )
  (princ enddate)
  (princ)
)
(defun c:ptest ()
   (setq ss2 (entnext ss1))
   (setq ss2date (entget ss2))
   (setq ss2ent (assoc 0 ss2date))
   (while  (/= "seqend"  ss2ent)
           (setq ss2list (cdr (assoc 10 ssdate)))
           (setq enddate (append enddate (list ss2list)))
           (setq ss2 (entnext ss2))
           (setq ss2date (entget ss2))
           (setq ss2ent  (assoc 0 ss2date))
   )
不好意思,因为要贯标,没测试。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-29 06:43 , Processed in 0.266746 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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