ehsantavassolia 发表于 2022-7-5 15:01:59

在地图上选择一个圆形区域,

在microstation软件中,我可以在地图上选择一个圆形区域,
 

 
从地图中绘制选定范围的副本
 

 
这样我就可以把它屏蔽并放大。是否可以在AutoCAD中或通过Autolisp实现?
 

marko_ribar 发表于 2022-7-5 15:16:41

您的附件无效。。。
 
 
如果你的地图实际上是带有CAD实体的DWG,你可以选择你喜欢的部分,然后将其块化,然后用圆形多边形剪切以模拟你的任务。。。

ehsantavassolia 发表于 2022-7-5 15:25:30

是的,我有dwg文件
但是我如何通过选择一个圆来选择所有的图形呢。不使用修剪命令。他们抹掉了圆圈并将其挡住。
地图中的图形数量非常大,使用Trim命令非常耗时
我们可以用autolisp吗?

Grrr 发表于 2022-7-5 15:28:24

安德里亚做了一些与这里的要求类似的事情。
然而,我不确定在模型空间中创建这样的视口的技术是什么。

marko_ribar 发表于 2022-7-5 15:37:38

安德烈当然有主意。。。我不久前复制了他的成就。。。
https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/magnifying-glass-in-autocad/m-p/7034374/highlight/true#M352530
 
 
HTH。,M、 R。

ehsantavassolia 发表于 2022-7-5 15:50:25

这是最好的答案。谢谢:震惊:
 
https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/magnifying-glass-in-autocad/m-p/7034374#M352530

Grrr 发表于 2022-7-5 15:54:17

 
不错,马尔科!
为了略微提高性能,我建议添加一个“睡眠”,这样每次光标移动不会有那么多命令调用:
(setq tm (rem (getvar 'cdate) 30))
(while (/= 3 (car (setq gr (grread t))))
   (if loop
   (entdel bn)
   )
   (setq p (cadr gr))
   (if (/= tm (setq tmp (rem (getvar 'cdate) 30)))
   (vl-catch-all-apply
       (function
         (lambda nil
         (setq tm tmp)
         (setq v (mapcar '- '(0 0 0) p))
         (setq vn (mapcar '* v (list scf scf scf)))
         (entupd (cdr (assoc -1 (entmod (subst (cons 10 p) (assoc 10 (entget s2)) (entget s2))))))
         (setq ip (mapcar '+ pp vn))
         (setq bn (vlax-vla-object->ename (vla-insertblock spc (vlax-3d-point ip) n scf scf scf 0)))
         (command "_.XCLIP" bn "" "_N" "_S" e)
         (setq loop t)
         )
       )
   )
   )
)

Roy_043 发表于 2022-7-5 16:02:17

为什么不使用图纸空间视口来实现这一点?
页: [1]
查看完整版本: 在地图上选择一个圆形区域,