asos2000 发表于 2022-7-6 11:55:32

我如何开始这个口齿不清?

创建此例程的基准是什么
 
添加尺寸的lisp命令是什么
 
谢谢

CAB 发表于 2022-7-6 12:04:54

可以从使用ACAD命令的简单LISP开始。
(defun c:test(/ p1 p2 p3 p4 p5)
(setq p1 (getpoint "\nPick Center point."))
(setq p2 (getpoint "\nPick Corner point."))
(setq p3 (list (max (car p1)(car p2))(max (cadr p1)(cadr p2))))
(setq p4 (list (min (car p1)(car p2))(max (cadr p1)(cadr p2))))
(setq p5 (list (min (car p1)(car p2))(min (cadr p1)(cadr p2))))
(setq p6 (list (- (min (car p3)(car p4)) 400)(+ 400 (max (cadr p4)(cadr p5)))))
(command "_.dimlinear" "_non" p3 "_non" p4 "_non" (polar p3 (/ pi 2.) 400) )
(command "_.dimlinear" "_non" p4 "_non" p5 "_non" (polar p5 pi 400) )
(entmakex (list (cons 0 "TEXT") ;***
               (cons 1 "My Text") ;* the string
               (cons 40 (getvar "textsize")) ;* Text height
               (cons 10 p6)))
(princ)
)

asos2000 发表于 2022-7-6 12:11:21

Thanx驾驶室
还有一种方法是在rec(或任何形状)内部选择一个点,然后在外部选择一个点,并使用IF运行所示的四种情况之一
重点是如何比较这两点,以确定将运行哪种情况。
这是我的想法,使用-boundary命令创建一条Pline,然后找到Pline顶点的最大X和Y
 
然后完成例行程序
 
 
但我在这一点上停下来创建边界
该命令不接受p1
 
这是正确的方法还是有更好的方法?

Lee Mac 发表于 2022-7-6 12:16:01

您正在寻找的可能示例:
http://web2.airmail.net/terrycad/LISP/DPL.lsp

asos2000 发表于 2022-7-6 12:24:14

这是一个很好的惯例,但我不知道如何通过,并得到我想要的点。
 
我是新手,这是我学习lisp的第一步。

BlackAlnet 发表于 2022-7-6 12:29:32

“entmake”和“entmakex”有什么区别?

Lee Mac 发表于 2022-7-6 12:40:01

 
entmakex将返回新创建的实体名称-请在Visual LISP编辑器帮助文件中进行检查

asos2000 发表于 2022-7-6 12:47:36

这有什么问题吗
不接受p1
此错误

flowerrobot 发表于 2022-7-6 12:54:39

首先想到的是
(Command "-boundary" p1 "")

CAB 发表于 2022-7-6 13:00:58

是的,引号中的任何内容都是字符串,该命令正在查找点列表。
 
另一种选择:
(command ".boundary" "A" "I" "Y" "O" "P" "" p1 "")
页: [1]
查看完整版本: 我如何开始这个Lisp程序?