明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: xyp1964

[讨论] 【e派】工具箱函数再揭秘及应用实例

    [复制链接]
发表于 2018-11-17 11:40:50 | 显示全部楼层
有没有简单修改块里面文本的程序呢
发表于 2018-11-17 14:02:45 来自手机 | 显示全部楼层
顶起来,顶起来
 楼主| 发表于 2019-1-26 17:23:52 | 显示全部楼层
  1. ;; xyp-Div3DistWith2Pt 沿两点3种距离等分的最优组合 (xyp-Div3DistWith2Pt p1起点 p2终点 d1距离1 d2距离2 d3距离3)
  2. ;; 返回(n1距离1的数量 n2距离2的数量 n3距离3的数量 dl剩余长度)
  3. ;; (xyp-Div3DistWith2Pt '(0 0) '(3761.59 0) 1000 500 300) → (3 0 2 161.59)
  4. (defun xyp-Div3DistWith2Pt (p1 p2 d1 d2 d3 / a l1 l2 l3 ll lst n1 n2 n3)
  5.   (setq        ll  (distance p1 p2)
  6.         lst '()
  7.         n1  (fix (/ ll d1 1.))
  8.         l1  (- ll (* n1 d1))
  9.         n2  (fix (/ l1 d2 1.))
  10.         l2  (- l1 (* n2 d2))
  11.         n3  (fix (/ l2 d3 1.))
  12.         l3  (- l2 (* n3 d3))
  13.         a   (list n1 n2 n3 l3)
  14.         lst (cons a lst)
  15.         n2  (1- n2)
  16.         n2  (if        (< n2 0)
  17.               0
  18.               n2
  19.             )
  20.         l2  (- ll (* d1 n1) (* d2 n2))
  21.         n3  (fix (/ l2 d3 1.))
  22.         l3  (- l2 (* n3 d3))
  23.         a   (list n1 n2 n3 l3)
  24.         lst (cons a lst)
  25.         n1  (1- n1)
  26.         n1  (if        (< n1 0)
  27.               0
  28.               n1
  29.             )
  30.         l1  (- ll (* n1 d1))
  31.         n2  (fix (/ l1 d2 1.))
  32.         l2  (- l1 (* n2 d2))
  33.         n3  (fix (/ l2 d3 1.))
  34.         l3  (- l2 (* n3 d3))
  35.         a   (list n1 n2 n3 l3)
  36.         lst (cons a lst)
  37.         n2  (1- n2)
  38.         n2  (if        (< n2 0)
  39.               0
  40.               n2
  41.             )
  42.         l2  (- ll (* d1 n1) (* d2 n2))
  43.         n3  (fix (/ l2 d3 1.))
  44.         l3  (- l2 (* n3 d3))
  45.         a   (list n1 n2 n3 l3)
  46.         lst (cons a lst)
  47.         lst (vl-sort lst
  48.                      '(lambda (x y)
  49.                         (cond ((< (last x) (last y)) t)
  50.                               ((and (> (car x) (car y)) (= (last x) (last y))) t)
  51.                         )
  52.                       )
  53.             )
  54.   )
  55.   (car lst)
  56. )
发表于 2019-1-26 17:53:40 | 显示全部楼层
谢谢! xyp1964 分享学习!!!!
发表于 2019-1-26 21:10:44 | 显示全部楼层
函数好多啊
发表于 2019-1-28 10:13:00 | 显示全部楼层
谢谢院长分想
发表于 2019-2-15 20:58:08 | 显示全部楼层
谢谢院长发源
发表于 2019-3-20 08:36:22 | 显示全部楼层
望院长来段 xyp-get-layers
 楼主| 发表于 2019-4-3 08:35:03 | 显示全部楼层
  1. ;; xyp-List-Del 删除表内子项 (xyp-List-Del 表 表内删除子项位置列表)
  2. ;; 表内第一个元素由0开始
  3. ;; (xyp-List-del '(0 1 2 3 4 5 6 7 8 9 10) '(2 3 6 8)) → (0 1 4 5 7 9 10)
  4. (defun xyp-List-Del (lst nth-Del / i)
  5.   (setq i -1)
  6.   (vl-remove-if
  7.     '(lambda (x) (member (setq i (1+ i)) nth-Del))
  8.     lst
  9.   )
  10. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 08:43 , Processed in 0.170329 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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