rodrigo_sjc_sp 发表于 2022-7-6 06:56:10

缩放问题

我有密码
 

(setq i 0)
(repeat (sslength selpline)
   (setq pline_ent (ssname selpline i))            
   (setq lis_ent (entget pline_ent))
   (setq j 0)
   (setq b 0)
   (setq lis_coords '())   
   (repeat (length lis_ent)
         (if (= (car (nth j lis_ent)) 10)
               (setq lis_coords (append lis_coords (list (cdr (nth j lis_ent)))))
         )      
         (setq j (+ j 1))
      )
   (print "001")
   (setq selec (ssget "wp" lis_coords))
   (print "002")
   (repeat (sslength selec)   
   (print "003")
   (setq entblk (ssname selec b))   
   (print "004")
   (setq tipo_l (cdr(assoc 0 (entget entblk))))
   (print "005")

 
 
如果使用“缩小”命令,则可以在(打印005)处运行该命令
 
但是,如果我在命令“002”中使用“缩放”
指定拉伸点或[基点/复制/撤消/退出]:1
"001"
"002" ; 错误:错误的参数类型:lselsetp nil
 
错误就在这条线上
(重复(sslength selec)
 
 
并显示消息request Select Object
 
有什么帮助吗?

togores 发表于 2022-7-6 07:19:32

您好,Rodrigo,要将ssget与图形窗口选择模式(C、CP、F、W、WP)结合使用,指定区域应在屏幕上可见,因此最好在之前使用最大化显示。或者,如果图形太大,可以将窗口缩放到选定多段线的范围。
在这种情况下,可以使用该实体的边界框:
(vla-GetBoundingBox (vlax-ename->vla-object (car (entsel))) 'pmin 'pmax)
(vla-zoomwindow (vlax-get-acad-object) pmin pmax)

pBe 发表于 2022-7-6 07:26:23

 
这些是不规则形状的多段线吗?

rodrigo_sjc_sp 发表于 2022-7-6 07:51:21

雷纳尔多,你的小费帮了我。
如果多段线未显示整个屏幕,则返回null。
 
使用缩放解决
 
感谢所有人(雷纳尔多和pBe!)

togores 发表于 2022-7-6 08:07:30

不客气!
页: [1]
查看完整版本: 缩放问题