kic 发表于 2006-3-30 20:15:00

大哥,大姐这样的lisp该如何写,帮帮忙!!!!!!!!!!!

我想把这个小圆复制到每一个交点去,该如何做????在线等待中^^^^^^^^^^^^^^^^^^^^^^^^^

风之助 发表于 2006-3-30 20:56:00

<P>“小圆”在哪里?</P>
<P>个人认为,你的问题没说白,别人怎么回答呢?</P>

kic 发表于 2006-3-30 21:38:00

hehe 老大没看到啊,在那个拱型上面,中线处!!!!

xyp1964 发表于 2006-3-30 23:33:00

(load "xyp_lib.vlx") ;版本 V.20060314
;|下载和加载通用函数(可在签名栏直接下载后放到搜索路径下)
利用以下任何一种方式(首选第一种)即可加载和运行通用函数内的所有子程序:
★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)
(setq e (car (entsel "\n选择小圆: ")))
(setvar "osmode" 0)
(if (= (xyp-get-dxf 0 e) "CIRCLE")
    (progn
      (princ "\n选择复制范围: ")
      (setq ss (ssget '((0 . "LINE")))
   pt0 (xyp-get-dxf 10 e)
   i -1
   j 0
      )
      (while (setq s1 (ssname ss (setq i (1+ i))))
(setq l   (xyp-get-Curvelength s1)
       pt1 (xyp-get-dxf 10 s1)
)
(if (AND (< l 2.1) (NOT (equal pt0 pt1)))
   (progn
   (command "copy" e "" pt0 pt1)
   (setq j (1+ j))
   )
)
      )
    )
)
(princ "\n共复制 ")
(princ j)
(princ " 个小圆")
(CMDLA1)
)

风之助 发表于 2006-3-31 17:55:00

不好意思,将版主的程序改了一下,不用加载xyp_lib.vlx(版主的vlx库是挺好的,只是个人认为初学者还是多学一些知识比较好),请版主见谅!


(defun c:test ()
;;(CMDLA0)
(vl-load-com)
(setq e (car (entsel "\n选择小圆: ")))
(setvar "osmode" 0)
;(if (= (xyp-get-dxf 0 e) "CIRCLE")
(if (= (cdr (assoc 0 (entget e))) "CIRCLE")
(progn
   (princ "\n选择复制范围: ")
   (setq ss(ssget '((0 . "LINE")))
      pt0 (cdr (assoc 10 (entget e)))
      i   -1
      j   0
   )
   (while (setq s1 (ssname ss (setq i (1+ i))))
    (setq obj (vlax-ename->vla-object s1)
    l   (vlax-curve-getDistAtPoint obj (vlax-curve-getEndPoint obj))
       pt1 (cdr (assoc 10 (entget s1)))
    )
    (if (and (< l 2.1) (not (equal pt0 pt1)))
   (progn
      (command "copy" e "" pt0 pt1)
      (setq j (1+ j))
   )
    )
   ); end of while
); end of progn
); end of if
(princ "\n共复制 ")
(princ j)
(princ " 个小圆")
;;(CMDLA1)
)

kic 发表于 2006-4-1 01:12:00

<P>狂谢,,斑竹和风哥!!!!!!!谢谢了,去试试</P>
<P>!!</P>

kic 发表于 2006-4-1 01:21:00

<P>不过小弟用了一下,没有达到预期的目的,我想是我没有说明白,!!!!因为我是搞巷道工程的,要经常做很多巷道断面的炮眼布置图,所以就想做一个命令,具体为:</P>
<P>1、我已经做好了一个命令可以做出巷道的断面,和所有应该布置炮眼的点</P>
<P>2、选择一个小圆后在所有的点都能自动复制一个小圆,</P>
<P>小弟水平凹,呵呵请大哥们费费心了!!!!!!!</P>

超然 发表于 2006-4-1 07:41:00

<P>怎么不能在论坛发帖子了啊?&nbsp; 发表帖子的时候写正文的地方是不可编辑的。&nbsp; 好郁闷啊。&nbsp; </P>

kic 发表于 2006-4-1 09:36:00

<P>今天早上又试了一下两位高人的程序,非常好使,再次感谢,,,,,崇拜啊!!!!!</P>

kic 发表于 2006-4-1 10:09:00

还有请教以个问题:小弟用princ输出提示的时候,总是输出两次,为什么?如何改,谢谢!!!!!!!
页: [1] 2
查看完整版本: 大哥,大姐这样的lisp该如何写,帮帮忙!!!!!!!!!!!