JamCAD 发表于 2022-7-5 23:30:38

以编程方式创建viewpo

我正在开发一个lisp例程,该例程需要在图纸空间中创建一个具有方向的视口。如果我手动操作,我通常会创建视口,然后从视口内部将“UCSFLOW”设置为1,然后更改ucs,这会将视口捕捉到正确的方向。如果您觉得我的解释令人困惑,请查看快照
 
显示视口轮廓的模型空间:

 
显示实际视口的图纸空间:

 
我花了很长时间试图解决如何使用lisp创建具有方向的视口,但有点卡住了。使用vl/vlax似乎有几个选项,但这些选项似乎只指定高度、宽度、中心等,而不是实际的方向。作为一种学习经验,我希望自己完成大部分编程工作,但如果有任何指向正确方向的指示,我将不胜感激。

Lee Mac 发表于 2022-7-5 23:46:16

下面是一个快速入门的示例:
 
(defun c:test ( / sel )
   (if (setq sel (ssget "_+.:E:S:L" '((0 . "VIEWPORT"))))
       (vla-put-twistangle
         (vlax-ename->vla-object (ssname sel 0))
         (/ pi 3.0) ;; Angle in radians
       )
   )
   (princ)
)
(vl-load-com) (princ)

JamCAD 发表于 2022-7-5 23:56:07

谢谢李,
 
之前,我一直在研究dxf代码,试图找出使用哪一种。不知怎的,51号逃过了我的注意
我将尝试使用您的方法和entmod来编写这段代码,看看我是怎么做的

Lee Mac 发表于 2022-7-6 00:07:02

 
仅供参考,您不能对视口进行entmod

JamCAD 发表于 2022-7-6 00:17:02

哈哈,谢谢李,这解释了我为什么会有麻烦
我试图避免使用vlax/vla编码,因为我似乎很难理解如何使用它。然而,这条线索似乎很有帮助http://www.cadtutor.net/forum/showthread.php?81195

ksperopoulos 发表于 2022-7-6 00:20:53

你知道你可以从纸上旋转视口来得到你想要的结果吗?不需要lisp,除非你只是想这么做。

Lee Mac 发表于 2022-7-6 00:35:29

 
不客气-我很高兴我在ActiveX上的教程帖子很清楚!
页: [1]
查看完整版本: 以编程方式创建viewpo