flowerrobot 发表于 2022-7-6 15:11:04

拿到第一分?

您好。
希望一切顺利。当我戒酒的时候。
 
我现在正试图从“getdist”那里获得分数。
 
这是目前为止最基本的布局。
谢谢你的帮助

CarlB 发表于 2022-7-6 15:17:35

1.Getdist旨在返回一段距离。如果你想要2分,我建议;
 
(setq t2(getpoint“\n选择第一个点:”)
(setq t3(getpoint t2“\n现在是另一个点:”)
 
2。(setq t4(\(+(car t2)(car t3)))你是否省略了除数,我假设2如。。哦,是的,分号不正确。。
(setq t4(/(+(车辆t2)(车辆t3))2)
 
3、你在做什么

flowerrobot 发表于 2022-7-6 15:23:55

对不起,伙计,没想到会这么快回复,我把它贴了出来,然后想,嗯,这是一些糟糕的即时编码,我需要我的记事本。
 
我更新了。
我知道这种方法,但我想保留这样的选项,即如果用户现在这样做,他们仍然能够保持距离。
 
我希望你能理解我想表达的意思。
两个圆的中心点的功。
因此,两点之间的距离给出了高度。

ASMI 发表于 2022-7-6 15:28:12

距离和中点计算示例:
 
(defun c:diss(/ pt1 pt2 mPt di)
(and
   (setq pt1(getpoint "\nSpecify first point: "))
   (setq pt2(getpoint pt1 "\nSpecify second point: "))
   (setq mPt(mapcar '/ (mapcar '+ pt1 pt2) '(2 2 2)))
   (setq di(distance pt1 pt2))
   (alert(strcat "Point 1 = " (vl-princ-to-string pt1)
          "\nPoint 2 = " (vl-princ-to-string pt1)
          "\nMidpoint = " (vl-princ-to-string mPt)
          "\nDistance = " (rtos di)
          ); end stracat
); end alert
   ); end and
(princ)
); end c:diss

flowerrobot 发表于 2022-7-6 15:29:43

的确对不起,如果我不清楚我很擅长这样做。但这不允许用户在命令行中输入“68”。以及相距68的pt1和pt2。这就是我面临的问题。

Lee Mac 发表于 2022-7-6 15:38:14

这种安排怎么样:
 

(defun c:test (/ pt1 pt2)
(initget 128)
(setq pt1 (getpoint "\nSpecify Distance or Select First Point > "))
(if (eq (type pt1) 'LIST)
   (setq pt2 (getpoint pt1 "\nSelect Second Point > ")))
(alert (vl-princ-to-string pt1))
(princ))

CAB 发表于 2022-7-6 15:40:26

您应该测试空响应,[输入]键
对于(listp x)或(eq(type pt1)’LIST,as nil将返回true
(defun c:test (/ pt1 pt2)
(initget 128)
(setq pt1 (getpoint "\nSpecify Distance or Select First Point > "))
(cond
   ((null pt1) (alert "Nothing entered."))
   ((and (listp pt1)
         (setq pt2 (getpoint pt1 "\nSelect Second Point > ")))
    (alert (vl-princ-to-string (distance pt1 pt2)))
   )
   ((alert (vl-princ-to-string pt1)))
)

(princ)
)

Lee Mac 发表于 2022-7-6 15:46:02

很好的观点CAB-感谢您的调整

CAB 发表于 2022-7-6 15:50:44

当用户选择第一个点时,这一个捕捉到了错误的第二个点。
(defun c:test (/ pt1 pt2)
(initget 128)
(setq pt1 (getpoint "\nSpecify Distance or Select First Point > "))
(cond
   ((null pt1) (alert "Nothing entered."))
   ((and (listp pt1)
         (setq pt2 (getpoint pt1 "\nSelect Second Point > ")))
    (alert (vl-princ-to-string (distance pt1 pt2)))
   )
   ((and (listp pt1) (null pt2)) (alert "Bad 2nd point."))
   ((alert (vl-princ-to-string pt1)))
)

(princ)
)

Lee Mac 发表于 2022-7-6 15:53:30

这都是关于错误捕捉的
页: [1] 2
查看完整版本: 拿到第一分?