如何任意方向指定距离进行连续复制???
本帖最后由 lpl 于 2013-1-13 12:56 编辑如何实现任意方向,能按输入的任意间距数据如400,800,1200,1600,2000........进行连续复制,求高手解决。。。 本帖最后由 xiaodao520 于 2013-1-13 15:25 编辑
楼主应该悬赏,我也需要此代码,帮你顶上。
不错,下载看看! 本帖最后由 kwok 于 2013-1-13 16:53 编辑
弄个简单的
(defun C:tt()
(SETQ ss (SSGET))
(setq p1 (getpoint "\n起点 :"))
(setq p2 (getpoint p1 "\n指定方向:"))
(setq ang (angle p1 p2))
(command "_.COPY" ss "" p1 (setq p1 (polar p1 ang 400)));;400是距离
(command "_.COPY" ss "" p1 (setq p1 (polar p1 ang 800)))
(command "_.COPY" ss "" p1 (setq p1 (polar p1 ang 1200)))
(PRINC)
)
(defun c:tt (/ ANG DIST I SNAPANG SS)
;;wkq004 2013-01-13
(princ "\n选择要复制的实体<退出>-->")
(setq ss (ssget))
(if ss
(progn (if (setq ang (getangle (strcat "\n输入或点取复制角度<"
(rtos (setq snapang (/ (* 180 (getvar "snapang")) pi)) 2 2)
">:"
)
)
)
(setvar "snapang" snapang)
)
(if (setq dist (getdist "\n输入或点取复制距离:"))
(progn (princ "\n每次点击复制一次")
(setq i 0)
(while (getpoint) (setq i (1+ i)) (command "array" ss "" "r" 1 2 (* i dist)))
)
)
)
)
(princ)
)
004 发表于 2013-1-13 20:15 static/image/common/back.gif
能否改下,实现像二楼类似能按一次性输入的距离进行偏移呢 哪位大虾,写个。 本帖最后由 x_s_s_1 于 2013-1-14 12:07 编辑
写了个复制的
(defun c:test1 (/ str lt ss pt1 pt2 ang n obj)
(setq str (getstring t "\n输入间距|用,或空格分开|,回车结束:"))
(if (vl-string-search "," str)
(setq lst
(read
(strcat "("
(vl-list->string (subst 32 44 (vl-string->list str)))
")"
)
)
)
(setq lst (read (strcat "(" str ")")))
)
(prompt "\n选择需复制图元")
(setq ss (ssget))
(setq pt1 (getpoint "\n方向起点:"))
(setq pt2 (getpoint pt1 "\n方向终点:"))
(setq ang (angle pt1 pt2))
(repeat (setq N (sslength ss))
(setq obj (vlax-ename->vla-object (ssname SS (1- n))))
(mapcar '(lambda (x)
(setq obj (vla-copy obj))
(vla-move obj
(vlax-3D-point pt1)
(vlax-3D-point (setq pt1 (polar pt1 ang x)))
)
)
lst
)
(setq N (1- N))
)
(princ)
)
向各位学习了
页:
[1]
2