明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1542|回复: 3

[函数] [求助]为何块中的元素无法修改?(附图及lisp)

[复制链接]
发表于 2009-9-22 18:11 | 显示全部楼层 |阅读模式

(defun c:tl( / jj i j ent ena ent1 ss)
(setq ss (ssget))
(setq i -1)
(setq j (* (sslength ss) 2))
(repeat (sslength ss)
    (setq ent (entget (ssname ss (setq i (1+ i)))));取块的ent data
    (setq ena (cdr (assoc '-2 (tblsearch "block" (cdr(assoc '2 ent))))));取块子元素的名称
    (while (setq ena (entnext ena));循环
    (if (= (cdr (assoc '8 (setq ent1 (entget ena)))) "roof truss")(progn
    (setq opts (cdr (assoc '10 ent1)))
    (setq opte (cdr (assoc '11 ent1)))
    (command "ucs" "ob" (cdr(assoc '-1 ent)));坐标系转为块插入的坐标
    (setq npts (trans opts 1 0))
    (setq npts (list (car npts)(cadr npts)(+ (caddr npts) 50)))
    (setq npts (trans npts 0 1))
    (setq ent1 (subst (cons 10 npts) (assoc 10 ent1) ent1))
    (setq npte (trans opte 1 0))
    (setq npte (list (car npte)(cadr npte)(+ (caddr npte) 50)))
    (setq npte (trans npte 0 1))
    (setq ent1 (subst (cons 11 npte) (cons 11 opte) ent1));这个ent1 的data已经是我想要的结果了
    (entmod ent1)
    (entmod ent);entmod后,发现块里的数据没有任何改变???这是为什么?
    (command "ucs" "w")
)
)
)
)
)

大侠们看看是哪里出问题了?不胜感激!!

entmod后完全没有反应。。。-0-

见鬼了,

我只是想把图中的紫色线,图层为roof truss的提高50mm

但是死活改不了。。这是为什么???

发表于 2009-9-22 19:26 | 显示全部楼层
(entmod ena);试试
 楼主| 发表于 2009-9-22 19:54 | 显示全部楼层

; 错误: 图元尾部包含错误表: <图元名: 7edef520>

entmod 是接entget的数据吧?

ena 是图元名。。

发表于 2009-9-22 20:08 | 显示全部楼层

块中图元修改后需要

Regen 或 Update

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

本版积分规则

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

GMT+8, 2024-5-15 02:10 , Processed in 0.147044 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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