fuccaro 发表于 2022-7-7 00:47:51

我记得在Bricscad中,矩形、三角形和其他闭合的规则多段线的中心有一个捕捉点。它就像是圆的中心。

SLW210 发表于 2022-7-7 00:52:12

 
如果你只是停留在这个线程中,我会更容易理解,如果你喜欢的话,我可以重新定位并重新定位线程。

David D 发表于 2022-7-7 00:56:23

谢谢你,那太好了。

BlackBox 发表于 2022-7-7 00:58:58

 
欢迎来到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))

 
干杯

alanjt 发表于 2022-7-7 01:01:25

去theswamp搜索Gile的额外osnaps计划。质心捕捉非常有用。
 

David D 发表于 2022-7-7 01:06:05

谢谢Renderman,虽然它看起来像我熟悉的Excel VBA,但到目前为止,我只听说过Lisp,甚至不知道这段代码是什么或如何编写。这就是为什么我在想一个按钮,或者这是在写一个按钮宏的那一行吗?

BlackBox 发表于 2022-7-7 01:07:17

 
令人惊叹的
 
http://2.bp.blogspot.com/_NM8rMM0lYgA/TRC0x8XYjsI/AAAAAAAAAB8/ESRVZ3D9icU/S220/Peter%2BGriffin.jpg
 
呵呵呵呵呵呵

alanjt 发表于 2022-7-7 01:11:49

http://www.cadtutor.net/forum/showthread.php?1390-如何在此存档中使用LISP例程

BlackBox 发表于 2022-7-7 01:14:28

 
*咳嗽*我会看看艾伦的建议*咳嗽*
 
要执行我从工具栏按钮宏发布的代码:
 
将我发布的代码保存到一个文件(“Text2Centroid.LSP”)到位于支持文件搜索路径中的位置。
 
示例宏(来自内存):
 

^C^C(if (not c:TPC) (load "Text2Centroid.lsp"));TPC;

David D 发表于 2022-7-7 01:18:33

alanjt,谢谢你。我能够加载lisp。
Renderman,我能够创建我想要的按钮,所以我真的不需要lisp。我试过口齿不清,但我想我需要一步一步的说明如何使它工作。我可以选择文字并查看多段线的捕捉点,但当我单击第一个点进行选择时,文字会立即转到那里,而没有机会选择第二个点。如果我想更多地了解lisp以及它们是如何工作的,那么了解它为什么不工作会很有帮助。你是否继续的选择。
 
非常感谢所有提供帮助的人。很棒的论坛!
页: 1 [2]
查看完整版本: 需要宏。。视中心