- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
选择一个点时,就有一种方法可以过滤OSNAP,只能捕捉特定实体类型,而不是其他类型的实体。例如
仅对齐线。
setq startpt (*SNAP FILTER CODE* "LINE" (getpoint "\nChoose Start Line : "))
仅捕捉到圆弧。
setq startpt (*SNAP FILTER CODE* "ARC" (getpoint "\nChoose Start Arc: "))
仅吸附到折线。
setq startpt (*SNAP FILTER CODE* "POLYLINE" (getpoint "\nChoose Start Polyline: "))
我希望上面的假口齿不清有助于理解我想问的问题。
提前致谢。
最佳答案
AutoLISP osnap
函数可用于使用提供的对象捕捉修改器返回捕捉到几何体的点,但是,此函数不会过滤候选几何体。
因此,您可以选择提供 getpoint
返回的点作为筛选的 ssget
选择的点参数,或者测试 nentselp< 返回的实体
函数。
这是一个使用 ssget
的可能解决方案:
(defun c:test1 ( / pnt )
(while
(and
(setq pnt (getpoint "\nSelect start point on arc: "))
(not (ssget pnt '((0 . "ARC"))))
)
(princ "\nThe point does not lie on an arc.")
)
(if pnt
(princ (strcat "\nThe user picked (" (apply 'strcat (mapcar 'rtos pnt)) ")."))
(princ "\nThe user did not supply a point.")
)
(princ)
)
这是一个使用 nentselp
的可能解决方案:
(defun c:test2 ( / ent pnt )
(while
(and (setq pnt (getpoint "\nSelect start point on arc: "))
(not
(and
(setq ent (car (nentselp pnt)))
(= "ARC" (cdr (assoc 0 (entget ent))))
)
)
)
(princ "\nThe point does not lie on an arc.")
)
(if pnt
(princ (strcat "\nThe user picked (" (apply 'strcat (mapcar 'rtos pnt)) ")."))
(princ "\nThe user did not supply a point.")
)
(princ)
)
关于lisp - 选择特定实体类型 AutoLisp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46776845/
您可以在 AutoCAD 知识网站上阅读此内容: "注意:您可以定义多个具有相同名称的用户函数,但每个定义接受不同数量或类型的参数。" 有人用过这个功能吗?我试过了,但根本不起作用。我只能调用最新定义
;;----------------=={ Add Objects to Block }==----------------;; ;;
我一直在寻找一种有效的方法来删除点列表中的连续重复项。 我最初的想法是遍历列表的元素,与第 (n-1) 个元素进行比较,如果相等则将其删除。但是,删除列表中的元素并使用另一个函数会使其效率低下并非易事
选择一个点时,就有一种方法可以过滤OSNAP,只能捕捉特定实体类型,而不是其他类型的实体。例如 仅对齐线。 setq startpt (*SNAP FILTER CODE* "LINE" (getpo
在指定条件下,我想打印此函数中的函数名称。但我不知道如何得到它。在 C++ 中,我可以使用预处理器宏 __FUNCTION__。我在 AutoLISP 中有类似的东西吗? 最佳答案 这绝对是可能的。我
我想从存储在绘图表或表对象中的信息的比较中提取某些信息,如您更喜欢这样调用它,如果比较成功,则将相关值存储到变量中。我是 Visual lisp 或 Auto Lisp 的新手。所以请你帮我解决这个问
下面我粘贴了我的 drawmycoil.lsp 文件中的代码。 (defun drwcoil () (setq helices_center '(0 0)) ; this is the cente
我无法访问存储在列表 STPT1 和 ENDPT1 中的信息,它们是 x(0),y (1) 和 z(2) 坐标。 例如,在得到一个点后:(45.4529 21.6384 0.0) 当我使用 Visua
第一次提问,所以希望我能很好地描述这个问题。 我们公司有一个 Autolisp 代码,几个人使用相同版本的 AutoCAD,但对于某些用户,lisp 已停止正常运行。 lisp的功能如下: 用户运行
我想对多个 CAD 文件(例如文件夹中的所有文件)运行 autoLISP。基本上,打开文件 (DWG),运行 LISP(包括保存文件)并关闭。我是 LISP 的新手,但对 Python 不太陌生。 是
(defun gml2dwg (odabir) ;; RANDOM CODE ;; ;; This is the part where I should open a filepath
我正在尝试构建一个非常基本的 AutoLisp 界面。我在这方面完全是个初学者,所以在从头开始编写代码失败后,我转向正确地学习 DCL。我遵循了本教程: http://www.afralisp.net
我正在尝试插入具有自定义属性的 block 。如何设置这些变量? 落叶树 block 中有一个名为“可见性”的自定义属性,具有各种不同的样式(可见性 1、可见性 2、可见性 3 等)。 例如,我将如何
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 8 年前。
我已经在 autolisp 中创建了我的整个应用程序,好吧,是时候编译和保护我的代码了......,在 autolisp 中,要使用 DCL,你只需要加载它们,使用: (setq sample (lo
我正在为 IntelliCAD 联盟的成员开发一个基于 LISP 的架构包。根据我在网站上找到的建议,我使用 Kelvinator 对一些代码进行格式化和伪装。现在我正在尝试使用 Protect.ex
我们为使用 AutoCAD 的客户构建了一个网络服务。他们有一个在 AutoCAD 中运行的宏,用于构建 SOAP 请求。但是他们还没有想出如何实际发送() SOAP 请求给我们。 所以 XML 已经
不确定是否有人可以提供帮助。我正在使用一种名为 AutoLISP 的语言进行编程......基于 LISP,但有一些额外功能。它在名为 AutoCAD 的程序中使用。 无论如何,我有一些代码可以从网络
我正在做一个 AutoLisp 项目,它使用长关联结构来进行繁重的几何处理 - 所以我很好奇关联列表密集使用计时结果。实现有多简单/复杂?它使用某种数据结构或普通的点对列表?b-tree 或其他东西有
我想知道任何人都可以解释 autolisp/visual lisp 的以下功能背后的设计原理吗?在我看来,它们似乎与公认的软件实践背道而驰……我是不是漏掉了什么? 默认情况下所有变量都是全局变量(即除
我是一名优秀的程序员,十分优秀!