Arizona 发表于 2022-7-6 11:46:48

来自WP的SS

有人能给我看一下从用户选择的窗口多边形中选择集的代码吗?
帮助仅显示从预设的一批坐标中定义的一个坐标。
我还需要它只获取具有特定名称的块(2,“名称”)
谢谢

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

您可以使用ssnamex从选择集中获取信息

Arizona 发表于 2022-7-6 12:08:00

谢谢李。研究了SSNAMEX,这超出了我的技能范围。我的Lisp程序技能可以追溯到R12。。。。
 
我想我做到了:
(命令“select”“WP”)
(setq ss1(ssget“_P”'((2。“P-MH”)))
 
我在找更干净的东西,但很管用。

Shawndoe 发表于 2022-7-6 12:19:31

你好
 
试试这个
 

(setq SS1 (ssget
               "_WP"
               (while (/= (setq Pnt (getpoint "Pick a Point: \n")) nil)
                  (setq Pnt_List (cons Pnt Pnt_List))
               )
               '((2 . "M-PH"))
         )
)

 
祝你过得愉快。
肖恩

Lee Mac 发表于 2022-7-6 12:23:22

这个怎么样?
 

(defun GetWindowPoly (/ PtLst pt gr)
;; Lee Mac~31.01.10
(if (car (setq ptLst (list (getpoint "\nSpecify First Point: "))))
   (progn
   (princ "\nPick Window Points >>")
   (while
       (setq pt
         (progn
         (while
             (and (= 5 (car (setq gr (grread 't 5 0))))
                  (listp (cadr gr)))
             (redraw)
             (mapcar
               (function
               (lambda (from to)
                   (grdraw from to 3 1)))
               
               (cons (cadr gr) ptLst) (append ptLst (cdr gr))))
         
         (cond ((listp (cadr gr)) (cadr gr)))))
      
       (cond (pt (setq ptLst (cons pt ptLst)))))

   (redraw)
   (reverse ptLst))))


(defun c:test (/ pts ss)
(if (and (setq pts (GetWindowPoly))
          (setq ss(ssget "_WP" pts)))
   (sssetfirst nil ss))
(princ))      

 
很遗憾OSnap

devitg 发表于 2022-7-6 12:30:49

嗨,李,我前几天了解到,所有SSGET,除了“X”,都需要在屏幕上显示点。
当拾取最后一个点时,我可能会进行平移和缩放,而之前的点不会显示在屏幕上,SSGET返回零。
在这种情况下,我进行缩放。

Lee Mac 发表于 2022-7-6 12:45:40

 
也许是真的,我的只是一个开窗的例子

Arizona 发表于 2022-7-6 12:47:10

谢谢大家!它在工作!
页: [1]
查看完整版本: 来自WP的SS