这是维度块 由于没有人知道块的尺寸,下面的代码适合插入第一个块。对于第二个,需要计算第二个插入点的位置。
(command "_.insert" "path or block's name" point2 "x-scale" "y-scale" "rotation")
如果块已在图形中,请跳过路径 好的,第二个块必须具有插入点=p3=>
(setq p3 (polar point2 (* pi 1.5) 38.0)) 假设这是我开始的代码
(defun c:BOX ( / pt1 pt2 pt3 pt4 )(setq pt1 (getpoint "Pick first corner: "))(setq pt3 (getcorner pt1 "Pick opposite corner: "))(setq pt2 (list (car pt3) (cadr pt1)))(setq pt4 (list (car pt1) (cadr pt3)))(command "line" pt1 pt2 pt3 pt4 "c" )(command "_.insert" "path or block's name" point2 "x-scale" "y-scale" "rotation")(setq p3 (polar point2 (* pi 1.5) 38.0))))
这样可以吗! 如果块的名称为“123”,则它位于图形中,并且您希望接受x比例为1.0、y比例为1.0和旋转为0.0。
(defun c:BOXX (/ osn pt1 pt2 p3)
(setq osn (getvar "osmode"))
(setvar "osmode" 0)
(setq pt1 (getpoint "Pick first corner: "))
(setq pt2 (getcorner pt1 "Pick opposite corner: "))
(command "rectang" pt1 pt2)
(command "_.insert" "123" pt2 "" "" "" )
(setq p3 (polar pt2 (* pi 1.5) 38.0))
(command "_.insert" "123" p3 "" "" "")
(setvar "osmode" osn)
(princ)
) “BOX”是autocad的命令,因此不能将其用作defun的调用代码! 你能不能制作一张样品图并附在这里,让我们看看它需要什么?
他们在两个不同的线程中重复了相同的请求,请查看。
http://www.cadtutor.net/forum/showthread.php?61231-Creating-a-lisp-help-needed&p=415942&viewfull=1#post415942 好的,谢谢你,它起作用了。! 我已经合并了你的线程。请你每个问题只需要一个线程。创建多个线程只会让人困惑。
页:
1
[2]