找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2899|回复: 17

[求助] [求助]:entmake block 调试!

[复制链接]
发表于 2006-7-25 14:43:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
以下是我自己写的entmake测试,不知道为什么,增加属性后就不能做成块了,不增加属性就能成块。请帮忙看下,我要做的是一个属性块。
(后面的注释是我自己的理解)


  1. (defun c:x1 ()
  2.   (setq        pif    (getpoint "\n 选择插入点:")
  3.         pic    (polar pif (angtof "0") 525)
  4.         pis    (polar pif (angtof "315") 742)
  5.         pit    (polar pif (angtof "0") (* 2 525))
  6.         pifo   (polar pif (angtof "45") 742)
  7.         pitxt1 (polar pic (angtof "90") 200)
  8.         pitxt2 (polar pic (angtof "270") 200)
  9.         blkm   (rtos (* (getvar "cdate") 1e7))
  10.         deaNo  (strcase (USTR 2 "\n请输入剖切号:" deaNo ""))
  11.         DwgNo  (strcase (USTR 2 "\n请输入剖切图纸号:" DwgNo ""))
  12.   )

  13. ;;;开始entmake block
  14.   (entmake (list '(0 . "BLOCK")
  15.                  (cons 2 blkm)
  16.                  '(100 . "AcDbEntity")
  17.                  '(70 . 2)
  18.                  (cons 10 pif)
  19.            )
  20.   )

  21. ;;; block 成员 之一
  22.   (entmake (list
  23.              '(0 . "ARC")
  24.              '(100 . "AcDbEntity")
  25.              '(100 . "AcDbCircle")
  26.              '(100 . "AcDbArc")
  27.              (cons 10 pic)
  28.              '(40 . 525.0)
  29.              '(50 . 3.95709)
  30.              '(51 . 5.46769)
  31.            )
  32.   )

  33. ;;;block 成员之二
  34.   (entmake (list
  35.              '(0 . "LINE")
  36.              '(100 . "AcDbEntity")
  37.              '(100 . "AcDbLine")
  38.              (cons 10 pif)
  39.              (cons 11 pit)
  40.            )
  41.   )

  42. ;;;block 成员之三
  43.   (entmake (list
  44.              '(0 . "ARC")
  45.              '(5 . "1C5")
  46.              '(100 . "AcDbEntity")
  47.              '(100 . "AcDbCircle")
  48.              (cons 10 pic)
  49.              '(40 . 525.0)
  50.              '(100 . "AcDbArc")
  51.              '(50 . 6.20039)
  52.              '(51 . 3.22439)
  53.            )
  54.   )

  55. ;;;定义属性 第一个
  56.   (entmake (list '(0 . "ATTDEF")
  57.                  '(100 . "AcDbEntity")
  58.                  '(100 . "AcDbText")
  59.                  (cons 10 pitxt1)
  60.                  '(40 . 180.0)
  61.                  '(41 . 0.8)
  62.                  '(1 . "3")
  63.                  '(72 . 0)
  64.                  '(11 0.0 0.0 0.0)
  65.                  '(100 . "AcDbAttributeDefinition")
  66.                  '(3 . "2")
  67.                  '(2 . "1")
  68.                  '(70 . 0)
  69.            )
  70.   )

  71. ;;;定义属性  第二个
  72.   (entmake (list '(0 . "ATTDEF")
  73.                  '(100 . "AcDbEntity")
  74.                  '(100 . "AcDbText")
  75.                  (cons 10 pitxt2)
  76.                  '(40 . 180.0)
  77.                  '(41 . 0.8)
  78.                  '(1 . "3")
  79.                  '(72 . 0)
  80.                  '(11 0.0 0.0 0.0)
  81.                  '(100 . "AcDbAttributeDefinition")
  82.                  '(3 . "2")
  83.                  '(2 . "1")
  84.                  '(70 . 0)
  85.            )
  86.   )
  87.   (entmake '((0 . "ENDBLK")))   ;;;结束entmake block

  88. ;;; 插块
  89.   (entmake
  90.     (list '(0 . "INSERT")
  91.           (cons 2 blkm)
  92.           (cons 10 pif)
  93.           '(66 . 1)
  94.     )
  95.   )

  96. ;;;追加属性 第一个
  97.   (entmake (list '(0 . "ATTRIB")
  98.                  '(100 . "AcDbEntity")
  99.                  '(100 . "AcDbText")
  100.                  (cons 11 pitxt1)
  101.                  '(10 0.0 0.0 0.0)
  102.                  '(40 . 180.0)
  103.                  (cons 1 deano)
  104.                  '(7 . "text")
  105.                  '(41 . 0.8)
  106.                  '(72 . 4)
  107.                  '(100 . "AcDbattribute")
  108.                  '(2 . "大样号")
  109.                  '(70 . 0)
  110.            )
  111.   )

  112. ;;;追加属性第二个
  113.   (entmake (list '(0 . "ATTRIB")
  114.                  '(100 . "AcDbEntity")
  115.                  '(100 . "AcDbText")
  116.                  (cons 11 pitxt2)
  117.                  '(10 0.0 0.0 0.0)
  118.                  '(40 . 180)
  119.                  (cons 1 dwgno)
  120.                  '(7 . "text")
  121.                  '(41 . 0.8)
  122.                  '(72 . 4)
  123.                  '(100 . "AcDbattribute")
  124.                  '(2 . "图纸号")
  125.                  '(70 . 0)
  126.            )
  127.   )

  128. ;;;结束复杂块
  129.   (entmake '((0 . "SEQEND")))
  130.   (princ)
  131. )

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-7-25 18:10:48 | 显示全部楼层
"ATTRIB"与"ATTDEF"有什么不一样吗,如果一样的话,为什么CAD要搞这两个名称.楼主的程序无法调试,USTR未定义
我喜欢用command生成图块:
(command "-block" 图块名 插入点 en1 en2 en3  "")
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-25 18:41:06 | 显示全部楼层
关注中……
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-26 08:40:05 | 显示全部楼层
最初由 hhc_1 发布
[B]"ATTRIB"与"ATTDEF"有什么不一样吗,如果一样的话,为什么CAD要搞这两个名称.楼主的程序无法调试,USTR未定义
我喜欢用command生成图块:
(command "-block" 图块名 插入点 en1 en2 en3  "") [/B]

1、ATTDEF与ATTRIB究竟有什么区别,我也不知道。我这个是根据晓东CAD里一位兄弟给我的程序改写的。

2、USTR为XYP版主的一个通用程序。

3、我主要是做ENTMAKE,而不是调用CAD原有的命令。

附上USTR的定义:
[php]
(defun ustr (bit msg def spflag / inp nval)
  (if (and def (/= def ""))
    (setq msg (strcat "\n" msg "<" def ">:")
          inp (getstring msg spflag)
          inp (if (= inp "")
                def
                inp
              )
    )
    (progn
      (setq msg (strcat "\n" msg ": "))
      (if (= bit 1)
        (while (= "" (setq inp (getstring msg spflag))))
        (setq inp (getstring msg spflag))
      )
    )
  )
  (if inp
    inp
    def
  )
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-26 13:54:15 | 显示全部楼层
整来整去的,干脆搞一个程序,根据拾取的图块为参照,自动生成参数程序好了.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-27 09:16:13 | 显示全部楼层
我是想做一个剖面程序,然后自动生成的大样号和图纸号要成一个属性块。如果说我在生成了图元后还要手动去把他做成块。那样的话,与我没做程序有什么区别?

做程序的时候虽然是很复杂,但是用的时候就会方便很多啊。我不怕程序复杂,就怕用复杂。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-27 13:49:59 | 显示全部楼层
我说的是一种方法,你说的是一种方式 :)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-27 14:09:29 | 显示全部楼层
呵呵,有没有空帮我搞定顶楼的问题?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2006-7-27 21:35:37 | 显示全部楼层
[php](defun c:x1 ()
  (setq        pif    (getpoint "\n 选择插入点:")
        pic    (polar pif (angtof "0") 525)
        pis    (polar pif (angtof "315") 742)
        pit    (polar pif (angtof "0") (* 2 525))
        pifo   (polar pif (angtof "45") 742)
        pitxt1 (polar pic (angtof "90") 200)
        pitxt2 (polar pic (angtof "270") 200)
        blkm   (rtos (* (getvar "cdate") 1e7))
        deaNo  " deaNo "
        DwgNo  " DwgNo "
  )

;;;开始entmake block
  (entmake (list '(0 . "BLOCK")
                 (cons 2 "*U")
                 '(100 . "AcDbBlockBegin")
                 '(70 . 3)
                 (cons 10 pif)
           )
  )

;;; block 成员 之一
  (entmake (list
             '(0 . "ARC")
             '(100 . "AcDbArc")
             (cons 10 pic)
             '(40 . 525.0)
             '(50 . 3.95709)
             '(51 . 5.46769)
           )
  )

;;;block 成员之二
  (entmake (list
             '(0 . "LINE")
             '(100 . "AcDbLine")
             (cons 10 pif)
             (cons 11 pit)
           )
  )

;;;block 成员之三
  (entmake (list
             '(0 . "ARC")
             (cons 10 pic)
             '(40 . 525.0)
             '(100 . "AcDbArc")
             '(50 . 6.20039)
             '(51 . 3.22439)
           )
  )

;;;定义属性 第一个
  (entmake (list '(0 . "ATTDEF")
                 (cons 10 pitxt1)
                 '(40 . 180.0)
                 '(41 . 0.8)
                 '(1 . "3")
                 '(72 . 0)
                 '(11 0.0 0.0 0.0)
                 '(100 . "AcDbAttributeDefinition")
                 '(3 . "2")
                 '(2 . "1")
                 '(70 . 0)
           )
  )

;;;定义属性  第二个
  (entmake (list '(0 . "ATTDEF")
                 (cons 10 pitxt2)
                 '(40 . 180.0)
                 '(41 . 0.8)
                 '(1 . "3")
                 '(72 . 0)
                 '(11 0.0 0.0 0.0)
                 '(100 . "AcDbAttributeDefinition")
                 '(3 . "2")
                 '(2 . "1")
                 '(70 . 0)
           )
  )
  (setq blk(entmake '((0 . "ENDBLK")))  ) ;;;结束entmake block

;;; 插块
  (entmake
    (list '(0 . "INSERT")
          (cons 2 blk)
          (cons 10 pif)
         '(100 . "AcDbBlockReference")
          '(66 . 1)
    )
  )

;;;追加属性 第一个
  (entmake (list '(0 . "ATTRIB")
                 (cons 10 pitxt1)
                 (cons 11 pitxt1)
;                 '(10 0.0 0.0 0.0)
                 '(40 . 180.0)
                 (cons 1 deano)
;                 '(7 . "text")
                 '(41 . 0.8)
                 '(72 . 4)
                 '(100 . "AcDbattribute")
                 '(2 . "大样号")
                 '(70 . 0)
           )
  )

;;;追加属性第二个
  (entmake (list '(0 . "ATTRIB")
                 (cons 10 pitxt2)
                 (cons 11 pitxt2)
;                 '(10 0.0 0.0 0.0)
                 '(40 . 180)
                 (cons 1 dwgno)
;                 '(7 . "text")
                 '(41 . 0.8)
                 '(72 . 4)
                 '(100 . "AcDbattribute")
                 '(2 . "图纸号")
                 '(70 . 2)
           )
  )

;;;结束复杂块
  (entmake '((0 . "SEQEND")))

  (princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-28 00:01:03 | 显示全部楼层
我也用block直接成块。entmake做块太麻烦了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-29 14:41:09 | 显示全部楼层
ll_j,为什么成块后只能更改一个属性?另一个属性呢?另:能指出你更改了哪些部位吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-29 15:56:03 | 显示全部楼层
稍微比较一下就知道了嘛
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2006-7-30 08:43:43 | 显示全部楼层
最初由 Dream.Fei 发布
[B]ll_j,为什么成块后只能更改一个属性?另一个属性呢?另:能指出你更改了哪些部位吗? [/B]


DWGNo属性被我设置为固定了(70组码)。
注意,在高版本的DXF组码中,100组码很重要。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-1 09:36:33 | 显示全部楼层
另一个问题,关于选择集。因为5楼的兄弟也说了,可以用选择集。但是对于需要entmake多个图元的时候,怎么样才能这些图元成为一个选择集呢?难道每entmake一次添加到选择集一次吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-8-19 22:12:47 | 显示全部楼层
很久没下文了。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-14 19:44 , Processed in 0.198355 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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