Commandobill 发表于 2022-7-6 17:14:06

布局方向

你好在我的公司,我们创建了一个autolisp程序,以某种方式打印多个布局。我们唯一没有做的事情是找出如何让程序识别布局是纵向还是横向。我想知道是否有人编写了一个程序来接收这些信息。

CmdrDuh 发表于 2022-7-6 17:35:20

您可以使用最小值/最大值来计算它。(计算LL到UR,然后比较deltaX和deltaY,两者更大,使用正确的纸张旋转)我不太使用LISP,但是如果你发布你拥有的,我相信有人可以添加到你拥有的

Commandobill 发表于 2022-7-6 17:57:26

我想接下来的问题是如何得到ll和ur的点?从这里开始,Lisp程序将非常简单

borgunit 发表于 2022-7-6 18:16:40

以下是我的一些基本代码模块。可能会有帮助。。
确保在代码中添加(vl load com)。
 

;------------------------------------------------------------------------------
;pp_GetCurrPlotRotation:   
;------------------------------------------------------------------------------
(defun pp_GetCurrPlotRotation()
(vla-get-plotrotation (pp_GetActiveLayout))
)
;------------------------------------------------------------------------------
;pp_GetActiveLayout:    Returns active layout object
;------------------------------------------------------------------------------
(defun pp_GetActiveLayout ()
(vla-get-ActiveLayout (pp_GetActiveDocument))
)
;------------------------------------------------------------------------------
;pp_GetActiveDocument:    Returns active AutoCAD drawing document object
;------------------------------------------------------------------------------
(setq *active-document* nil); Initialize global variable
(defun pp_GetActiveDocument ()
(cond (*active-document*)   ; Return the cached object
   (T
   (setq *active-document* (vla-Get-ActiveDocument (pp_GetAcadObject)))
   )
)
)
;------------------------------------------------------------------------------
;pp_GetAcadObject:    Returns active AutoCAD object
;------------------------------------------------------------------------------
(setq *acad-object* nil)      ; Initialize global variable
(defun pp_GetAcadObject ()
(cond (*acad-object*)       ; Return the cached object
   (T
   (setq *acad-object* (vlax-Get-Acad-Object))
   )
)
)
页: [1]
查看完整版本: 布局方向