HideQ 发表于 2022-7-5 15:47:51

有没有“暂停”视图的方法

例如,lisp正在从单个线条中绘制复杂的形状——有没有一种方法可以在功能期间“暂停”显示,使完整的线条一次全部显示出来,而不是在屏幕上闪烁的每一行?
 
非常感谢

ronjonp 发表于 2022-7-5 16:03:20

你需要发布你正在使用的代码。

Lee Mac 发表于 2022-7-5 16:13:58

使用entmake(x)或ActiveX方法,而不是命令调用。

HideQ 发表于 2022-7-5 16:24:50

谢谢李,我认为这是正确的选择。
 
我是lisp新手,很少有应用程序会问这个问题,但目前我正在努力使用lisp,使我能够在AutoCad 2016中快速使用点云。
 
建模时,我通常使用3个视口,例如从侧视图切片云和从顶部调查。我希望能像cloudworx一样上下移动点云的裁剪,所以我提出了这个粗略的解决方案:
 
(defun c:crop (/ cor1 cor2); point cloud rectangular crop
(setq cor1 (getpoint "\nselect first corner:"))
(setq cor2 (getcorner cor1 "\nselect second corner:"))
(setq 2dcor1 (list (car cor1) (cadr cor1)))
(setq 2dcor2 (list (car cor2) (cadr cor2)))
(setq cloud (ssget "x" '((8 . "Cloud"))))        ; point cloud have to be on the "Cloud" layer
(command "POINTCLOUDCROP" cloud 2dcor1 2dcor2 "inside")
(setq csd (- (cadr 2dcor2) (cadr 2dcor1)))
(princ)
)

(defun c:fs () ;forward step
(setq cloud (ssget "x" '((8 . "Cloud"))))
(command "POINTCLOUDCROP" cloud "r")
(setq 2dcor1 (list (car 2dcor1) (+ (cadr 2dcor1) csd)))
(setq 2dcor2 (list (car 2dcor2) (+ (cadr 2dcor2) csd)))
(command "POINTCLOUDCROP" cloud 2dcor1 2dcor2 "inside")
(princ)
)

(defun c:bs () ;backward step
(setq cloud (ssget "x" '((8 . "Cloud"))))
(command "POINTCLOUDCROP" cloud "r")
(setq 2dcor1 (list (car 2dcor1) (- (cadr 2dcor1) csd)))
(setq 2dcor2 (list (car 2dcor2) (- (cadr 2dcor2) csd)))
(command "POINTCLOUDCROP" cloud 2dcor1 2dcor2 "inside")
(princ)
)

(defun c:csd (/ a) ;change the slice step distance
(setq a (getreal "\nnew cloud slice value:"))
(setq csd a)
(princ)
)
(princ)
 
在这个lisp(正在进行的工作)的许多问题中,有一个是最后一次裁剪的可见删除,这可能会使检查扫描数据变得困难。关于如何解决这个问题或在哪里寻找可能的解决方案,有什么指导吗?ObjectARX似乎是一种选择,但从我的新手角度来看,这可能有点过头了。

Dadgad 发表于 2022-7-5 16:28:11

欢迎来到CADTutor HideQ。
 
如果你要在论坛上发布代码,你应该阅读这个链接。
http://www.cadtutor.net/forum/showthread.php?9184-代码发布指南

HideQ 发表于 2022-7-5 16:46:58

你好,爸爸,
 
谢谢你的链接。我有点内疚,尤其是因为我不能编辑这篇文章
 
我将来会使用这些指导原则。

SLW210 发表于 2022-7-5 16:56:49

为您修复。
 
#有时在某些浏览器中不起作用,只需手动操作即可
Your Code Here=
Your Code Here
页: [1]
查看完整版本: 有没有“暂停”视图的方法