⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dimex.lsp

📁 Autocad-2005-简体中文-解密版.zip
💻 LSP
📖 第 1 页 / 共 3 页
字号:
        (setq 	  width	      (vla-get-radius vla-circle)
	  delta	      (list 0 width 0)
	  lead-pnt1   center
	  lead-pnt2   (mapcar '+ center delta)
	  delta	      (list width width 0)
	  lead-pnt3   (mapcar '+ lead-pnt2 delta)
	  ins-pnt     lead-pnt3
	  text	      (RTOS width)
	  height      (/ width 3)
	  width	      (/ width 4)
	  Coordinates (append lead-pnt1 lead-pnt2 lead-pnt3)
      ))
  )
)

;;;--------------------------------------------------------------------;
;;;       Function:  SET-CIRCLE-PARAMS-FOR-MDIM                        ;
;;;                                                                    ;
;;;    Description:  This function returns the radius of the circle    ;
;;;                  based on the value of vla-mtext-object.           ;
;;;                                                                    ;
;;;      Arguments:                                                    ;
;;;       vla-mtext = a valid vla mtext object.                        ;
;;;                                                                    ;
;;; Returned Value:  A real number.                                    ;
;;;                                                                    ;
;;;          Usage:                                                    ;
;;;              (set-circle-params-for-mdim                           ;
;;;                 vla-mtext-object                                   ;
;;;               )                                                    ;
;;;--------------------------------------------------------------------;
(defun set-circle-params-for-mdim (vla-mtext)
  (if (and (= (type vla-mtext) 'VLA-OBJECT)
	   (vlax-read-enabled-p vla-mtext)
      )
    (setq rad (ATOF (vla-get-TextString vla-mtext)))
  )
)

;;;--------------------------------------------------------------------;
;;;       Function:  UPDATE-PARAMETER-MDIM                             ;
;;;                                                                    ;
;;;    Description:  This function is responsible for updating a       ;
;;;                  vla-object's parameter.                           ;
;;;                                                                    ;
;;;      Arguments:                                                    ;
;;;         vla-obj = a valid vla object.                              ;
;;;        par-name = a parameter name.                                ;
;;;       par-value = a new parameter value                            ;
;;;                                                                    ;
;;; Returned Value:  A vla object.                                     ;
;;;                                                                    ;
;;;          Usage:                                                    ;
;;;              (update-parameter-mdim                                ;
;;;                 vla-obj  par-name par-value                        ;
;;;               )                                                    ;
;;;--------------------------------------------------------------------;
(defun update-parameter-mdim (vla-obj par-name par-value)
  (if (and (= (type vla-obj) 'VLA-OBJECT)
	   (vlax-write-enabled-p vla-obj)
	   (not (equal (vlax-get vla-obj par-name) par-value))
      )
    (vlax-put vla-obj par-name par-value)
  )
)

;;;--------------------------------------------------------------------;
;;;       Function:  LAST-THREE                                        ;
;;;                                                                    ;
;;;    Description:  This function reverses a list an retreives the    ;
;;;                  nth 2, nth 1 and nth 0.                           ;
;;;                                                                    ;
;;;      Arguments:                                                    ;
;;;             lst = a list of elements.                              ;
;;;                                                                    ;
;;; Returned Value:  A list of three elements.                         ;
;;;                                                                    ;
;;;          Usage:                                                    ;
;;;              (last-three                                           ;
;;;                 list-of-things                                     ;
;;;               )                                                    ;
;;;--------------------------------------------------------------------;
(defun last-three (lst / rev-lst varlst)
(setq varlst nil)
(if (eq (type lst) 'VARIANT)
   (if (> (vlax-variant-type lst) 8192)
     (progn
      (setq lst (vlax-safearray->list (vlax-variant-value lst)))
      (setq varlst T)
     )
    )
 )
  (setq rev-lst (reverse lst))
  (setq lst (list	(nth 2 rev-lst)
	(nth 1 rev-lst)
	(nth 0 rev-lst)
  ))
;; Maybe Not !! (if varlst (vlax-3d-point lst))
)

;;;--------------------------------------------------------------------;
;;;       Function:  UPDATE-MTEXT-FOR-LEADER                           ;
;;;                                                                    ;
;;;    Description:  This function updates an mtext object to place    ;
;;;                  as a value to th eleader object.                  ;
;;;                                                                    ;
;;;                  Required Functions:                               ;
;;;                       set-dim-params-for-circle                    ;
;;;                       update-parameter-mdim                        ;
;;;                       last-three                                   ;
;;;                       update-parameter-mdim                        ;
;;;                                                                    ;
;;;      Arguments:                                                    ;
;;;         vla-lst = a list of vla objects. Whose first element is a  ;
;;;                   vla mtext object and the second is a vla circle  ;
;;;                   object.                                          ;
;;;      vla-leader = a valid vla leader object.                       ;
;;;                                                                    ;
;;; Returned Value:  An updated mtext object.                          ;
;;;                                                                    ;
;;;          Usage:                                                    ;
;;;              (update-mtext-for-leader                              ;
;;;                 vla-lst  vla-leader                                ;
;;;               )                                                    ;
;;;--------------------------------------------------------------------;
(defun update-mtext-for-leader
			       (vla-lst	    vla-leader	/
				ins-pnt	    width	height
				text	    Coordinates	center
				vla-mtext   vla-circle
			       )
  (setq	vla-mtext  (car vla-lst)
	vla-circle (cadr vla-lst)
  )
  (if (set-dim-params-for-circle vla-circle)
    (progn
      (if (vlax-read-enabled-p vla-leader)
	(update-parameter-mdim
	  vla-mtext
	  "InsertionPoint"
	  (mapcar '+
		  (last-three (vla-get-Coordinates vla-leader))
		  (list 0 height 0)
	  )
	)
      )
      (update-parameter-mdim vla-mtext "width" width)
      (update-parameter-mdim vla-mtext "height" height)
      (update-parameter-mdim vla-mtext "TextString" text)
    )
  )
)

;;;--------------------------------------------------------------------;
;;;       Function:  UPDATE-LEADER-FOR-CIRCLE                          ;
;;;                                                                    ;
;;;    Description:  This function updates the "coordinate" property   ;
;;;                  for the leader object.                            ;
;;;                                                                    ;
;;;      Arguments:                                                    ;
;;;      vla-leader = a valid vla leader object.                       ;
;;;      vla-circle = a valid vla circle object.                       ;
;;;                                                                    ;
;;; Returned Value:  An updated leader object.                         ;
;;;                                                                    ;
;;;          Usage:                                                    ;
;;;              (update-leader-for-circle                             ;
;;;                   vla-leader  vla-circle                           ;
;;;               )                                                    ;
;;;--------------------------------------------------------------------;
(defun update-leader-for-circle
				(vla-leader  vla-circle	 /
				 ins-pnt     width	 height
				 text	     Coordinates center
				)
  (if (set-dim-params-for-circle vla-circle)
    (update-parameter-mdim vla-leader "Coordinates" Coordinates)
  )
)

;;;--------------------------------------------------------------------;
;;;       Function:  UPDATE-CIRCLE-FOR-RDIM                            ;
;;;                                                                    ;
;;;    Description:  This function updates the "radius" property       ;
;;;                  for a circle.                                     ;
;;;                                                                    ;
;;;                  Required Functions:                               ;
;;;                        set-circle-params-for-mdim                  ;
;;;                        update-parameter-mdim                       ;
;;;                                                                    ;
;;;                                                                    ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -