明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 10496|回复: 42

谁能找一个(或写一个)仿天正GBBL命令滴代码谢谢

  [复制链接]
发表于 2012-5-11 22:15:11 | 显示全部楼层 |阅读模式
1明经币
如下图:
只针对标注值..及相关文本有效就好哈...谢谢...





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

最佳答案

查看完整内容

试试这个吧 分开命令的
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2012-5-11 22:15:12 | 显示全部楼层
CTC 发表于 2012-5-12 11:23
我刚开始操作时,标注的全局比例是9倍的...出图比例放大再缩小等后,文字好像回不到我原来操作的样子了 ...

试试这个吧 分开命令的

本帖子中包含更多资源

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

x

点评

这个尺寸标注行了哈..谢谢..不管比例换来换去只要输入1:100就还原成原来大小...字不行切换多次后输入1:100不能变成原来大小哈..不过非常感谢了..谢谢  发表于 2012-5-13 13:52
回复

使用道具 举报

 楼主| 发表于 2012-5-11 22:44:15 | 显示全部楼层
找到半个差不多的..要修改



(defun c:tt ()
  (vl-load-com)
  (setq en (car (entsel "\n选择一个尺寸标注:")))
  (setq obj (vlax-Ename->Vla-Object en))
  (setq old (vla-get-scalefactor obj))
  (if (setq new        (getreal (strcat "\n当前尺寸标注的比例系数为:<"
                                 (rtos old)
                                 ">,请输入新的比例系数:"
                         )
                )
      )
    (progn
      (setq ss (ssget '((0 . "DIMENSION,LEADER"))))
      (setq k 0)
      (repeat (sslength ss)
        (setq obj (vlax-Ename->Vla-Object (ssname ss k)))
        (setq h (vla-get-textheight obj ))
        (vla-put-textheight obj (* h 3.0));;3.0可以修改的
        (vla-put-scalefactor obj new)
        (setq k (1+ k))
      )
    )
  )
  (princ)
)
回复

使用道具 举报

发表于 2012-5-11 22:51:50 | 显示全部楼层
论坛会有的,继续找
回复

使用道具 举报

发表于 2012-5-11 23:05:06 | 显示全部楼层
看来还是天正好用
回复

使用道具 举报

发表于 2012-5-11 23:45:40 | 显示全部楼层
“只针对标注值..及相关文本” 是天正的标注和天正文字吗,还是cad标注和cad文字?

点评

当然还能实现对天正标注还有天正文字....那是超完美滴哈  发表于 2012-5-11 23:51
是cad标注和cad文字哦...  发表于 2012-5-11 23:50
回复

使用道具 举报

 楼主| 发表于 2012-5-12 00:06:03 | 显示全部楼层
又找到半个哈.....
(defun c:mysc (/ sc ss i en ent pts pt s1)
  ;;出错处理函数
  (defun ss-errexit (msg)
    (command)
    (command)
    (if (or (= msg "Function cancelled")
     (= msg "quit / exit abort")
)
      (princ msg)
      (princ (strcat "\n错误: " msg))
    )
    (clos)
  )
  (svos)
  (setq sc (getreal "\n请输入缩放比例<1.0>:"))
  (if (null sc)
    (setq sc 1.0)
  )
  (setq ss (ssget))
  (setq i -1)
  (setvar "OSMODE" 0)
  (while (setq en (ssname ss (setq i (1+ i))))
    (setq pt (ss-getencen en NIL))
    (ss-en-scale en pt sc)
  )
  (clos)
)
(princ "\n高山流水图元中心缩放程序,命令mysc")
(princ)
;;;获取图元的视图中心
(defun ss-getencen (en onseg / Wmat Umat obj minPt maxPt)
  (if (and onseg (= (getvar "WORLDUCS") 0))
    (setq Wmat (gc:TMatrixFromTo 1 0)
   Umat (gc:TMatrixFromTo 0 1)
    )
  )
  (if en
    (progn
      (setq obj (vlax-ename->vla-object en))
      (if Wmat
(vla-TransformBy obj (vlax-tmatrix Wmat))
      )
      (vla-GetBoundingBox obj 'minpt 'maxpt)
      (setq minPt (vlax-safearray->list minPt))
      (setq maxPt (vlax-safearray->list maxPt))
      (if Umat
(vla-TransformBy obj (vlax-tmatrix Umat))
      )
      (midpt minpt maxpt)
    )
  )
)
;;;gile
(defun gc:TMatrixFromTo (from to)
  (append
    (mapcar
      (function
(lambda (v o)
   (append (trans v from to T) (list o))
)
      )
      (list '(1. 0. 0.) '(0. 1. 0.) '(0. 0. 1.))
      (trans '(0. 0. 0.) to from)
    )
    (list '(0. 0. 0. 1.))
  )
)
;;;图元基点缩放
(defun ss-en-scale (en pt sc / s1)
  (setq s1 (ssadd)
s1 (ssadd en s1)
  )
  (vl-cmdf "_.SCALE" s1 "" pt sc)
)
;;;保存原来的设定
(defun svos ()
;;;记录初始变量
  (setq gsls_oldosm    (getvar "OSMODE") ;捕捉设定
gsls_oldoth    (getvar "ORTHOMODE") ;正交设定
gsls_oldlye    (getvar "CLAYER") ;当前层
gsls_oldclr    (getvar "CECOLOR") ;当前颜色
gsls_plnwid    (getvar "PLINEWID") ;线宽设定
gsls_oldltp    (getvar "CELTYPE") ;保存当前线形
gsls_cmdecho   (getvar "CMDECHO") ;命令形式
gsls_elev      (getvar "ELEVATION")
gsls_pickstyle (getvar "PICKSTYLE")
gsls_olderr    *error*
*error*        ss-errexit
  )
  (vla-startundomark
    (vla-get-activedocument (vlax-get-acad-object))
  )
)
;;;恢复原来的设定
(defun clos ()
  (vla-EndUndoMark
    (vla-get-ActiveDocument (vlax-get-acad-object))
  )
  (setvar "OSMODE" gsls_oldosm)
  (setvar "ORTHOMODE" gsls_oldoth)
  (setvar "CLAYER" gsls_oldlye)
  (setvar "CECOLOR" gsls_oldclr)
  (setvar "CELTYPE" gsls_oldltp)
  (setvar "ELEVATION" gsls_elev)
  (setvar "CMDECHO" gsls_cmdecho)
  (setvar "PLINEWID" gsls_plnwid)
  (setvar "PICKSTYLE" gsls_pickstyle)
  (setq *error* gsls_olderr)
  (prin1)
)
;;;求两点中点
(defun midpt (pta ptb)
  (mapcar (function (lambda (x y)
        (/ (+ x y) 2.0)
      )
   )
   pta
   ptb
  )
)
回复

使用道具 举报

发表于 2012-5-12 01:42:30 | 显示全部楼层
试试 没啥技术含量 将就可以用
cad文字没有比例 是通过改字高实现

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2012-5-12 02:49:25 | 显示全部楼层
print1985 发表于 2012-5-12 01:42
试试 没啥技术含量 将就可以用
cad文字没有比例 是通过改字高实现

?????????????

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2012-5-12 10:09:24 | 显示全部楼层
你咋是乱码 那几个字应该是“请输入新的出图比例”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-22 18:24 , Processed in 0.220325 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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