嗨,谢谢李。请告诉我是什么代码决定了要做哪些[+/-]?
零件编号:
哦,我发现它属于g2。
再次感谢 我喜欢Lee Mac在whit[+/-]中做的事情,尝试学习这个,并将其用于我的Lisp(谈论垂直线案例)。但是现在,有谁能帮我想一想,如何从两边只画两条线——蓝色,其他的,中间的红色。。。?
这当然不是我的意图——我希望其他人能从我发布的示例中学习,不要因此而气馁。 Qonfire,请使用代码标签!!! Rekoj看我的上一篇帖子,我按你的要求做了。 BIGAL不知怎的,它对我不起作用。。。现在不管我输入多少行,它总是得到一行没有任何颜色的。。就这样给我吗? 在第8篇文章中快速修改了我的代码:
(defun c:vlines ( / p1 p2 h i n v )
(if
(and
(setq p1 (getpoint "\nSpecify First Corner: "))
(setq p2 (getcorner "\nSpecify Opposite Corner: " p1))
(progn (initget 6) (setq n (getint "\nSpecify Number of Lines: ")))
)
(progn
(setq h (if (= 1 n) 0. (/ (- (car p2) (car p1)) (1- n)))
v (- (cadr p2) (cadr p1))
i 1
)
(repeat n
(entmakex
(list
(cons 0 "LINE")
(cons 8 "Profile")
(cons 62 (if (or (= 1 i) (= n i)) 5 1))
(cons 10 (trans p1 1 0))
(cons 11 (trans (list (car p1) (+ (cadr p1) v) (caddr p1)) 1 0))
)
)
(setq p1 (list (+ h (car p1)) (cadr p1) (caddr p1)) i (1+ i))
)
)
)
(princ)
) 我承认我没有测试它,但我要说的是,你需要从段数中减去2,然后在一层“Profile1”上画一条线,然后在“profile2”层上画n-2条线,然后在“Profile1”层上画最后一条线。
我想说的是,你需要修改Lee的代码,在例程中执行3个entmakex,在(repeat n)之前加1,在repeat函数结束后加1。
Lee建议帮助rekoj解决这个问题,请注意代码没有经过测试,因为目前没有autocad需要检查括号。
对于rekoj,使用defun“makeline”可以更容易地多次重复一个简单的函数,但只需更改一个变量。在这种情况下,可以添加更多的defun来放置圆块等,并且在不同的位置有不同的defun。使用此选项,您可以创建多行问题,而不是一次创建一行。
(defun c:vlines2 ( / p1 p2 h i n v )
(defun makeline (layans)
(entmakex
(list
(cons 0 "LINE")
(cons 8 layans)
(cons 62 (if (or (= 1 i) (= n i)) 5 1))
(cons 10 (trans p1 1 0))
(cons 11 (trans (list (car p1) (+ (cadr p1) v) (caddr p1)) 1 0))
)
)
(setq p1 (list (+ h (car p1)) (cadr p1) (caddr p1)) i (1+ i))
)
(if
(and
(setq p1 (getpoint "\nSpecify First Corner: "))
(setq p2 (getcorner "\nSpecify Opposite Corner: " p1))
(progn (initget 6) (setq n (getint "\nSpecify Number of Lines: ")))
)
(progn
(setq h (if (= 1 n) 0. (/ (- (car p2) (car p1)) (1- n)))
v (- (cadr p2) (cadr p1))
i 1
)
(setq layans "profile1") ; 1st line
(makeline layans)
(setq layans "profile2");n-2 lines
(repeat n
(makeline layans)
)
(setq layans "profile1"); last line
(makeline layans)
)
)
(princ)
)
使用计数器(如我在文章#17中的代码)应该不需要有多个重复循环。 此外,当我在BIGALS的lisp中输入行数时,它们不是在蓝色的中间绘制的,而是在外部绘制的。
顺便说一句,Le Mac,也许你有机会一步一步地解释一下你在第#7篇文章中所做函数的含义。已经是第二天了,我正在尝试探索Lisp程序,并将线条方向从水平方向更改为垂直方向。。但我真的迷路了,当我试图弄清楚什么是什么东西的时候。。当我按我认为应该的方式更改它时,该程序不起作用或根本不起作用。。。
页:
1
[2]