乐筑天下

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

怎样用VL写一个含属性参照的块

[复制链接]

36

主题

201

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
345
发表于 2003-11-7 12:47:00 | 显示全部楼层 |阅读模式
请问各位大虾,怎样用VL写一个含属性参照的块?
块中的线用 AddLightweightPolyline 画,
实现的效果就像我们插入一个事先做好了的含属性参照的块一样。
能举个例子吗?谢谢您!!!
回复

使用道具 举报

36

主题

201

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
345
发表于 2003-11-7 13:09:00 | 显示全部楼层
无名块中可以含属性参照吗?
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-11-7 13:31:00 | 显示全部楼层
线为什么要用AddLightweightPolyline画?
象你这种效果就没有任何必要做一个程序了,你做一个属性块,用时插入不就可以了吗?
回复

使用道具 举报

36

主题

201

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
345
发表于 2003-11-7 13:48:00 | 显示全部楼层
我的程序中的那个块中的图形要参数化(即用AddLightweightPolyline画的部分和属性参照的文字高度)!所以就要编个程序了。
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-11-7 14:25:00 | 显示全部楼层
怎么总是有人回答只回答一半?
我问为什么要AddLightweightPolyline画,不管用什么画,只要画出来是你需要的不可以吗?
回复

使用道具 举报

36

主题

201

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
345
发表于 2003-11-7 14:49:00 | 显示全部楼层
噢!SORRY!
只要画出来就行,若能用最巧的方法画出来更好!
我说用AddLightweightPolyline画是因为对象就要少一些,谬论!^_^
回复

使用道具 举报

36

主题

201

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
345
发表于 2003-11-7 15:10:00 | 显示全部楼层
我试着写了一下,但有几个问题:
1、创建了块和属性参照,但属性参照看不见。
2、若用创建无名块,属性参照也看不见。
3、属性参照的对齐方式及对齐点、旋转角度不会设置。
4、最重要的是,每运行一次该程序,创建的块就会包含上一次运行时创建的图形!
请飞哥帮忙看一下,谢谢了!!!
  1. ;;;
  2. (defun testBlk (/ pt pt1 t2 pt3 pt4 selectedObj ag)
  3.   (setq adoc (vla-get-ActiveDocument (vlax-get-acad-object)))
  4.   (setq mSpace (vla-get-ModelSpace adoc))
  5.   (setq entc (car (entsel)))
  6.   (while (= (car (setq pt (grread 2 4))) 5)
  7.     (setq pt (cadr pt))
  8.     (setq pt2 (vlax-curve-getClosestPointTo entc pt t))
  9.     (SETQ ag (ANGLE pt2 pt))
  10.     (SETQ pt1 (POLAR pt2 (- ag (/ PI 6)) (/ 10 (cos (/ pi 6)))))
  11.     (SETQ pt3 (POLAR pt2 (+ ag (/ PI 6)) (/ 5 (cos (/ pi 6)))))
  12.     (SETQ pt4 (POLAR pt2 (- ag (/ PI 6)) (/ 5 (cos (/ pi 6)))))
  13.     (setq 2dpts (apply 'append (mapcar '3d->2d (list pt1 pt2 pt3 pt4))))
  14.   )
  15.   (setq blocks (vla-get-blocks adoc))
  16.   (setq blockObj (vla-add blocks (vlax-3D-point pt2) "KR_CCD"))
  17.   (setq        pt5 (polar pt2 ag (+ 0.5 5 (/ 3 2)))
  18.         ag2 (/ (* ag 180) PI)
  19.   )
  20.   (setq        attang (COND (( AG2 30) ( AG2 210) (VariantArray 2dpts)
  21.   )  
  22.   (setq        blk (vla-insertblock
  23.               mSpace
  24.               (vlax-3D-point pt2)
  25.               "KR_CCD"
  26.               1
  27.               1
  28.               1
  29.               0
  30.             )
  31.   )
  32.   (setvar "osmode" var1)
  33. )

还有,我想用GRREAD函数实现动态,但没成功!
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-11-7 15:31:00 | 显示全部楼层
自己看看吧
  1. (defun c:test( / pt doc pl att pt2 p block blocks)
  2.   (setq pt (getpoint "Enter the insert position:"))
  3.   (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  4.   (setq blocks (vla-get-blocks doc))
  5.   (setq block (vla-add blocks (vlax-3d-point pt) "hello"))
  6.   (setq pt2 (polar pt 0 15))
  7.   (setq p (vlax-make-safearray vlax-vbdouble '(0 . 3)))
  8.   (vlax-safearray-fill p (list (car pt) (cadr pt) (car pt2) (cadr pt2)))
  9.   (setq pl (vla-AddLightweightPolyline block p))
  10.   (setq att (vla-Addattribute block 3.5 0 "HELLO" (vlax-3d-point pt) "hello1" "hello2"))
  11.   (princ)
  12. )
回复

使用道具 举报

36

主题

201

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
345
发表于 2003-11-7 16:21:00 | 显示全部楼层
刚才网线有问题,不好意思!
这个程序运行后没有看见块呢!但运行后用insert命令倒可以插入刚才建的块。
改为运行后就可看见块,怎样解决呢!(还要用vla-insertblock吧!)
每运行一次该程序,创建的块就会包含上一次运行时创建的图形!
请你看看我上面那个程序,帮忙完善一下!谢谢!!!
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-11-7 17:00:00 | 显示全部楼层
你还没理解块是个什么东西。
块是看不见的,是存在数据库中,你插入的只是一个INSERT对象(你用ENTGET查看),INSERT对象是对块的引用而已,它并不是一个块。
已经给你写出了功能实现了,剩下的还不简单?你说了你很努力的,怎么也跟别人一样,就知道让别人写完整的,不自己思考。完成龙龙仔给你的任务那股劲怎么没了?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-6 20:37 , Processed in 0.336487 second(s), 72 queries .

© 2020-2025 乐筑天下

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