LISP或VL中的跳汰/重影
我绝对喜欢这些东西——它们看起来非常令人印象深刻,能够用它们创建自定义对象真是太棒了。[看看这个天才的展示]
但是,我的问题是:在LISP或者更确切地说是视觉LISP中是否可能?或者这些技术仅限于ObjectARX和/或之类的技术。网络?
我已经看到/创建了一些类似这种技术的“make-shift”示例,使用了grvecs、grread、grdraw等函数,但我不确定这些与实际交易相比有多好。。。
我已经看到了执行此功能的“acet ss drag move”和“acet ss drag rotate”功能,但是还有其他不依赖Express Tools的方法吗?还是我运气不好?
感谢您的关注和时间,但最重要的是:耐心。
干杯
李 我刚在谷歌上搜索了“跳汰”这个词,但发现了很多钓鱼网站。。这些术语到底意味着什么?
如果你查看SeanT发布的线程链接,就会发现该线程中有大量关于跳汰和重影的信息。
谢谢李;尽管我应该指出,抛物线本身并不是一个真正的自定义对象。该例程提供了一个自定义用户界面,允许创建半标准*样条曲线。目前,只有C++(ObjectARX)可以创建真正的“自定义对象”。
据推测,“被否决的对象”是AutoCAD 2010中的一个新功能,它允许。NET创建标准对象的附加特征和特性的能力。可能需要增加85%的功能,而真正的“自定义对象”的编程开销只有一半。
*我之所以说半标准是因为AutoCAD不允许直接创建二次样条曲线。它可以间接创建,如本文从第26页开始讨论的那样。
http://www.cadtutor.net/forum/showthread.php?t=17548
观察:
很明显,自从开始学习C语言以来,我在帖子中使用了过多的标点符号。 李,
这看起来像是grvecs。。。。看看这个例程来跟踪一个对象
http://www.theswamp.org/index.php?topic=24536.msg297267#msg297267
感谢您的澄清,看起来您正在创建自定义对象(并且您设法愚弄了我!),但我明白你在说什么巧合的是,我只是看了一下屏幕,看到了一个由“Daniel”在ARX中创建的自定义对象(可能是吧?),但我不知道他是怎么做到的。。。
(是的,确实有很多标点符号……)
这些都是很酷的罗恩,grvecs的功能是有趣的玩周围我必须承认。。。 我想这是一个重影的例子:
;; Ghosting Example, by Lee McDonnell
;; Args:
;; msg ~ prompt
;; oBj ~ object
;; hi~ rubber band
(defun lmac-obj-drag-move(msg oBj hi / oBj bsPt cOBj gr)
(vl-load-com)
(if msg
(prompt
(strcat
(if (not (vl-string-search "\n" msg))
"\n""") msg)))
(or (eq 'VLA-OBJECT (type oBj))
(setq oBj
(vlax-ename->vla-object oBj)))
(if
(vlax-property-available-p oBj 'InsertionPoint)
(progn
(if hi
(setq bsPt
(vlax-safearray->list
(vlax-variant-value
(vla-get-InsertionPoint oBj)))))
(vla-highlight
(setq cOBj
(vla-copy oBj)) :vlax-true)
(while
(not
(eq 3
(car
(setq gr (grread 't)))))
(redraw)
(if
(and
(eq 5 (car gr))
(listp (cadr gr)))
(progn
(vla-move oBj
(vla-get-InsertionPoint oBj)
(vlax-3D-point
(cadr gr)))
(if hi
(grdraw bsPt (cadr gr) 256 1)))))
(vl-catch-all-apply
'vla-delete
(list cOBj)))
nil)
(redraw))
;; Test Function
(defun c:test(/ ss pt)
(if (setq blk (car (entsel "\nSelect Object: ")))
(lmac-obj-drag-move nil blk t)))
我有机会尝试一下。从参考的2d几何到透视图中的3d几何,完美地工作。
谢谢我扩展了在沼泽发布的方法,以便更好地模拟ACAD中的“移动”命令。
目前,它只适用于具有InsertionPoint属性的对象,但我正在寻找将其扩展到所有对象的方法,可能还有选择集。
李 好的,这应该适用于选择集。我意识到,“acet-ss-drag-move”功能已经做到了这一点,但它只适用于安装Express Tools的地方。这应该在所有情况下都有效。
[现在包括相对基点…]
页:
[1]
2