更改值
这是一个更大的代码,我已经工作了一段时间了。我发现这是一个错误,我没有改变我想要的一切,而是尝试将0.9325加到pLL,只在x值中从pUR中减去0.9325。y和z值很好。pLR和pUL应遵循,因为它们基于pLL和pUR。(defun C:BP47
;; = Box Plate with 47-degree end-flap angles
(/ *error*)
(vl-load-com)
(defun *error* (errmsg)
(if (not (wcmatch errmsg "Function cancelled,quit / exit abort")
)
(princ (strcat "\nError: " errmsg))
) ; end if
(BPReset)
) ; end defun - *error*
(defun BPReset ()
(setvar 'plinewid plw)
(setvar 'osmode osm)
(setvar 'blipmode blipm)
(setvar 'clayer curlay)
(command "_.undo" "_end")
(setvar 'cmdecho cmde)
) ; end defun
(setq cmde (getvar 'cmdecho))
(setvar 'cmdecho 0)
(command "_.undo" "_begin")
(setq osm (getvar 'osmode))
(setvar 'osmode 0)
(setq blipm (getvar 'blipmode))
(setq
curlay (getvar 'clayer)
plw (getvar 'plinewid)
p1 (getpoint "\nSpecify First Corner: ")
p2 (getcorner p1 "\nSpecify Opposite Corner: ")
fl (getdist p1 "\nSpecify Depth: ")
flr (/ fl (sin (* (/ 47.0 180) pi)))
pLL (mapcar 'min p1 p2); Lower Left corner
pUR (mapcar 'max p1 p2); Upper Right
pLR (list (car pUR) (cadr pLL) 0) ; Lower Right
pUL (list (car pLL) (cadr pUR) 0) ; Upper Left
FS (* (/ 47.0 180) pi); Forty-Seven degrees
) ; end setq
)
感谢任何帮助。
肯特 (应用“mapcar(cons)”最小值。。。 那么像这样??还是我完全没有注意到?
pLL(应用“mapcar(cons)”最小值(+p1 0.9325)p2);左下角
pUR(应用“mapcar(cons)”最小值(-p1 0.9325)p2);右上角 “cons”需要列表或其他单个元素。。。
另外,考虑一下为了使用我发布的语法,您正在构造什么 改为尝试此代码
(setq pLL
(list (apply 'min (mapcar 'car (list p1 p2)))
(apply 'min (mapcar 'cadr (list p1 p2)))
0)
pLL (mapcar '+ pLL (list -0.9325 -0.9325 0))
pUR
(list (apply 'max (mapcar 'car (list p1 p2)))
(apply 'max (mapcar 'cadr (list p1 p2)))
0)
pUR (mapcar '+ pUR (list 0.9325 0.9325 0))
)
~'J'~
这工作完美无瑕,我只是调整了一下,以满足我的需要和voiala。非常感谢。
肯特 好吧,我意识到你不会费心去追求我的想法,但这里有:
(setq pt1 '(1 2 3) pt2 '(4 5 6))
(cons 'min (list pt1 pt2))
==> (min pt1 pt2)
(apply 'mapcar (cons 'min (list pt1 pt2)))
==> (apply 'mapcar (min pt1 pt2))
==> ((min 1 4) (min 2 5) (min 3 6))
哦,好吧。 不,我没有理解你的意思。我仍然认为这不能说实话。我对这一切还是新手,我非常感谢你帮我做的一切。 别担心,伙计,我只是有点失望,你放弃了一切。 哎哟,“失望”这个词出来了。哈哈。不过,我不介意解释一下你在代码中试图做什么。我喜欢学习。
页:
[1]
2