编写自己的vlx
你好首先让我承认,我不是一个专业人士,但在其他编程语言,我擅长这是我的学习曲线。我开始做一个项目,学到了我需要的东西。我也在用lisp做这个,当然我不全是noob,但还不熟悉。
我有一些基本的问题。有两种类型的数据,一种是贯穿整个项目的通用数据,另一种是必须固定在实体上的数据。有一些直接使用的函数和一些实用程序函数。如果这是在类似c++的东西中,那么名称空间将非常有用。由于有多个文件,有没有一种方法可以不将实用功能命令版本与c:?
为了对用户隐藏数据以防止干扰标准过程,我想最好的选择是为程序中指定的实体扩展数据和全局变量字典,对吗?对于扩展数据,您应该只将所有相同的变量类型分配给确定的编号代码,这使得管理变得困难。字典本身很难管理。还有其他添加数据的方法吗?(制作块属性对于程序结构来说不是一个好主意) 标题和帖子之间有点混淆。VLX是一个编译的lisp集合文件。可以将其编译为具有自己的命名空间,然后可以设置在VLX内的哪些defuns在其自己的命名空间外可见:vl doc export。
然而,你的帖子指的是实体中存储的数据。只有两种方法(扩展数据/扩展字典)。在这里和其他论坛上都有一些有用的例程,可以更容易地操作这些例程。或者你可以简单地使用vlax ldata-*函数,它们实际上使用字典来存储数据。这些字典可以附着到图形本身(作为命名对象dict)或附着到该图形内的任何其他对象。 我将以vlx的身份完成我的工作,并将其交给其他人,这就是主题的原因,但你是对的,最好将其分为不同的主题。
但是,让我问一下我在本主题中遇到的主要问题:如果我有多个文件,并且希望将所有实用程序函数保存在一个文件中,以便在其他文件中使用,我应该怎么做?将它们全部添加到一个项目中就足够了吗?
谢谢你提供的数据,我想vlax ldata对我来说是最好的 如果这些实用程序函数只在VLX项目中使用,那么只需将它们添加进去就可以了。如果您需要在其他项目中使用它们,那么可以将它们添加到类似于那些VLX的项目中,或者将它们编译到没有命名空间的VLX中。
在VLisp中,VLX可以有一个命名空间,但只有一个。如果是这样,那么它内部的所有内容都在该命名空间中。如果您希望在名称空间之外(即在文档的名称空间中)可以看到某些内容,那么可以在这样的名称空间上使用vl doc export。如果VLX没有设置为名称空间,那么就好像您在vl-doc-export'ed内部的每个defun一样。 谢谢,到目前为止,我只使用lisp文件,为了在另一个文件中使用一个函数,我必须使其可以即时访问。谢谢
我还有一个问题:如果要将dwg文件附着到项目中,您会怎么做?我需要它作为块插入到图纸中
您仍然可以从其他LISP文件中访问函数,而无需使用“命令”(即前缀为“c:”的函数),只需确保在尝试调用函数之前,将包含库函数的LISP文件加载到文档命名空间中即可。
页:
[1]