明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 王咣生

简约而不简单

    [复制链接]
发表于 2004-4-1 01:26:00 | 显示全部楼层
再来个vl的
  1. ;(str2lst str) 将输入的数据转换为字符串列表.v1b-----------------梁雄啸.2004.3
  2. ;测试:   (str2lst   "Hello 2World 12 5456.1568")   -> ("Hello" "2World" "12" "5456.1568")
  3. ;版权所有,盗用必究!如在程序中引用,请保留文字信息行.
  4. (defun str2lst (str /)
  5.    (read(vl-list->string
  6.    (apply 'append(mapcar '(lambda (x)(if (= 32 x) (list 34 32 34) (list x)))(append (list 40 34)(vl-string->list str)(list 34 41))))
  7.    )       )
  8. )
 楼主| 发表于 2004-4-1 11:47:00 | 显示全部楼层

按 X, Y, Z 排序坐标表(AutoLISP, VisualLISP解决方案):

按 X, Y, Z 排序坐标表(AutoLISP, VisualLISP解决方案):

1) 用AutoLISP实现的代码:

2) 用VisualLISP(vl-sort函数)实现的代码:

本帖子中包含更多资源

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

x
 楼主| 发表于 2004-4-1 11:56:00 | 显示全部楼层

回复

无痕, 专家, 谢谢支持!
发表于 2004-4-1 23:44:00 | 显示全部楼层
转贴一个秋枫的点表按照xyz排序的程序
  1. Sort_and_Write_pList :见附件
  2. (defun Sort_and_Write_pList (fname plist / fp pt)
  3.    ;; sort plist first
  4.    (setq plist (vl-sort plist
  5.                  '(lambda (p1 p2)
  6.          (cond ((< (car p1) (car p2)) T)
  7.        ((and (= (car p1) (car p2))
  8.                    (< (cadr p1) (cadr p2))
  9.          )
  10.          T
  11.        )
  12.        ((and (= (car p1) (car p2))
  13.                    (= (cadr p1) (cadr p2))
  14.                    (< (caddr p1) (caddr p2))
  15.          )
  16.          T
  17.        )
  18.        (T nil)
  19.          )
  20.      )
  21.              )
  22.    )
发表于 2004-4-1 23:47:00 | 显示全部楼层
再来一个,更简洁的通用程序,有人顶么?有人顶再贴:)
 楼主| 发表于 2004-4-5 09:24:00 | 显示全部楼层

别这样吗

别这样吗,贴出来吧!
发表于 2004-4-5 21:11:00 | 显示全部楼层
我不喜欢唱独角戏,让我换个思路再想想,争取用别的方法再写一个出来
 楼主| 发表于 2004-4-8 13:22:00 | 显示全部楼层

我们期待

我们期待着...
发表于 2004-5-3 13:53:00 | 显示全部楼层
本帖最后由 作者 于 2004-5-3 14:14:57 编辑

vl-remove   的纯lsp写法
  1. ;| (x:removeat at lst ) = 表剔除元素;-------------无痕.2004.1
  2. ;提示;  等同于: (vl-remove   element-to-remove   list)
  3.   (x:removeat "a" '(58 3 (a . 8) "a" 4.5)) -> (58 3 (A . 8) 4.5)
  4. |;
  5. (defun x:removeat (at lst) ;at=atom
  6.    (apply 'append (subst nil (list at) (mapcar 'list lst)))
  7. )
xex   炸开嵌套块.
  1.   ;xex = 炸开嵌套块.-----by 无痕.2004.4
  2. (defun c:xex ()
  3.    (princ "\n炸开嵌套块.--------------by 无痕.2004.4")
  4.    (setvar "qaflags" 1)
  5.    (setq ss (ssget '((0 . "INSERT"))))
  6.    (while (setq ss (ssget "P" '((0 . "INSERT"))))
  7.        (command ".explode" ss "")
  8.    )(princ)
  9. )
发表于 2004-5-13 00:26:00 | 显示全部楼层
无痕兄真了不起!佩服ing!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-28 03:38 , Processed in 0.166477 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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