找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 810|回复: 7

[LISP函数]:2006help里为什么没有VLA-GET/VLA-PUT

[复制链接]

已领礼包: 2个

财富等级: 恭喜发财

发表于 2005-12-8 15:11:58 | 显示全部楼层 |阅读模式

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

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

×
2006help里为什么没有VLA-GET/VLA-PUT函数?谢谢先!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-12-8 15:48:28 | 显示全部楼层
你在帮助中搜索一下就知道了.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2005-12-8 16:09:22 | 显示全部楼层
Functions that read object properties are named with a vla-get prefix and require the following syntax:

(vla-get-property object)
For example, vlagetcenter returns the center point of a circle.

To obtain an object's property and apply the property to a new object

Enter the following at the VLISP Console prompt:
(setq myCircle (vla-addcircle mspace (vlax-3d-point
  (getpoint "\nPick the center point for a circle: ")) 2.0))
This function call prompts you to pick a center point for a circle, then invokes the Addcircle method to draw the circle. The vlax-3d-point function converts the point you pick into the data type required by vlaaddcircle.

Use vlagetcenter to draw a second circle concentric to the first:
(vla-addCircle mSpace (vla-get-center myCircle) 1.0)
The AutoCAD drawing window now contains the following objects:

VLISP adds a set of functions to the AutoLISP language that provides access to ActiveX objects. The function names are prefixed with vla-: for example, vlaaddCircle, vla-get-ModelSpace, vla-getColor. These functions can be further categorized as follows:

vla- functions correspond to every ActiveX method. Use these functions to invoke the method (for example, vlaaddCircle invokes the Addcircle method).
vlaget- functions correspond to every property, enabling you to retrieve the value of that property (for example, vla-get-Color obtains an object's color property).
vlaput- functions correspond to every property, enabling you to update the value of that property (for example, vla-put-Color updates an object's color property).
VLISP also adds a set of ActiveX-related functions whose names are prefixed with vlax-. These are more general ActiveX functions, each of which can be applied to numerous methods, objects, or properties. For example, with the vlax-get-property function, you can obtain any property of any ActiveX object. If your drawing contains custom ActiveX objects, or if you need to access objects from other applications, such as a Microsoft Excel spreadsheet, you can use the vlax-invoke-method, vlax-get-property, and vlaxputproperty functions to access their methods and properties; you'll see examples using these functions in Using ActiveX without Importing a Type Library.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

 楼主| 发表于 2005-12-15 13:45:54 | 显示全部楼层
最初由 狂刀 发布
[B]是历史遗留问题(函数),如trace [/B]


還是沒搞明白!您能否再講明白點.是否在2006裏有某一個函數全部取代了低版本的vla-get-xxx的函數?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-15 15:10:49 | 显示全部楼层
vla-get-***,vla-pu-***,vla-**** 它们是VBA中的属性或方法在VL中应用,例如vla-get-closed是检查物体是否封闭,可以在VBA的帮助参考中找CLOSED属性来参考
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

发表于 2005-12-15 23:07:24 | 显示全部楼层
VLA-GET/VLA-PUT 都是ActionX的,你看看VBA里对象的属性及方法,分别替换就行了。
如你要得到圆的圆心
则:

  1. vla-get-Center 函数

  2. 功能

  3.    取得弧、圆、椭圆、视图或视口的中心。

  4. 语法及参数

  5. (vla-get-Center Object)
  6. Object  Arc, Circle, Ellipse, PViewport, View, Viewport
  7.   这个属性适用的对象。
  8. Center 变体(双精度的三元素数组);读/写
  9.   3D坐标,代表对象的中点。
  10. 默认值中点是(0,0,0)。
  11. 视口、视图:视口与视图对象中点是一个2D坐标值








  12. 说明
  13.     弧的中点

  14.    



  15. 范例  

  16. (defun Example_Center()

  17.   (VL-LOAD-COM)

  18.   (setq AcadObject(vlax-get-acad-object)

  19.         AcadDocument(vla-get-ActiveDocument AcadObject)

  20.         mSpace(vla-get-ModelSpace AcadDocument)

  21.   )

  22. ;;; 定义圆的中点的与半径

  23.   (setq currCenterPnt(vlax-make-safearray vlax-vbDouble'(0 . 2)))

  24.   (vlax-safearray-fill currCenterPnt '(20 30 0))

  25.   (setq radius 30)

  26. ;;; 在模型空间中建立一个圆对象

  27.   (setq CircleObj(vla-AddCircle mSpace currCenterPnt radius))

  28.   (vla-ZoomExtents AcadObject)

  29.   (princ "圆的中点是 ")

  30.   (princ (vlax-safearray-get-element currCenterPnt 0))(princ ",")

  31.   (princ (vlax-safearray-get-element currCenterPnt 1))(princ ",")

  32.   (princ (vlax-safearray-get-element currCenterPnt 2))(princ "   Center范例 \n")

  33.   (PROMPT "<Enter>进行:")(VL-CMDF pause)

  34. ;;; 改变圆的中点

  35.   (setq newCenterPnt(vlax-make-safearray vlax-vbDouble'(0 . 2)))

  36.   (vlax-safearray-fill newCenterPnt '(25 25 0))

  37.   (vla-put-Center CircleObj newCenterPnt)

  38.   (vla-Update CircleObj)

  39. ;;; 查询新的中心位置的结果
  40. ;;; 注意中点属性输出为一个变体

  41.   (setq centerPnt(vla-get-Center CircleObj))

  42.   (princ "圆的中点是 ")

  43.   (princ (vlax-safearray-get-element currCenterPnt 0))(princ ",")

  44.   (princ (vlax-safearray-get-element currCenterPnt 1))(princ ",")

  45.   (princ (vlax-safearray-get-element currCenterPnt 2))(princ "   Center范例 \n")

  46.   (princ)

  47. )

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

使用道具 举报

发表于 2005-12-16 12:19:51 | 显示全部楼层
VLAx-GET/VLAx-PUT  和 VLA-GET-*/VLA-PUT-* 是不同的,
VLAx-GET/VLAx-PUT 是早期vl版本的函数,现在的也支持部分属性,如
(vlax-get obj 'color)
效果等同于(vla-get-color obj) ;其中obj 必须是vla-object
但是也有的属性不支持,调试时只能靠自己试试看了。所以说是历史遗留问题:)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 22:18 , Processed in 0.181079 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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