Kenter 发表于 2022-7-6 10:35:46

更改值

这是一个更大的代码,我已经工作了一段时间了。我发现这是一个错误,我没有改变我想要的一切,而是尝试将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
)

 
感谢任何帮助。
肯特

Lee Mac 发表于 2022-7-6 10:42:52

(应用“mapcar(cons)”最小值。。。

Kenter 发表于 2022-7-6 10:50:10

那么像这样??还是我完全没有注意到?
 
pLL(应用“mapcar(cons)”最小值(+p1 0.9325)p2);左下角
pUR(应用“mapcar(cons)”最小值(-p1 0.9325)p2);右上角

Lee Mac 发表于 2022-7-6 10:52:17

“cons”需要列表或其他单个元素。。。
 
另外,考虑一下为了使用我发布的语法,您正在构造什么

fixo 发表于 2022-7-6 10:56:25

改为尝试此代码

(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'~

Kenter 发表于 2022-7-6 11:05:26

 
这工作完美无瑕,我只是调整了一下,以满足我的需要和voiala。非常感谢。
 
肯特

Lee Mac 发表于 2022-7-6 11:06:38

好吧,我意识到你不会费心去追求我的想法,但这里有:
 

(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))

 
哦,好吧。

Kenter 发表于 2022-7-6 11:12:37

不,我没有理解你的意思。我仍然认为这不能说实话。我对这一切还是新手,我非常感谢你帮我做的一切。

Lee Mac 发表于 2022-7-6 11:18:04

别担心,伙计,我只是有点失望,你放弃了一切。

Kenter 发表于 2022-7-6 11:22:47

哎哟,“失望”这个词出来了。哈哈。不过,我不介意解释一下你在代码中试图做什么。我喜欢学习。
页: [1] 2
查看完整版本: 更改值