明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1796|回复: 5

问题请教?

[复制链接]
发表于 2002-11-13 20:21:00 | 显示全部楼层 |阅读模式
明经提供的函数:生成无名图块
(defun mc-make-unname-block(ss / count entlist ent blk)
  (entmake '((0 . "BLOCK")
             (2 . "*U1")
             (70 . 1)
             (10 0 0 0)
             ))
  (setq count 0)
  (repeat (sslength ss)
    (setq entlist(entget(setq ent(ssname ss  count))))
    (setq count (1+ count))
    (entmake entlist)
    )
  (setq count 0)
  (repeat(sslength ss)
    (setq ent(ssname ss count))
    (setq count (1+ count))
    (entdel ent)
    )
  (setq blk(entmake '((0 . "ENDBLK"))))
  (if (princ blk)
  (entmake (list (cons 0  "INSERT")
             (cons 2 blk)
             (cons 10 '(0 0 0))
             ))
    )
  blk
  )
问题出现:我使用这个函数在同一幅图中生成多个无名图块,后移动其中一个
图块,但其他图块也跟着连动出现变化,我试着更改了组码2的定义,就没这个
问题,但我还不是很清楚是不是需要这样解决,或则我的程序中出现了什么失误,
再线等待回答...
发表于 2002-11-13 20:30:00 | 显示全部楼层

我试过上面的代码,没有出现你讲的情况

 楼主| 发表于 2002-11-13 20:35:00 | 显示全部楼层

下次我把程序贴出来,说必定是我的程序出错

下次我把程序贴出来,说必定是我的程序出错
 楼主| 发表于 2002-11-15 12:56:00 | 显示全部楼层

陈老师在吗?等待您的回答

测试程序如下:
(defun c:fff(/ ss p1 p2 p3 p4)
(setq p1 (getpoint"\np1:"))
(setq p2 (getpoint"\np2:"))
(setq p3 (getpoint"\np3:"))
(setq p4 (getpoint"\np4:"))
(setq ss (ssadd))
(command"_.line"p1 p2 "")
(ssadd (entlast) ss)
(command"_.line"p3 p4 "")
(ssadd (entlast) ss)
(mc-make-unname-block ss);;;使用该函数制作无名图块
(princ)
)

两次调用FFF后生成两个无名图块,后移动第一个生成的图块,
您看看有什么问题.....
我试着将组码2的定义作了更改(2 . "*U"),好象U后面的生成
是CAD自己定义的?
等待回答....
发表于 2002-11-15 14:50:00 | 显示全部楼层

对不起,

当时试验你提供的代码我也没仔细看,在CAD的内画了几条线,然后TEST时没有regen,所以...,
但没有省略*Uxxx的数字时,如果多次定义改图块,跟重新定义一般图块一样,将原来的覆盖了,你不移动图块,只要Regen一下,就会发现这些无名图块全不一样了.
你的解决方法是对了,名经提供的应该只是一个示例代码而以.
 楼主| 发表于 2002-11-16 21:21:00 | 显示全部楼层

多谢您的回答!

多谢您的回答!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 21:44 , Processed in 0.180143 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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