明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1266|回复: 7

求助:如何在模型空间插入计算结果文本

[复制链接]
发表于 2013-1-16 17:12:06 | 显示全部楼层 |阅读模式
下面是小弟编写的小程序,如何将最后的结果通过插入点定位在模型空间中输出?不知哪里出了问题,请大虾指点。先谢谢了。
(defun c:ss ()  
(graphscr)
(VL-LOAD-COM)
(setq oce (getvar "CMDECHO"))  ;保存默认CMDECHO值
(setvar "CMDECHO" 0)   ;关闭命令响应
(princ "\n请选择文本")
(setq dtxt (ssget '((0 . "TEXT")))) ;选中文本图元
(setq i 0)    ;定义变量i,初值0
(setq txt_tt 0)    ;定义变量txt_tt,初值0
(repeat (sslength dtxt)     ;返回选择集的图元数作为循环次数,进入循环!
           (setq x (entget (ssname dtxt i)))   ;读取某个文本数据表
           (setq n (vl-string-search "M" (cdr (assoc 1 x)))) ;搜索文本中的字母M,并返回M所在位置编号,0起步
           (setq dt(atof(substr(cdr (assoc 1 x)) 3 n)))  ;将N=*中的*转换成数值
;  (princ "\n")     ;换行
;  (princ dt)     ;打印N值
  (setq txt_tt (+ txt_tt dt))   ;累加N值
  (setq i (1+ i))     ;结束一个循环,指针数加1
)
(setq Nmax txt_tt)   ;轴力合力赋值给Nmax
(setq txt_tt (rtos txt_tt 2 2))
(princ (strcat "\Nmax sum = " txt_tt)) ;实数转换为字符串
        (setq Nf (getint "\n请输入特征值:"))
(setq txt_np (/ Nmax Nf))  ;计算所需桩数
(setq txt_np (rtos txt_np 2 2))  ;实数转换为字符串
       (setq text1 (strcat txt_tt txt_np ))    ;输出字符串
       (setq insertpt (getpoint "\n请输入文字插入点: ")) ;返回用户插入点坐标值
  (setq height (getint "\n请输入文字高度:"))  ;返回用户输入文字高度值
    (setq insertp1 (vlax-3D-point insertpt)
       textobj1 (vla-addtext modelspace text1 insertp1 height)
)
(setvar "CMDECHO" oce)
)
发表于 2013-1-16 17:40:14 | 显示全部楼层

RE: 求助:如何在模型空间插入计算结果文本

粗看了一下,模型空间未定义。
 楼主| 发表于 2013-1-16 20:39:56 | 显示全部楼层
本帖最后由 一叶舟 于 2013-1-16 20:47 编辑

        (setq   AcadObject   (vlax-get-acad-object)
                  AcadDocument (vla-get-ActiveDocument Acadobject)
                  mSpace       (vla-get-ModelSpace Acaddocument)
        )
多谢zdqwy19 指点。加了上面几行代码,似乎可以了。
上面的代码是VLisp么,Lisp函数里找不到。

发表于 2013-1-18 14:37:14 | 显示全部楼层
太深奥了。
发表于 2013-1-18 14:44:37 | 显示全部楼层

RE: 求助:如何在模型空间插入计算结果文本

一叶舟 发表于 2013-1-16 20:39
(setq   AcadObject   (vlax-get-acad-object)
                  AcadDocument (vla-get-ActiveD ...

是的,看一下Cad2013的帮助文件,里面有Lisp代码示例,低版本只有VBA示例。
发表于 2013-1-18 15:26:04 | 显示全部楼层
编程怎么能入门。。。求指教
 楼主| 发表于 2013-1-22 18:32:06 | 显示全部楼层
找一本入门的书。若是学过其他语言,就容易学了。
 楼主| 发表于 2013-1-22 18:42:40 | 显示全部楼层
顺便问一下zdqwy19大虾,Express里overkill命令可以删除重叠的线段,留一条,能否将重叠的直线全部删除,不留一条线。或者说如何选择重叠的直线段,完全重叠的。 谢谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-24 14:55 , Processed in 0.159117 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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