Lee Mac 发表于 2022-7-6 14:32:06

当你感到无聊时的口齿不清。

... 我是
 

(defun c:bored (/ pt1 pt2 lst cnt gr)
(setq pt1 (getpoint "\nSelect First Point: ")
       pt2 (getpoint "\nSelect Second Point: ")
       lst (list pt1 pt2) cnt 0)
(while (eq 5 (car (setq gr (grread 5))))
   (redraw)
   (setq lst
   (append lst
       (list (last lst) (cadr gr))))
   (if (< 100 cnt)
   (setq lst (cddr lst)))
   (setq cnt (1+ cnt))
   (grvecs (append (list (rem (/ cnt 100) 255)) lst)))
(princ))

 
享受无聊的乐趣。
肖恩多

The Buzzard 发表于 2022-7-6 14:37:18

更简单的方法伙计
 
<br>(defun c:bored (/ pt1 pt2 lst cnt gr)<br>(vl-load-com)<br>(setq DisplayObj (vla-get-display (vla-get-preferences (vlax-get-acad-object))))<br>(setq pt1 (getpoint "\nSelect First Point: ")<br>      pt2 (getpoint "\nSelect Second Point: ")<br>      lst (list pt1 pt2) cnt 0)<br>(vla-put-ModelCrosshairColor DisplayObj 0); Black<br>(while (eq 5 (car (setq gr (grread 5))))<br>    (redraw)<br>    (setq lst<br>      (append lst<br>      (list (last lst) (cadr gr))))<br>    (if (< 100 cnt)<br>      (setq lst (cddr lst)))<br>    (setq cnt (1+ cnt))<br>    (grvecs (append (list (rem (/ cnt 100) 255)) lst)))<br>(princ)<br>(vla-put-ModelCrosshairColor DisplayObj 16777215); White<br>)<br>

Shawndoe 发表于 2022-7-6 14:43:48

 
谢谢Buzzard,我感到很荣幸——但这个网站上有很多经验丰富的程序员,他们只是“不如我活跃”。
 
祝你的朋友好运
 
 
干杯,艾伦,
 
这是一个很好的选择,我并没有花太多时间思考这个问题,但这是一个很好的解决方案
 

Lee Mac 发表于 2022-7-6 14:46:46

我只是想到了viewctr,因为我有时使用它来放置计算例程的文本,这样我就不必实际选择放置点,因为我将在填写完所有信息后立即删除它。

The Buzzard 发表于 2022-7-6 14:51:38

不错,李
 
这是我的无聊和你的无聊交织在一起。
 

(defun c:bored(/ pt1 pt2 lst cnt gr)
;;;(vl-load-com)
;;;(setq DisplayObj (vla-get-display
;;;                     (vla-get-preferences
;;;                     (vlax-get-acad-object))))
(setq pt1 (getpoint "\nSelect First Point: ")
       pt2 (getpoint "\nSelect Second Point: ")
       lst (list pt1 pt2) cnt 0)
;;;(vla-put-ModelCrosshairColor DisplayObj 0) ; Black
(while (eq 5 (car (setq gr (grread nil 5 1))))
   (redraw)
   (setq lst
   (append lst
       (list (last lst) (cadr gr))))
   (if (< 100 cnt)
   (setq lst (cddr lst)))
   (setq cnt (1+ cnt))
   (grvecs (append (list (rem (/ cnt 100) 255)) lst)))
(princ)
;;;(vla-put-ModelCrosshairColor DisplayObj 16777215) ; White
)

Lee Mac 发表于 2022-7-6 14:58:32

哈哈-辉煌的罗恩

The Buzzard 发表于 2022-7-6 15:03:21

Lee Mac 发表于 2022-7-6 15:07:06

 
Well, you say that, after spending a bit more time at the TheSwamp, I'm beginning to consider myself a beginner...

The Buzzard 发表于 2022-7-6 15:09:58

Hey, As far as I am concerned, Your number 1 here. I will make my best attempt at it anyway. After all, I have no boss to answer to. But you will be suprised to see that this code was done so easy, Most of the programmers here could have done it. I am just going to enhance it a bit.

alanjt 发表于 2022-7-6 15:14:22

man, i know exactly how you feel.
 
just to remove the requirement to pick 2 points...

(defun c:bored(/ pt1 pt2 lst cnt gr);;;(vl-load-com);;;(setq DisplayObj (vla-get-display;;;                     (vla-get-preferences;;;                     (vlax-get-acad-object)))) (setq pt1 (getvar "viewctr")       pt2 (mapcar '(lambda (x) (* x x)) pt1)       lst (list pt1 pt2) cnt 0);;;(vla-put-ModelCrosshairColor DisplayObj 0) ; Black (while (eq 5 (car (setq gr (grread nil 5 1))))   (redraw)   (setq lst   (append lst       (list (last lst) (cadr gr))))   (if (< 100 cnt)   (setq lst (cddr lst)))   (setq cnt (1+ cnt))   (grvecs (append (list (rem (/ cnt 100) 255)) lst))) (princ);;;(vla-put-ModelCrosshairColor DisplayObj 16777215) ; White )
页: [1] 2
查看完整版本: 当你感到无聊时的Lisp程序。