找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2689|回复: 7

[求助] lisp excel cad

[复制链接]

已领礼包: 19个

财富等级: 恭喜发财

发表于 2019-3-4 18:18:51 | 显示全部楼层 |阅读模式

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

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

×
本人lisp初学者,上次看了你写的lisp读取CAD中的数据到excel中,想问一下如果不依赖CAD中数据的坐标值人为的控制哪条数据换行哪条数据不换行,例如在点选数据时按某个键盘上的按键实现换行操作,或者类似的操作,能否实现?望大神指教。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 5295个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 960个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

 楼主| 发表于 2019-3-5 09:06:09 | 显示全部楼层
sicky111 发表于 2019-3-4 21:35
说得让人有点费解!

我想把CAD中的数据导入到excel中,上次在网上找到一个人写的lisp程序,通过鼠标点选数据获取该图元的信息,然后根据数据的坐标值判断,如果数据y值相等x值不等,存入excel中不换行,换列,若y值不等,换行,现在想不通过xy值的比较人为的控制存入数据时是否换行,例如左键点选不换行也就是\t 右键点选换行也就是\n
之前的部分代码如下:
(setq &kw (ssget '((0 . "TEXT,MTEXT"))));选择文字

(setq &kw1 (entget (ssname &kw n))  ;;依次获取各个图元的信息
          %k1 (cdr (assoc 10 &kw1))          ;;取得文字坐标         注: 组码10 主要点的 X 值(后跟 Y 和 Z 值代码 20 和 30)
          %k2 (cdr (assoc 1 &kw1))          ;;取得文字内容         注: 组码1 图元的主文字值
                                                                                ;;使用cdr获取去掉第一个元素的表 因为第一个元素为DXF组码 后面的数据才是需要的数据
          ss (cons (list %k1 %k2) ss)        ;;加入选择集,并更新选则集
          n (+ n 1)
    )
(setq ss (vl-sort ss (function (lambda (x y)(< (fix (caar x)) (fix (caar y)))))));;X排序从左到右
   (setq ss (vl-sort ss (function (lambda (x y)(> (fix (cadar x)) (fix (cadar y)))))));;Y排序从上到下
                ;;fix函数:截去实数的小数部分,将它转换成整数后返回该整数
   (setq &kw1 (nth 0 ss) ;;ss是排序后的数据   ss:((坐标数据)(文本数据))...   坐标数据:(x y z)
         %k1 (caar &kw1) ;;第一个元素的第一个对象        坐标数据 x
         %k2 (cadar &kw1);;第一个元素的第二个对象        坐标数据 y
         %k3 (cadr &kw1) ;;第二个元素        文字数据
         n 1
   )
   (repeat (- L 1)
    (setq &kw2 (nth n ss)
          %k4 (caar &kw2)  ;; x
          %k5 (cadar &kw2) ;; y
          %k6 (cadr &kw2)  ;; 文本数据
          %k (- %k2 %k5)
          n (+ n 1)
    )
    (if (> %k num)
     (progn
      (princ %k3 ff)
      (princ "\n" ff);;不在同一行换行
      (setq %k1 %k4 %k2 %k5 %k3 %k6)
     )
    )
    (if (and (<= %k num) (< %k1 %k4))
     (progn
      (princ %k3 ff)
      (princ "\t" ff);;同一行不换行;换一个位置
      (setq %k1 %k4 %k2 %k5 %k3 %k6)
     )
    )
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

 楼主| 发表于 2019-3-5 09:07:43 | 显示全部楼层
zhystar 发表于 2019-3-5 07:56
不是太明白,是否举个具体点的例子

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

使用道具 举报

已领礼包: 55个

财富等级: 招财进宝

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

 楼主| 发表于 2019-3-5 10:45:23 | 显示全部楼层
fengyun7000 发表于 2019-3-5 10:14
不知所云,有什么用吗?

就是将CAD中的数据导入到excel中,假如数据默认是横向存储,前三个数据存入了ABC列,我想在第四个数据换行,实现(princ 数据4 ff) (princ "\n" ff),触发换行事件应该怎么定义
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-23 14:23 , Processed in 0.268089 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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