明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
123
返回列表 发新帖
楼主: tryhi

[函数] GCD高程点z值修复[原创.附源码]

    [复制链接]
发表于 2017-9-4 20:57 | 显示全部楼层
谢谢实用好工具
发表于 2017-9-14 23:58 来自手机 | 显示全部楼层
收藏了会用得着,谢谢分享
发表于 2017-9-17 15:22 | 显示全部楼层
虽然看不懂 但是觉得很厉害
发表于 2017-9-18 16:22 | 显示全部楼层
谢谢楼主的劳动成果!
发表于 2018-1-15 19:36 | 显示全部楼层
不错,谢谢楼主的分享!
发表于 2020-7-3 21:07 | 显示全部楼层
为什么没改过来
发表于 2020-7-4 21:31 | 显示全部楼层
我正好需要相反的
发表于 2024-5-16 00:25 | 显示全部楼层
;GCD设置cass定义的属性块gcd200插入点Z坐标的值写到高程属性(height值)中去
(defun C:GCD (/ SS JD I EN0 EN1 ENT0 ENT1 PT0 STR)
  (if (SETQ SS (ssget '((0 . "insert") (2 . "*"))))
    (progn
      (if (SETQ JD (getint "\n小数保留位数<4>: "))()(SETQ JD 4))
      (repeat (SETQ i (sslength SS))
                                (SETQ EN0  (ssname SS (SETQ i (1- i)))
                                        ENT0 (entget EN0)
                                        EN1  (entnext EN0)
                                        ENT1 (entget EN1)
                                )
                                (SETQ PT0 (cdr (assoc 10 ENT0))) ;_插入点
                                (SETQ STR (rtos (caddr PT0) 2 JD)) ;_新内容
                                (entmod (subst (cons 1 STR) (assoc 1 ENT1) ENT1))
                                (entupd EN0) ;_更新
      )
      (princ)
    )
  )
)
发表于 2024-5-16 00:31 | 显示全部楼层
;;;GCDD设置cass定义的属性块gcd中高程属性(标高或height值)为其插入点的z坐标
(DEFUN C:GCDD()(GCDD2024)(princ))
(defun GCDD2024(/ bt11 e h hh jd n s)
        (princ "GCDD设置cass定义的属性块gcd中高程属性(标高或height值)为其插入点的z坐标QXQ")
        (defun bt11 (e / s)
                (if (and (setq e (vlax-ename->vla-object e))
                                        (vla-Get-HasAttributes e)
                                )
                        (progn
                                (foreach x
                                        (vlax-safearray->list (vlax-variant-value (vla-GetAttributes e)))
                                        (if (OR (= "标高" (vla-Get-TagString x)) (= "height" (vla-Get-TagString x)))
                                 ;(if (= "标高" (vla-Get-TagString x))
                                               
                                                (setq s (cons (vla-Get-TextString x)s))
                                        )
                                )
                                (if s (car s))
                        )               
                )       
        )
        (if (and (or (setq JD (getint "\n小数保留位数<4>: "))
                                                 (setq jd 4)
                                         )
                                ;(setq s (ssget '((0 . "insert") (2 . "GC*"))))
                                (setq s (ssget '((0 . "insert")(2 . "GC*"))))
                                (setq n (sslength s))
                        )
                (while (and (setq e (ssname s (setq n (1- n))))
                                                 (setq h (bt11 e))
                                                 (setq h (read h))
                                                 (numberp h)
                                                 (setq h (atof (rtos h 2 jd)))
                                                 (setq e (vlax-ename->vla-object e))
                                                 (setq hh (vlax-get e 'InsertionPoint))
                                         )
                        (vlax-put e 'InsertionPoint (list (car hh)(cadr hh) h))
                )               
        )
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-19 06:14 , Processed in 0.124356 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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