cj52000 发表于 2009-9-3 19:07:00

[求助]求从多段线偏移某个线条的lisp程序?

<p>大家好,从某个封闭多段线偏移一个直线,一般我会把当前的封闭多段线炸开,然后选一直线偏移,能不能不用炸开就直接选一条直线偏移,这样就能节约很多时间,求这种功能的lisp,谢谢!</p>

xyp1964 发表于 2009-9-4 20:39:00

<p>;; 多段线逐段双向偏移<br/>(defun c:test823 ()<br/>&nbsp; (CMDLA0)<br/>&nbsp; (xyp-MkLaCo "TEST" 1)<br/>&nbsp; (SETQ DIST (UDIST 1 "" "距离&lt;输入或鼠标直接量取&gt;" DIST nil))<br/>&nbsp; (while (setq e (entsel "\n多段线: "))&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; (if&nbsp;(member (xyp-get-dxf 0 (car e)) '("POLYLINE" "LWPOLYLINE"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;(setq a&nbsp; (xyp-get-Pts&amp;Pte e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p1 (car a)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p2 (cadr a)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; S2 (XYP-ADD-LINE P1 P2)<br/>&nbsp;)<br/>&nbsp;(xyp-Offset (entlast) dist t t t)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp; (CMDLA1)<br/>)</p><p></p>

cj52000 发表于 2009-9-6 18:53:00

谢谢版主回复,有没有单向偏移的啊要,双向的用得很少,呵呵!

cj52000 发表于 2009-9-8 19:07:00

<p>版主,我用后出现错误的提示:</p><p>命令: TEST823 ; 错误: no function definition: CMDLA0</p><p>怎么回事啊要,谢谢!</p>

caoyao_1987 发表于 2011-8-28 13:43:06

这个功能外挂有的。PRESSCAD

liudeyong 发表于 2011-9-6 15:00:45

;;;;单段偏移
(defun c:oo (/ od ss_1 s1 s3 s2 sa sa1 ssK3 e)
(Setvar "cmdecho" 0)
(command "_undo" "g")
(setq od (getvar 'offsetdist))
(princ "\n 请输入偏移复制距离<")
(princ od)
(princ ">")
(setq od (getreal))
(if od
    (setvar 'offsetdist od)
)
(prompt "\n 请选择要偏移复制的图元")
(SETQ ss_1 NIL)
(WHILE (null ss_1)
    (setq ss_1 (entsel))
)
(SETQ S1 (CaR SS_1))
(redraw s1 3)
(prompt "\n 请选择偏移复制方向")
(setq s3 (getpoint))
(IF (= (cdr (assoc 0 (entget s1))) "LWPOLYLINE")
    (PROGN
      (setq s2 (CAR (cdr ss_1)))
      (setq sa (entlast))
      (command "_explode" s1)
      (setq sa1 (ssnamex (ssget s2)))
      (setq ssk3 (ssadd))
      (setq e (entnext sa))
      (ssadd e ssk3)
      (while e
        (setq e (entnext e))
        (if e
          (ssadd e ssk3)
        )
      )
      (SETQ s1 (nth 1 (car sa1)))
      (command "_offset" "" s1 s3 "")
      (command "_pedit" s1 "" "j" ssk3 "")
    )
    (command "_offset" "" s1 s3 "")
)
(command)
(command "_undo" "e")
(princ)
)

lzg8877 发表于 2012-5-8 19:13:03

哇强大呀 好东西收下了
页: [1]
查看完整版本: [求助]求从多段线偏移某个线条的lisp程序?