乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 127|回复: 9

求助!!!

[复制链接]

57

主题

466

帖子

8

银币

中流砥柱

Rank: 25

铜币
694
发表于 2004-4-7 08:35:00 | 显示全部楼层 |阅读模式
(defun c:h_copy        ()
;;;_______________________________________________________
         (setq plate '("PH_W" "PPS_W"))
         (setq plate_wc '("0" "1"))
         (setq ss (ssget))
         (if ss
                         (progn
                                         (setq n 0)
                                         (while (> (sslength ss) n)
        (setq en (ssname ss n))
        (setq ed (entget en))
        (setq n@ 0)
        (while (> (length plate) n@)
                 (setq lay (nth n@ plate))
                 (setq ed (subst (cons 8 lay) (assoc 8 ed) ed))
                 (setq lay_wc (nth n@ plate_wc))
                 ;;(setq ff (cons 1000 lay_wc))
                 (regapp "MY_TAG")
                 (setq        exdata (list (list -3
                                                 (list "MY_TAG"
                                         (cons 1000 "h")
                                         (cons 1000 lay_wc)
                                                 )
                                                         )
                                                                 )
                 )
                 (setq ed (append ed exdata))
                 (entmake ed)
                 ;;(setq lay_wc nil)
                 (setq n@ (1+ n@))
        )
        (setq n (1+ n))
                                         )
                                         (setq plate nil)
                                         (setq plate_wc nil)
                         )
         )
         (princ)
)这段程序不能正常运行,但是如果把
                 (regapp "MY_TAG")
                 (setq        exdata (list (list -3
                                                 (list "MY_TAG"
                                         (cons 1000 "h")
                                         (cons 1000 lay_wc)
                                                 )
                                                         )
                                                                 )
                 )
                 (setq ed (append ed exdata))
这段删掉就可以正常运行了,如果没删掉它只复制到 PH_W 层去,我百思不得其解,不知道问题出在哪.
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-4-7 09:56:00 | 显示全部楼层
我这里可以正常运行,不过你使用了ENTMAKE,就新建了一个对象,不知你是否只是需要添加扩展数据,这样就应该用ENTMOD
回复

使用道具 举报

57

主题

466

帖子

8

银币

中流砥柱

Rank: 25

铜币
694
发表于 2004-4-7 10:30:00 | 显示全部楼层
不会吧,我这里不行啊,只能升成一个我是要新建一个并显需要添加扩展数据,不动原来的
我改成这样子了还是不行
(while (> (length plate) n@)
                 (setq lay (nth n@ plate))
                 (setq ed (subst (cons 8 lay) (assoc 8 ed) ed))
                 (setq lay_wc (nth n@ plate_wc))
(if (= (regapp "MY_TAG") NULL)
                                 (regapp "MY_TAG")
                 )
                 (setq        exdata (list (list -3
                                                 (list "MY_TAG"
                                         (cons 1000 "h")
                                         (cons 1000 lay_wc)
                                                 )
                                                         )
                                                                 )
                 )
                 (setq ed (append ed exdata))
                 (entmake ed)
                 ;;(setq lay_wc nil)
                 (setq n@ (1+ n@))
        )
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-4-7 10:39:00 | 显示全部楼层
原来你是要生成新的啊,我是在2005里测试的,不知道是不是会自动过滤无效DXF组码...因为你要用ENTMAKE,你应该仔细看看帮助文件中ENTMAKE的介绍,哪些是不可以的,比如组码(-1 . 对象名)就是不可以的
回复

使用道具 举报

57

主题

466

帖子

8

银币

中流砥柱

Rank: 25

铜币
694
发表于 2004-4-7 11:23:00 | 显示全部楼层
程序一 :在 PH_W         PPS_W图层上建立新图元(不加扩展数据),程序没问题
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:2mdcxfsgskf.LSP 
下载次数:0  文件大小:871 Bytes  售价:2银币 [记录]
下载权限: 不限 以上或 Vip会员   [开通Vip]   [签到领银币]  [免费赚银币]


程序二 :在 PH_W         PPS_W图层上建立新图元增加扩展数据,程序有问题
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:neg2nw53j3q.LSP 
下载次数:0  文件大小:1.2 KB  售价:2银币 [记录]
下载权限: 不限 以上或 Vip会员   [开通Vip]   [签到领银币]  [免费赚银币]

回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-4-7 11:57:00 | 显示全部楼层
那就搞不明白了,我拷贝你的程序,一个字都没有改过,直接运行,随便画了几条线来测试的,完全没有问题,即新建了对象,又在新建的对象上添加了扩展数据...
如果你还是不行,你可以这样试试,先新建对象,然后再在新建的对象上添加扩展数据,两者分开做
回复

使用道具 举报

57

主题

466

帖子

8

银币

中流砥柱

Rank: 25

铜币
694
发表于 2004-4-7 12:54:00 | 显示全部楼层
好的,我试试看
程序二我执行的结果是,在 PH_W 层上生成了图元并显也有扩展数据(只生成了一个图元)
我要的结果是在 PH_W         PPS_W 层上生成了图元并显也有扩展数据(生成两个图元)
我用的是简体版的 AutoCAD2002
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-4-7 13:12:00 | 显示全部楼层
才搞明白你的意思...改这里,应该明白原因了吧...
                 ;(setq ed (append ed exdata))        ;增加扩展数据
                 (setq ed (subst exdata (assoc -3 ed) ed))
回复

使用道具 举报

57

主题

466

帖子

8

银币

中流砥柱

Rank: 25

铜币
694
发表于 2004-4-7 13:25:00 | 显示全部楼层
还是不行,改成那样字图元就没有扩展数据了
如果我选择的物体有扩展数据的话那应该改成这样
                 (if (= (assoc -3 ed) nil)
                                 (setq ed (append ed exdata))
                                 (setq ed (subst exdata (assoc -3 ed) ed)) ;增加扩展数据
                 )
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-4-7 13:26:00 | 显示全部楼层
呵呵,对了...
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-8-15 20:16 , Processed in 3.163917 second(s), 79 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表