找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2580|回复: 5

[求助] [求助]:VLisp里面怎么给 vlax-safearray 数组赋值

[复制链接]
发表于 2004-5-6 13:20:55 | 显示全部楼层 |阅读模式

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

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

×
大家帮我看看:
(defun c:tess(/  CIRCEN MYCIR cirR MyHatch outLine)
  (vl-load-com)
  (setq *acadObject* (vlax-get-acad-object))
  (setq *acadDocument* (vla-get-ActiveDocument *acadObject*))
  (setq *mSpace* (vla-get-ModelSpace *acadDocument*))
  (setq circen (getPoint "\n输入插入点:"))
  (setq MyCir (vla-addCircle *mSpace* (vlax-3d-point circen) 200))
  (setq outLine (vlax-make-safearray vlax-vbObject '(0 . 0)))---------------------a
  (vlax-safearray-fill OutLine 'MyCir) ----------------------------------------b
  (setq MyHatch (vla-addHatch *mSpace* 0 "Solid" T))
  (vla-appendouterloop MyHatch outLine)
  (vla-evaluate MyHatch)
  )
我用语句a创一个安全数组,类型为 vbaobject 一维 一个元素(0 . 0)
然后用语句b进行赋值 可是在这里出错:
====================================================
错误: vlax-safearray-fill 失败。初始化列表无效。 #<safearray...>
MYCIR
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-5-6 14:51:40 | 显示全部楼层
(vlax-safearray-fill OutLine (list MyCir)) ----------------------------------------b
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-5-6 23:23:02 | 显示全部楼层
多谢LUCAS,我试下先!
再问一个问题,使用 getPoint(getCorner)接受坐标同时可以以接受 getKeyWord吗,怎么做。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-7 08:25:01 | 显示全部楼层
Initget

建立下一個使用者輸入函數呼叫所使用的關鍵字
(initget [bits] [string])

具有關鍵字的函數有 getint、getreal、getdist、getangle、getorient、getpoint、getcorner、getkword、entsel、nentsel 及 nentselp。 getstring 函數是唯一沒有關鍵字的使用者輸入函數。
使用者沒有輸入預期的類型 (例如,getpoint輸入點) 時,由下一個使用者輸入函數來檢查關鍵字。如果使用者的輸入符合串列中的某關鍵字時,函數會傳回關鍵字作為結果字串。應用程式可以測試關鍵字並執行與每個關鍵字有關的動作。如果使用者的輸入不是預期的類型且不符合關鍵字,AutoCAD 會要求使用者再試一次。initget 位元值及關鍵字只應用在下一個使用者輸入函數呼叫。

如果 initget 所設定的控制位元於應用程式呼叫使用者輸入函數時沒有意義,則會忽略此位元。
如果使用者的輸入因違反一個或以上的條件而失敗 (如不允許零值而出現零值時),AutoCAD 會顯示訊息並要求使用者使用者再試一次。

引數

bits

允許或不允許使用者輸入特定資料類型的位元碼整數。這些位元可以用任意組合加在一起成為 0 到 255 之間的值。如果沒有提供 bits 引數,會 (無條件) 假設為零。位元的值如下:
1 (第 0 位元) 避免使用者僅以 ENTER 回應要求。
2 (第 1 位元) 避免使用者以零回應要求。
4 (第 2 位元) 避免使用者以負數值回應要求。
8 (第 3 位元) 允許使用者輸入超出圖面範圍外的點。這個條件應用在下一個使用者輸入函數,即使目前已設定了 LIMCHECK AutoCAD 系統變數也可行。

16 (第 4 位元) (目前未使用。)
32 (第 5 位元) 使用虛線繪製伸縮線或方框。對於讓使用者以選取圖形螢幕位置來指定點的函數,這個位元值會使伸縮線或方框呈虛線而不是實線。(某些顯示驅動程式使用特殊的顏色來代替虛線。) 如果 POPUPS 系統變數為 0,AutoCAD 會忽略這個位元。
64 (第 6 位元) 禁止附帶 Z座標者輸入給 getdist 函數;讓應用程式確定這個函數傳回2D 的距離。

128 (第 7 位元) 允許像關鍵字一樣任意輸入,優先接受任意其他控制位元及串列的關鍵字。這個位元優先於之前的第 0 位元;如果設定第 7 位元及第 0 位元,使用者按下ENTER 鍵時,會傳回空字串。
請注意下一版的 AutoLISP 可能會使用其他的 initget 控制位元,因此請避免設定未在此串列的位元。

string

代表一系列關鍵字的字串。請參閱「關鍵字規格」以取得定義關鍵字的資訊。

傳回值

nil


;-------------------------------------------------
(defun C:TT (/ KEY)
  (initget 128)
  (setq KEY (getpoint "\nA/B/C: "))
  (cond
    ((= (type KEY) 'list)
     (alert "POINT")
    )
    ((= (strcase KEY) "A")
     (alert KEY)
    )
    ((= (strcase KEY) "B")
     (alert KEY)
    )
    ((= (strcase KEY) "C")
     (alert KEY)
    )
  )
  (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-5-7 11:04:40 | 显示全部楼层
完全明白了,太感谢了!
上面的资料我也看到过,只是不明白怎么用,看完你的Demo程序之后就很清楚了。

(= (type KEY) 'list)

这个TYPE 是关键地方了,应该是与getPoint的匹配的类型吧。
而且还学多了一招,alert

PS:我是一个初学者,现在在学VLisp,只是手头的资料太少了,仅有的一两本书又说得简单了,在网上查可以说是大海捞针。非常感谢 LUCAS 的热心解答,以后还要向各位高手多多请教。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-25 10:39 , Processed in 0.372384 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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