找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 551|回复: 7

[求助] lisp自建表会溢出??

[复制链接]

已领礼包: 2个

财富等级: 恭喜发财

发表于 2019-10-15 13:25:45 | 显示全部楼层 |阅读模式

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

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

×
问问几个问题希望大神帮忙解决一下,想了很久找不到原因
1,本人用ssget选了很多多段线,分别遍历获取多段线顶点,并把顶点加入新表中。然后用insert批量按表中点的位置插入快(这里说一下,我是判断了表中各点前后的的位置,也就是各点相对位置(通过比较x  y坐标)满足我要求才按某点插入块,用的cond语句)。但只要超出一定数量(ssget所选数量)插入块过程就会提示 “ intersect 所选对象太多”。但是插入过程并没有停止。而且好像批量插入的块也没有失败。感觉是表溢出。但想想插入块过程是成功的。所以貌似也不是表溢出。求高手帮我分析解答一下出现这个提示的原因,谢谢
2,想问问二维多段线怎么在加入选集前转成多段线,再加入选集。二维多段线没有节点很麻烦。只能手动先转,在框选插入块
3,再多问一下entget获取的属性表为什么没有-3码,有些插件也查不到,但某些插件又可以查的到-3码比如AY工具箱
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 2个

财富等级: 恭喜发财

 楼主| 发表于 2019-10-16 00:06:19 来自手机 | 显示全部楼层
zrg1 发表于 2019-10-15 13:25
问问几个问题希望大神帮忙解决一下,想了很久找不到原因
1,本人用ssget选了很多多段线,分别遍历获取多段 ...

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

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2019-10-16 08:39:55 | 显示全部楼层
为什么不先把你的代码贴出来呢?
第二个问题,取二维多段线顶点坐标比取传统多段线(3D多段线)坐标要容易得多,论坛有很多这类帖子,根本不需要先转换。
第三个问题,你试过ssget的*参数了没?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2019-10-16 09:32:18 | 显示全部楼层
你要查看扩展实体数据,要
(entget ent '("*"))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

 楼主| 发表于 2019-10-16 12:55:48 | 显示全部楼层
ll_j 发表于 2019-10-16 08:39
为什么不先把你的代码贴出来呢?
第二个问题,取二维多段线顶点坐标比取传统多段线(3D多段线)坐标要容易 ...

  1. (defun c:t0( / pt_list)
  2.         (setvar "cmdecho" 0)
  3.         (Poly-->PL)
  4.         (setq ss (ssget '((0 . "LWPOLYLINE"))))
  5.         (if (= ss nil)
  6.                 (progn
  7.                         (alert "请选择多段线!!")
  8.                         (c:t0)
  9.                 )
  10.         )
  11.         (ent_ss ss)
  12.         (princ)
  13. )
  14. (defun Poly-->PL();;二维多段线转多段线
  15.         (princ "\n 二维多段线转多段线<按任意字符跳过>")
  16.         (setq Poly_ss (ssget '((0 . "POLYLINE"))))
  17.         (if Poly_ss
  18.                 (progn
  19.                   (command "convert" "p" "s" Poly_ss "")
  20.                 )
  21.         )
  22.         (princ)
  23. )

  24. (defun ent_ss(ent / ss_len n ent_name ent_list ent_len)
  25.   (setq ss_len (sslength ent))
  26.   (setq n 0)
  27.         (repeat ss_len
  28.                 (setq ent_name (ssname ent (1- ss_len)))
  29.                 (setq ent_list (entget ent_name))
  30.                 (setq ent_len (length ent_list))
  31.                         (foreach ls_pt ent_list
  32.                                 (if (= (car ls_pt) 10)
  33.                       (setq pt_list (append pt_list (list (cdr ls_pt))))
  34.                                 )
  35.             )
  36.                 (rig pt_list)
  37.                 (setq ss_len (1- ss_len))
  38.         )
  39. )

  40.         ;;=======判断==========
  41. (defun rig (lst / pt0 pt1 pt2 pt3 ptx1 ptx2 ptx3 pty1 pty1 pty1 a az b bz c cz ay by cy n pt_len)
  42.         (setq pt_len (length lst))
  43.         (repeat pt_len
  44.                 (setq pt0 (nth (1- pt_len) pt_list))
  45.                 (setq n ( - pt_len 4))
  46.                 (if (>= n 0)
  47.                         (progn
  48.                                 (setq pt1 (nth (- pt_len 2) pt_list))
  49.                     (setq pt2 (nth (- pt_len 3) pt_list))
  50.                     (setq pt3 (nth (- pt_len 4) pt_list))
  51.                                 (setq ptx0 (car pt0) ptx1 (car pt1) ptx2 (car pt2) ptx3 (car pt3))
  52.                                 (setq pty0 (cadr pt0) pty1 (cadr pt1) pty2 (cadr pt2) pty3 (cadr pt3))
  53.                                 (type_P)
  54.                     (b_P)
  55.                         )
  56.                 )
  57.                 (setq pt_len (1- pt_len))
  58.         )
  59. )

  60. (defun type_P ()
  61.   (setq a (abs (- ptx1 ptx0)) b (abs (- pty2 pty1)) c (abs (- ptx3 ptx2)))
  62.         (setq az (abs (- a 10.5)) bz (abs (- b 10.1)) cz (abs (- c 15.6)))
  63.         (setq ay (abs (- a 1.6)) by (abs (- b 1.1)) cy (abs (- c 0.5)))
  64.                
  65.         (setq d (abs (- pty1 pty0)) e (abs (- ptx2 ptx1)) f (abs (- pty3 pty2)))
  66. )
  67. (defun b_P()
  68.         (cond ((and (< az 0.109) (< bz 0.01) (< cz 0.0))                (command "-insert" "*A.dwg" pt0 "" ""))
  69.                     ((and (< ay 0.991) (< by 0.01) (< cy 0.01))   (command "-insert" "*B.dwg" pt3 "" ""));块是放在支持路径下面
  70.                     ;;(此处省略多次cond判断,和上面2句一样,按需求判断后插入不同名称的块,注意是不同名称。不是同一个块,,,太多了就不写了,我也是临时写的。就是这里插入过程会显示 "所选对象过多")
  71.                                
  72.         )
  73. (princ)
  74. )

;;;;顺便问一下,插入块名称前面为什么一定要带*,不带就会要求手动选基点/角度。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

 楼主| 发表于 2019-10-16 13:00:12 | 显示全部楼层
Lisphk 发表于 2019-10-16 09:32
你要查看扩展实体数据,要
(entget ent '("*"))

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

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 23个

财富等级: 恭喜发财

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 04:18 , Processed in 0.409742 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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