[LISP函数]:为LCD设计的LISP:给定间隔距离的,宽度可选的快速偏移
LISP程序名:AOFFSET给定间隔距离的,宽度可选的快速偏移。(defun C:AOFFSET (/ sr mx mx1 mx2ss N N1 PT1 obj1 AAA al)
(setq sr "") (setq mx 0)
(setq mx1 (getreal "间隔距离:"))
(while (= sr "")
(setq sr (strcat (getstring "\nSpecify offset distance <x/x/x...>:") "/")))
(prompt "\nSelect object to offset: ")
(while (= obj1 nil)
(setq obj1 (entsel))
)
(initget 1)
(setq PT1 (getpoint "\nSpecify point on side to offset: "))
(setq al (+ (strlen sr) 1))
(setq N 1)
(setq ss "")
(while (not (= N al))
(if (= (substr sr N 1) "/")
(progn
(setq AAA (car obj1)) (setq N1 0)
(while (/= N1 2)
(if (= 1 N1)
(setq ss (rtos (setq mx (+ (atof ss) mx1)) 2))
(setq ss (rtos (setq mx (+ (atof ss) mx)) 2)))
(command "_.offset" ss AAA PT1 "")
(setq N1 (+ 1 N1)))
(setq ss "") (setq N1 0)
)
(setq ss (strcat ss (substr sr N 1)))
)
(setq N (1+ N))
)
(princ)
) 为LCD设计的LISP程序
试试我写的,如果知道几条就输条数,不知道时点总距离
(defun c:ooo(/ np1 p2 p3 nn ddswap oodist1 j)(if(not oodist)(setq oodist 100))
(setq n(getdist (strcat"距离("(rtos oodist 2 2)"):")))
(if n(setq oodist n))
(setq swap(entsel))
(if swap(progn
(setq p1(cadr swap))
(initget 1)
(setq p2(getpoint p1 "\n范围:"))
(setq nn (getint "\n几条(回车选点确定条数):"))
(if(not nn)
(progn (setq dd(distance p1 p2))
(setq nn(fix(/ dd oodist)))))
(setq off(getvar "offsetdist"))
(setq j 1)
(command "undo""group")
(while (<= j nn)
(setq oodist1(* j oodist))
(setvar"offsetdist" oodist1 )
(command "offset"""swap p2 "")
(setq j(1+ j))
)
(setvar"offsetdist" off)(command "undo""End")
))
(princ "ok")
)
to aeo:你画的LCD难道是单线吗?
你画的LCD难道是单线吗?我以前也是画单线,现在不是这样设计的. 跟本站的重复偏移有区别吗 本站的重复偏移在哪儿? 前来学习学习!
页:
[1]