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