支持一下。。。。
有没有简单修改块里面文本的程序呢
顶起来,顶起来
;; xyp-Div3DistWith2Pt 沿两点3种距离等分的最优组合 (xyp-Div3DistWith2Pt p1起点 p2终点 d1距离1 d2距离2 d3距离3)
;; 返回(n1距离1的数量 n2距离2的数量 n3距离3的数量 dl剩余长度)
;; (xyp-Div3DistWith2Pt '(0 0) '(3761.59 0) 1000 500 300) → (3 0 2 161.59)
(defun xyp-Div3DistWith2Pt (p1 p2 d1 d2 d3 / a l1 l2 l3 ll lst n1 n2 n3)
(setq ll(distance p1 p2)
lst '()
n1(fix (/ ll d1 1.))
l1(- ll (* n1 d1))
n2(fix (/ l1 d2 1.))
l2(- l1 (* n2 d2))
n3(fix (/ l2 d3 1.))
l3(- l2 (* n3 d3))
a (list n1 n2 n3 l3)
lst (cons a lst)
n2(1- n2)
n2(if (< n2 0)
0
n2
)
l2(- ll (* d1 n1) (* d2 n2))
n3(fix (/ l2 d3 1.))
l3(- l2 (* n3 d3))
a (list n1 n2 n3 l3)
lst (cons a lst)
n1(1- n1)
n1(if (< n1 0)
0
n1
)
l1(- ll (* n1 d1))
n2(fix (/ l1 d2 1.))
l2(- l1 (* n2 d2))
n3(fix (/ l2 d3 1.))
l3(- l2 (* n3 d3))
a (list n1 n2 n3 l3)
lst (cons a lst)
n2(1- n2)
n2(if (< n2 0)
0
n2
)
l2(- ll (* d1 n1) (* d2 n2))
n3(fix (/ l2 d3 1.))
l3(- l2 (* n3 d3))
a (list n1 n2 n3 l3)
lst (cons a lst)
lst (vl-sort lst
'(lambda (x y)
(cond ((< (last x) (last y)) t)
((and (> (car x) (car y)) (= (last x) (last y))) t)
)
)
)
)
(car lst)
)
谢谢! xyp1964 分享学习!!!!
函数好多啊
谢谢院长分想
谢谢院长发源
望院长来段 xyp-get-layers
;; xyp-List-Del 删除表内子项 (xyp-List-Del 表 表内删除子项位置列表)
;; 表内第一个元素由0开始
;; (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)
(defun xyp-List-Del (lst nth-Del / i)
(setq i -1)
(vl-remove-if
'(lambda (x) (member (setq i (1+ i)) nth-Del))
lst
)
)