kwok 发表于 2006-2-24 10:18:00

求高手写一个批量偏移(offset)内外的lsp

<P>&nbsp;请求写一个可以窗选偏移的lsp,如图:<BR>要求只要都是闭合的线就可以全窗选一起偏移,(最好是什么线性都可以,只要是闭合的)偏移内或外可以自选,还有要偏移成另一个层或当前层.谢谢!</P>

xyp1964 发表于 2006-2-24 10:49:00

(load "xyp_lib.vlx") ;版本 V.20060210
;|下载和加载通用函数(可在签名栏直接下载后放到搜索路径下)
利用以下任何一种方式(首选第一种)即可加载和运行通用函数内的所有子程序:
★1·在acad.lsp中增加(load"xyp_lib")
■2·在每个程序内增加(load"xyp_lib")
■3·在command下,输入(load"xyp_lib")
■4·在菜单.mnl中增加(load"xyp_lib")
■5·将xyp_lib.vlx文件直接拽到cad屏幕
★通用函数下载地址:
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=37554
|;
;;;双向偏移并改层
(defun c:test ()
(cmdla0)
;;自定义层名TEST
(mkla "TEST" 1)
(if (null getds)
    (setq getds 100)
)
(SETQ getds (UDIST 7 "" "\n输入偏移距离<可直接量取>:" getds nil)
ss    (ssget "X")
ss1   (ssget '((0 . "Arc,Circle,Ellipse,*Line")))
i   -1
)
(setvar "OFFSETDIST" getds)
(setvar "osmode" 0)
(while (setq s1 (ssname ss1 (setq i (1+ i))))
    (setq pts (xyp-get-CurveStartPoint s1)
   pt1 (xyp-get-FaxianAtPoint s1 pts 100)
   pt2 (xyp-get-FaxianAtPoint s1 pts -100)
    )
    (princ ".")
    (command "offset" "" (list s1 pts) pt1 "")
    (command "offset" "" (list s1 pts) pt2 "")
)
(command "select" (ssget "X") "r" ss "")
(command "change" (ssget "P") "" "P" "la" "TEST" "")
(cmdla1)
)

kwok 发表于 2006-2-24 11:31:00

<P>谢谢!</P>
<P>只能偏外,<BR>不能选偏内或偏外,是什么原因,是我操作问题,?还是...</P>

HuaiYu 发表于 2006-2-24 19:57:00

用 vla-offset 就可以了,具体用法可参考相关书籍!!!

ljpnb 发表于 2006-2-24 20:03:00

内外同时偏移是可以用vla-offset命令,可能程序相对来说会少写几句。

xyp1964 发表于 2006-2-24 21:39:00

kwok发表于2006-2-24 11:31:00static/image/common/back.gif
谢谢!
只能偏外,不能选偏内或偏外,是什么原因,是我操作问题,?还是...


<P>内外同时偏移。</P>
<P>对一根线来说,如何确定内外?<BR></P>

ljpnb 发表于 2006-2-24 21:57:00

<P>前提是封闭的线</P>

无痕 发表于 2006-2-26 09:55:00

偏移一向后,判断面积大小

TANER 发表于 2006-2-27 09:17:00

;;;来自晓东空间的,不记得谁编的了。
(defun c:df (/ getds obj red-dist)
(princ "\n&Ograve;&raquo;&acute;&Icirc;&euml;p&Iuml;ò&AElig;&laquo;&Ograve;&AElig;&para;à‚

kwok 发表于 2006-3-4 17:15:00

<P>我要的是多个封闭的圈或圆可以一起同时偏移,还要可以选择偏向哪一边和还要偏移出的线要跟原对象在不同的层上.</P>
<P>2楼的只能偏移到外面,9楼的是内外同时偏移,我要的是可选的,不管内和外.</P>
页: [1] 2
查看完整版本: 求高手写一个批量偏移(offset)内外的lsp