明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1367|回复: 3

[求助]将所选线条的长度自动导入文件,为何不能自动更新?

[复制链接]
发表于 2007-6-24 11:23 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2007-6-24 11:25:33 编辑

为了得到有很多线条的长度,我就编了一个Lisp小程序(如附件所示),可是执行以后却不能自动更新。要想更新就必须要先把CAD关闭。感觉这样操作太麻烦,所以想问一下大家,对此有没有什么好办法啊?谢谢啊!

本帖子中包含更多资源

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

x
发表于 2007-6-24 15:42 | 显示全部楼层
(defun
			c:get_length()
(setvar
			"cmdecho"
			0)
(setq ffn (getfiled
			"打开文件"
			"e:/data"
			"txt"
			1))
(setq ff (open ffn "a"))

(prompt
			"\n<<选择欲输入长度的线段>>")
(setq ss (ssget))
(setq n 1 k 0)
(repeat
			(sslength ss)
  (setq en (ssname ss (-
			(sslength ss) n)))
  (command
			"lengthen" en "")
  (setq l (getvar
			"perimeter"))
  (princ l ff)
  (princ
			"\n" ff)
  (setq n (1+ n) k (1+ k))
  )
(princ
			(strcat
			"\n共有<"
			(itoa k)
			">条曲线被选中"))
(prin1)
)
(close ff)
(prompt
			"\n<c:get_length>\n自动将选中线条长度输入文件")
(prin1)
文件打开后没关闭.
 楼主| 发表于 2007-6-25 08:43 | 显示全部楼层

谢谢回复,果然解决问题!

只是还有一个小问题想请教,那就是我选了很多线条以后,我想让程序按某一顺序将它们的长度显示出来,例如在图面上从左到右,那该怎么操作呢?

我搞不清楚默认情况下,Lisp是按什么顺序显示这些线条的,所以处理这个问题还是有些麻烦。

发表于 2007-6-25 17:28 | 显示全部楼层

排列也不难,只是你想按照什么逻辑排序?

排序后得到的结果只怕你仍然不能够直观的根据对象的位置来看出他们的顺序!!...

思路如下:

;;---------------------------------------------------------------

(defun c:test (/ ss enlst xlst)
  (if (setq ss (ssget))
    (progn
      (setq enlst (vl-remove-if-not
                    '(lambda (x) (= (type x) 'ename))
                    (mapcar 'cadr (ssnamex ss))
                  )
            lelst (mapcar 'vlax-curve-getStartPoint enlst) ;;这里以起点为例
            xlst  (mapcar 'car lelst)                      ;;这里以 X 轴为例
      )
      (mapcar '(lambda (x / en)
                 (list (setq en (nth n enlst))
                       (vlax-curve-getdistatparam en (vlax-curve-getendparam en))
                 )
               )
              (vl-sort-i xlst '<)                          ;;这里根据x轴值从小到大的顺序
      )
    )
  )
)

;;----------------------------------------------------------------------

返回表根据曲线起点x轴值从小到大的顺序

((曲线1 长度1) (曲线2 长度2) (曲线3 长度3) ... (曲线n 长度n))

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-18 21:26 , Processed in 0.300746 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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