大家好。
我一直在努力跟上我能听懂的所有Lisp程序的情况,而且我在这方面做得越来越好。如此之多,我已经写了一些没有任何帮助!
但唉,我迟早会失败的。所以我爬回来了。
我写了这个小口吃。我确信有50种不同的版本,它是在这3个点的UCS内制作一个3点圆,而不需要手动更改UCS。
此处显示:
- ; 3 point circle maker!!!!
- ; 11/06/13
- ; Patrick Mitchell
- ; kapatrick@gmail.com
- ; picks 3 points, makes those their own UCS and makes a circle in 1 easy step!
- ;
- ;
- (defun c:3PC (/ p1 p2 p3 wp1 wp2 wp3)
- (while ;start while
- (setq p1 (getpoint "point1"))
- (setq p2 (getpoint "point2"))
- (setq p3 (getpoint "point3"))
- (setq wp1 (trans p1 1 0))
- (setq wp2 (trans p2 1 0))
- (setq wp3 (trans p3 1 0))
- (command "_ucs" "3p" p1 p2 p3)
- (command "CIRCLE" "3P" (trans wp1 0 1) (trans wp2 0 1) (trans wp3 0 1))
- (command "._ucs" "_w")
- (princ)
- ) ;end while
- )
(旁注:我无法让“entmake”以这种方式工作。由于某种原因,我无法让DXF代码和“trans 0 1”工作。我通常喜欢使用entmake,这样我可以命名我的圆和线,并引用它们。)
现在,这里是它变得棘手的地方。因为我想“改进”它,但非常具体。
我想我需要的大部分代码都可以与“assoc”和“mapcar”一起使用。
我在寻找一种方法,当我创建这些圆时,我在寻找这些圆的象限,但在WCS中。据我猜测,这可能是不可能的。因为在WCS中,无法拾取在唯一UCS中生成的圆的象限。到目前为止,我不得不通过在它旁边创建一个圆来伪造它,并根据我的完美圆旋转一些象限线。
有什么想法吗?或者我希望有人告诉我这是不可能的,所以我不会在两周内追逐白日梦。
谢谢你的时间! |