明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 885|回复: 6

这个面积标注启动命令时怎么修改让他默认执行第一次输入的字体的高度不然每次...

[复制链接]
发表于 2024-5-30 17:11:45 | 显示全部楼层 |阅读模式
本帖最后由 超人黄 于 2024-5-30 17:17 编辑

这个面积标注启动命令时怎么修改让他默认执行第一次输入的字体的高度不然每次都要从新输入因为使用的频率较高望大佬帮帮忙指导一下不胜感激。
(defun c:Q (/ en i mj mjz obj pt ss sshat th)
        (vl-load-com)
        (setq th (getdist "\n输入字高:") ss (ssget '((0 . "CIRCLE,LWPOLYLINE")))  i -1 mjz 0 sshat (ssadd))
        (command "copy" ss "" "non" '(0 0) "non" '(0 0))
        (while (setq en (ssname ss (setq i (1+ i))))
                (setq obj (vlax-ename->vla-object en))
                (setq mj (vla-get-area obj))
                (setq mjz (+ mj mjz))
                (command "region"  en "")
                (setq pt (vlax-safearray->list (vlax-variant-value (vla-get-centroid (vlax-ename->vla-object (entlast)))))  sshat (ssadd (entlast) sshat))
                (entmake (list '(0 . "TEXT") (cons 1 (strcat "S=" (rtos (/ mj 1000000) 2 2) "m2")) (cons 10 pt) (cons 11 pt)  (cons 40 th)  (cons 62 20) (cons 72 1) (cons 73 2)))
        )
        (entmake (list '(0 . "TEXT") (cons 1 (strcat "总面积=" (rtos (/ mjz 1000000) 2 2) "m2")) (cons 10 (getpoint"\n选取总面积插入点:")) (cons 40 th) (cons 62 20)))
        (command "ERASE" sshat "")
        (princ)
)


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2024-5-30 17:40:50 | 显示全部楼层
  1. (defun c:Q (/ en i mj mjz obj pt ss sshat )
  2.   (vl-load-com)
  3.   (if (null $th)
  4.    (setq $th (getdist "\n输入字高:"))
  5.    )
  6.   (setq            
  7.         ss    (ssget '((0 . "CIRCLE,LWPOLYLINE")))
  8.         i     -1
  9.         mjz   0
  10.         sshat (ssadd)
  11.   )
  12.   (command "copy" ss "" "non" '(0 0) "non" '(0 0))
  13.   (while (setq en (ssname ss (setq i (1+ i))))
  14.     (setq obj (vlax-ename->vla-object en))
  15.     (setq mj (vla-get-area obj))
  16.     (setq mjz (+ mj mjz))
  17.     (command "region" en "")
  18.     (setq pt        (vlax-safearray->list
  19.                   (vlax-variant-value
  20.                     (vla-get-centroid (vlax-ename->vla-object (entlast)))
  21.                   )
  22.                 )
  23.           sshat        (ssadd (entlast) sshat)
  24.     )
  25.     (entmake
  26.       (list '(0 . "TEXT")
  27.             (cons 1 (strcat "S=" (rtos (/ mj 1000000) 2 2) "m2"))
  28.             (cons 10 pt)
  29.             (cons 11 pt)
  30.             (cons 40 $th)
  31.             (cons 62 20)
  32.             (cons 72 1)
  33.             (cons 73 2)
  34.       )
  35.     )
  36.   )
  37.   (entmake
  38.     (list '(0 . "TEXT")
  39.           (cons 1 (strcat "总面积=" (rtos (/ mjz 1000000) 2 2) "m2"))
  40.           (cons 10 (getpoint "\n选取总面积插入点:"))
  41.           (cons 40 $th)
  42.           (cons 62 20)
  43.     )
  44.   )
  45.   (command "ERASE" sshat "")
  46.   (princ)
  47. )
 楼主| 发表于 2024-5-30 18:14:26 | 显示全部楼层

感谢大佬的帮忙不胜感激,要是能像这样(setq ss (strcat "n输入字体的高度<" (rtos ffsize 2 1) ">:"))
(setq ffsize1 (getreal ss))
  (if  ffsize1
    (setq ffsize ffsize1)
    ) 选择方式就好了,因为在不同的区域图纸中需要在修改字体大小望大佬在百忙中抽空在帮忙看下。
发表于 2024-5-31 11:35:22 | 显示全部楼层
  1. 好像是院长的代码,反正来自论坛
  2. ;;;---------------------- UREAL ----------------------------
  3. ;;;                  实型数输入格式化                       
  4. ;;;方式 : (setq no1 (ureal 1 "" "\n\t实数" no1))            
  5. (defun ureal (bit kwd msg def / inp)
  6.   (if def
  7.     (setq msg (strcat "\n" msg "<" (rtos def 2) ">: ")
  8.           bit (* 2 (fix (/ bit 2)))
  9.     )
  10.     (setq msg (strcat "\n" msg ": "))
  11.   )
  12.   (initget bit kwd)
  13.   (setq inp (getreal msg))
  14.   (if inp inp def)
  15. )
发表于 2024-5-31 11:38:30 | 显示全部楼层
  1. ;;---------------------- UREAL ----------------------------
  2. ;;;                  实型数输入格式化                       
  3. ;;;方式 : (setq no1 (ureal 1 "" "\n\t实数" no1))            
  4. (defun ureal (bit kwd msg def / inp)
  5.   (if def
  6.     (setq msg (strcat "\n" msg "<" (rtos def 2) ">: ")
  7.           bit (* 2 (fix (/ bit 2)))
  8.     )
  9.     (setq msg (strcat "\n" msg ": "))
  10.   )
  11.   (initget bit kwd)
  12.   (setq inp (getreal msg))
  13.   (if inp inp def)
  14. )


  15. (defun c:Q (/ en i mj mjz obj pt ss sshat )
  16.   (vl-load-com)
  17. (setq $th (ureal 1 "" "\n\输入字高:" $th))
  18.   (setq            
  19.         ss    (ssget '((0 . "CIRCLE,LWPOLYLINE")))
  20.         i     -1
  21.         mjz   0
  22.         sshat (ssadd)
  23.   )
  24.   (command "copy" ss "" "non" '(0 0) "non" '(0 0))
  25.   (while (setq en (ssname ss (setq i (1+ i))))
  26.     (setq obj (vlax-ename->vla-object en))
  27.     (setq mj (vla-get-area obj))
  28.     (setq mjz (+ mj mjz))
  29.     (command "region" en "")
  30.     (setq pt        (vlax-safearray->list
  31.                   (vlax-variant-value
  32.                     (vla-get-centroid (vlax-ename->vla-object (entlast)))
  33.                   )
  34.                 )
  35.           sshat        (ssadd (entlast) sshat)
  36.     )
  37.     (entmake
  38.       (list '(0 . "TEXT")
  39.             (cons 1 (strcat "S=" (rtos (/ mj 1000000) 2 2) "m2"))
  40.             (cons 10 pt)
  41.             (cons 11 pt)
  42.             (cons 40 $th)
  43.             (cons 62 20)
  44.             (cons 72 1)
  45.             (cons 73 2)
  46.       )
  47.     )
  48.   )
  49.   (entmake
  50.     (list '(0 . "TEXT")
  51.           (cons 1 (strcat "总面积=" (rtos (/ mjz 1000000) 2 2) "m2"))
  52.           (cons 10 (getpoint "\n选取总面积插入点:"))
  53.           (cons 40 $th)
  54.           (cons 62 20)
  55.     )
  56.   )
  57.   (command "ERASE" sshat "")
  58.   (princ)
  59. )
 楼主| 发表于 2024-5-31 14:31:11 | 显示全部楼层

感谢大佬可以选择了非常感谢,要是字体样式能改就好了不知道怎么改望大佬指导一下,默认字体的样式Standard,要是能改成黑体或者宋体就好了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 05:33 , Processed in 0.166553 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表