如果你只是停留在这个线程中,我会更容易理解,如果你喜欢的话,我可以重新定位并重新定位线程。 谢谢你,那太好了。
欢迎来到CADTutor,新手!
这是一个口齿不清的免费软件:
(defun c:TPC () (c:Text2PlineCentroid))
(defun c:Text2PlineCentroid (/ *error* ssText flag eName oText ssPline oPline centroid oName)
(princ "TEXT 2 POLYLINE CENTROID ")
(vl-load-com)
(defun *error*(msg)
(and flag (not (redraw eName 4)))
(cond ((not msg)) ; Normal exit
((member msg '("Function cancelled" "quit / exit abort"))) ; <esc> or (quit)
((princ (strcat "\n** Error: " msg " ** ")))) ; Fatal error, display it
(princ))
(if (and (setq ssText (ssget ":S:E" '((0 . "MTEXT,TEXT"))))
(and (setq flag T)
(not (redraw (setq eName (ssname ssText 0)) 3)))
(setq oText (vlax-ename->vla-object eName))
(setq ssPline (ssget ":S:E" '((0 . "*POLYLINE"))))
(setq oPline (vlax-ename->vla-object (ssname ssPline 0))))
(progn
(vla-getboundingbox oPline 'mn 'mx)
(setq centroid
(vlax-3d-point
(mapcar '*
(mapcar '+
(vlax-safearray->list mn)
(vlax-safearray->list mx))
'(0.5 0.5 0.5))))
(vla-move
oText
(cond
((= "AcDbMText" (setq oName (vla-get-objectname oText)))
(vla-get-insertionpoint oText))
((= "AcDbText" oName)
(vla-get-textalignmentpoint oText)))
centroid))
(cond
(ssText (prompt "\n** Nothing selected ** "))
((prompt "\n** Nothing selected, or text layer is locked ** "))))
(princ))
干杯 去theswamp搜索Gile的额外osnaps计划。质心捕捉非常有用。
谢谢Renderman,虽然它看起来像我熟悉的Excel VBA,但到目前为止,我只听说过Lisp,甚至不知道这段代码是什么或如何编写。这就是为什么我在想一个按钮,或者这是在写一个按钮宏的那一行吗?
令人惊叹的
http://2.bp.blogspot.com/_NM8rMM0lYgA/TRC0x8XYjsI/AAAAAAAAAB8/ESRVZ3D9icU/S220/Peter%2BGriffin.jpg
呵呵呵呵呵呵 http://www.cadtutor.net/forum/showthread.php?1390-如何在此存档中使用LISP例程
*咳嗽*我会看看艾伦的建议*咳嗽*
要执行我从工具栏按钮宏发布的代码:
将我发布的代码保存到一个文件(“Text2Centroid.LSP”)到位于支持文件搜索路径中的位置。
示例宏(来自内存):
^C^C(if (not c:TPC) (load "Text2Centroid.lsp"));TPC;
alanjt,谢谢你。我能够加载lisp。
Renderman,我能够创建我想要的按钮,所以我真的不需要lisp。我试过口齿不清,但我想我需要一步一步的说明如何使它工作。我可以选择文字并查看多段线的捕捉点,但当我单击第一个点进行选择时,文字会立即转到那里,而没有机会选择第二个点。如果我想更多地了解lisp以及它们是如何工作的,那么了解它为什么不工作会很有帮助。你是否继续的选择。
非常感谢所有提供帮助的人。很棒的论坛!
页:
1
[2]