明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8616|回复: 9

[推荐]利用vbs进行字符串表达式求值 及其应用

[复制链接]
发表于 2007-8-8 00:24:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2007-8-12 1:03:24 编辑

利用vbs进行字符串表达式求值

 

[函数升级到第二代: http://bbs.mjtd.com/forum.php?mod=viewthread&tid=62199 ]

最近在明经看网友提的问题,有几个用vbs很容易解决。

虽然在cad开发中调用vbs技术已经不是什么新鲜的东西。但是以往对其应用仅限于少数几个函数,比如求随机数rnd,调用对话框函数msgbox等。

几日前说到对字符串表达式的计算,用vbs是比较方便的。想起来,就随便对vbs的应用作了一些探讨,并收录了vbs的常用函数,算是抛砖引玉吧,时间关系,没能很系统地整理,希望大家充分把vbs

这个武器应用起来。

;|

函数: xvbs                                                                    

格式: (xvbs bds)                                                              

功能: 字符串表达式求值                                                         

参数: bds = 字符串表达式. 如: "-0.2+5^3/2*sin(1.4)"                            

返回: 求值返回: 实数,整数,判断表达式返回::vlax-true,:vlax-false.                

说明: 本函数参考了lzh版主的帖子,感谢!                                         

|;                                                                             

(defun xvbs (a );;*wsc全局.                                                   

  (if (not *wsc)                                                              

    (setq *wcs (vla-GetInterfaceObject(vlax-get-acad-object)"ScriptControl")) 

  )                                                                           

  (vlax-put-property *wcs "language" "vbs")                                   

  (vla-eval *wcs a)                                                                 

)

 

 

实例:

 

(xvbs "-3+9*2") -> 15

(xvbs "1+4+5*2+(5+5)/2+((6+6)/2+(5+5)/2)") -> 31.0

(xvbs "-7*(-1-4+8)") -> -21

(xvbs "-7-(-1-4+8)")

(xvbs "1e+2*5^3*exp(5.31)" ) -> 2.52938e+006

   验证: (rtos (xvbs "1e+2*5^3*exp(5.31)" ) 2 10) -> "2529377.854851844"

(xvbs "5^3*exp(5.31)") -> 25293.8

附录:

wsc支持的函数:

;; 运用比较运算符进行判断.

(xvbs "1<=2") -> :vlax-true

(xvbs "3<=2") -> :vlax-false

;; 运用连字符$ .

(xvbs "\"123\" & \"abc\"") -> "123abc"

(xvbs "123 + \"111\"") -> 234.0 ;;一个表达式是数值,另一个表达式是字符串 相加

;; 应用逻辑运算符

(xvbs "2<3 or 1>4") -> :vlax-true

(xvbs "2>3 or 1>4") -> :vlax-false

(xvbs "5 \\ 2") -> 2 ;; 除数取整, 对应 (fix (/ 5 2))

(xvbs "5.5 mod 2") -> 2 ;; 模数或余数。运算符执行 number1 除以 number2 操作(浮点数四舍五入为整数)并只返回余数作为 result。

;; 其它应用:

(xvbs "MsgBox(\" 3*2 = \" & 3*2)")

(xvbs "vbBlue") -> 16711680 ;;蓝色 &hFF0000

(xvbs "hex(vbBlue)") -> "FF0000" ;数字转换为16进制

(xvbs "vbCr") -> "\r" ;回车符

(xvbs "vbCrLf") -> "\r\n" ;回车符与换行符

(xvbs "vbTrue") -> -1

(xvbs "vbFalse") -> 0

(xvbs "rgb(0,0,255)") -> 16711680

(xvbs "month(now)") -> 7 ;;返回当月(1~12)

(xvbs "now")

(xvbs "cdbl(\"333\")") -> 333.0

(xvbs "cstr(333)") ->"333"

(xvbs "Atn(-0.5 / Sqr(-0.5 * 0.5 + 1)) + 2 * Atn(1)") ->1.0472

(xvbs "lcase(\"abAB测试12\")") ->"abab测试12" ;;字符串转小写

(xvbs "Ucase(\"abAB测试12\")") ->"ABAB测试12" ;;字符串转大写

(xvbs "LoadPicture(\"d:\\tt.gif\")") ->#<VLA-OBJECT Picture 051bbb1c>

;;返回不带前导空格 (LTrim)、后续空格 (RTrim) 或前导与后续空格 (Trim) 的字符串副本

(xvbs "ltrim(\"  空格  \")") ->"空格  "

;; len 返回字符串内字符的数目

(xvbs "len(\"12空格ab\")") -> 6 ;; 汉字按1个计算.

(xxvbs "Split(\"12x空x格xab\", \"x\", -1, 1)")

(xvbs "StrReverse(\"测abab试\")")

-> "试baba测" ;; 字符倒排.

(mapcar '(lambda(x)(vlax-variant-value x))(vlax-safearray->list (xvbs "(Split(\"12;空;格;ab\",\";\"))")))

->("12" "空" "格" "ab")  ;; 按分隔符拆分字符串

"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2007-8-8 01:15:00 | 显示全部楼层

 

常用数学函数及功能

函数名

语法

功能

Abs

Abs(number)

返回一个数的绝对值

Sqr

Sqr(number)

返回一个数的平方根

Sin

Sin(number)

返回角度的正玄值

Cos

Cos(number)

返回角度的余玄值

Tan

Tan(number)

返回角度的正切值

Atn

Atn(number)

返回角度的反正切值

Log

Log(number)

返回一个数的自然对数

Int

Int(number)

取整函数,返回一个小于number的第一整数

FormatNumber

FormatNumber(number, numdigitsafterdecimal)

转化为指定小数位数(numdigitsafterdecimal)的数字

Rnd

Rnd()

返回一个从0到1的随机数

Ubound

Ubound(数组名,维数)

返回该数组的最大下标

Lbound

Lbound(数组名,维数)

返回最小下标数

 

 

各种转换函数及功能

函数

功能

CStr(variant)

将变量variant转化为字符串类型

CDate(variant)

将变量variant转化为日期类型

CInt(variant)

将变量variant转化为整数类型

CLng(variant)

将变量variant转化为长整数类型

CSng(variant)

将变量variant转化为single类型

CDbl(variant)

将变量variant转化为double类型

CBool(variant)

将变量variant转化为布尔类型

 

常用的字符串函数及功能

函数

语法

功能

Len

Len(string)

返回string字符串里的字符数目

Trim

Trim(string)

将字符串前后的空格去掉

Ltrim

Ltrim(string)

将字符串前面的空格去掉

Rtrim

Rtrim(string)

将字符串后面的空格去掉

Mid

Mid(string,start,length)

从string字符串的start字符开始取得length长度的字符串,如果省略第三个参数表示从start字符开始到字符串结尾的字符串

Left

Left(string,length)

从string字符串的左边取length长度的字符串

Right

Right(string,length)

从srting字符串的右边取得length长度的字符串

LCase

LCase(string)

将字符串里的所有大写字母转化成小写字母

UCase

UCase(string)

将字符串里的小写字母转化成大写字母

StrComp

Strcomp(string1,string1)

返回string1字符串与string2字符串的比较结果,如果两个字符串相同,返回0

InStr

InStr(string1,string2)

返回string2字符串在string1字符串中第一次出现的位置

Split

Split(string1,delimiter

将字符串根据delimiter拆分成一维数组,其中delimiter用于表示子字符串界限的字符,如果省略,使用空格(“”)当作分隔符

Replace

Replace(string1,find,replacewith)

返回字符串,其中指定的子字符串(find)被替换为另一个子字符串(replacewith)

 

常用日期和时间函数及说明

函数

语法

功能

Now

Now()

取得系统当前的日期和时间

Date

Date()

取得系统当前的日期

Time

Time()

取得系统当前的时间

Year

Year()

取得给定日期的年份

Month

Month(Date)

取得给定日期的月份

Day

Day(Date)

取得给定日期是几号

Hour

Hour(time)

取得给定时间是第几小时

Minute

Minute(time)

取得给定时间是第几分钟

Second

Second(time)

取得给定时间是第几秒

WeekDay

WeekDay(Date)

取得给定日期是星期几的整数
1 表示星期一
2 表示星期二
依次类推

DateDiff

DateDiff(“Var”, Var1,Var2)
Var:日期或时间间隔因子
Var1:第一个日期或时间
Var2:第二个日期或时间

计算两个日期或时间的间隔

DateAdd

DateAdd(“Var”, Var1,Var2)
Var:日期或时间间隔因子
Var1:日期或时间
Var2:日期或时间

对两个日期或时间作加法
DateAdd(“d”,10,Date()) 10天后是几号

FormatDateTime

FortDateTime(Date,vbShortDate)

转化为短日期格式

FortDateTime(Date,vblongDate)

转化为长日期格式

FortDateTime(Date,vbShortTime)

转化为短时间格式

FortDateTime(Date,vbLongTime)

转化为长时间格式

日期或时间间隔因子

间隔因子

yyyy

m

d

ww

h

s

说明

星期

小时

常用的检验函数及功能

函数

功能

VarType(variant)

检查变量vriant的值,函数值为该变量的数据子类型,0表示空,2表示整数,7表示日子,8表示字符串,11表示布尔变量,8192表示数组

IsNumeric(variant)

检查变量variant的值,如果variant是数值类型,则函数值为ture

IsNull(variant)

检查变量variant的值,如果variant为null,则函数值为ture

IsEmpty(variant)

检查变量的值,如果variant是empty,则函数值为ture

IsObject(variant)

检查变量variant的值,如果variant是对象类型,则函数值为ture

IsDate(variant)

检查变量variant的值,如果variant是日期类型,则函数值为ture

IsArray(variant)

检查变量variant的值,如果variant是数组类型,则函数值为ture

 

 楼主| 发表于 2007-8-8 01:19:00 | 显示全部楼层

算术运算符

算术

比较

逻辑

指数运算 (^)

相等 (=)

MSITStore:E:\!cad.cai\Script56.CHM::/html/vsoprnot.htm">逻辑非  Not

负数 (-)

不等 (<>)

MSITStore:E:\!cad.cai\Script56.CHM::/html/vsoprand.htm">逻辑与 And

乘法和除法 (*, /)

小于 (<)

MSITStore:E:\!cad.cai\Script56.CHM::/html/vsopror.htm">逻辑或  Or

整除 (\)

大于 (>)

MSITStore:E:\!cad.cai\Script56.CHM::/html/vsoprxor.htm">逻辑异或 Xor

求余运算 (Mod)

小于或等于 (<=)

MSITStore:E:\!cad.cai\Script56.CHM::/html/vsopreqv.htm">逻辑等价 Eqv

加法和减法 (+, -)

大于或等于 (>=)

MSITStore:E:\!cad.cai\Script56.CHM::/html/vsoprimp.htm">逻辑隐含 Imp

字符串连接 (&)

比较两个对象 (Is)

连接运算符 &

VBs函数速查

VBScript 函数

功能说明

例子


Abs (数值)

绝对值。一个数字的绝对值是它的正值。空字符串 (null) 的绝对值,也是空字符串。未初始化的变数,其绝对为 0

例子:ABS(-2000)
结果:2000

Array (以逗点分隔的数组元素)

Array 函数传回数组元素的值。

例子:
A=Array(1,2,3)
B=A(2)
结果: 2
说明:变量B为A数组的第二个元素的值。

Asc (字符串)

将字符串的第一字母转换成 ANSI (美国国家标准符号)字码。

例子:Asc("Internet")
结果:73
说明:显示第一字母 I 的 ANSI 字码。

CBool(表达式)

转换成布尔逻辑值变量型态(True 或False )

例子:CBool(1+2)
结果:True

CDate (日期表达式)

换成日期变量型态。可先使用 IsDate 函数判断是否可以转换成日 期。

例子: CDate (now( )+2)
结果:2000/5/28 10:30:59

CDbl(表达式)

转换成DOUBLE变量型态。

 

Chr ( ANSI 字码)

将ASCII 字码转换成字符。

例子: Chr ( 72 )
结果: H

CInt (表达式)

转换成整数变量型态。

例子: CInt ("3.12")
结果: 3

CLng (表达式)

转换成LONG 变量型态。

 

CSng (表达式)

转换成SINGLE 变量型态。

 

CStr (表达式)

转换成字符串变量型态。

 

Date ( )

传回系统的日期。

例子: Date
结果: 2000/5/13

DateAdd ( I , N , D )

将一个日期加上一段期间后的日期。 I :设定一个日期( Date )所加上的一段期间的单位。譬如 interval="d" 表示 N的单位为日。 I的设定值如下:
yyyy Year 年
q Quarter 季
m Month 月
d Day 日
w Weekday 星期
h Hour 时
n Minute 分
s Second

N :数值表达式,设定一个日期所加上的一段期间,可为正值或负值,正值表示加(结果为 >date 以后的日期),负值表示减(结果为 >date 以前的日期)。
D :待加减的日期。

例子: DateAdd ( "m" , 1 , "31-Jan-98")
结果: 28-Feb-98
说明:将日期 31-Jan-98 加上一个月,结果为 28-Feb-98 而非 31-Fe-98 。
例子: DateAdd ( "d" , 20 , "30-Jan-99")
结果: 1999/2/9
说明:将一个日期 30-Jan-99 加上 20 天后的日期。

DateDiff (I , D1 , D2[,FW[,FY>)

计算两个日期之间的期间。
I :设定两个日期之间的期间计算之单位。譬如 >I="m" 表示计算的单位为月。 >I 的设定值如:
yyyy > Year 年
q Quarter 季
m Month 月
d Day 日
w Weekday 星期
h Hour 时
m Minute 分
s Second 秒
D1 ,D2:计算期间的两个日期表达式,若 >date1 较早,则两个日期之间的期间结果为正值;若 >date2 较早, 则结果为负值。
FW :设定每周第一天为星期几, 若未设定表示为星期天。 >FW 的设定值如下:
0 使用 >API 的设定值。
1 星期天
2 星期一
3 星期二
4 星期三
5 星期四
6 星期五
7 星期六
FY :设定一年的第一周, 若未设定则表示一月一日那一周为一年的第一周。 >FY 的设定值如下:
0 使用 >API 的设定值。
1 一月一日那一周为一年的第一周
2
至少包括四天的第一周为一年的第一周
3 包括七天的第一周为一年的第一周

例子: DateDiff ("d","25-Mar-99 ","30-Jun-99 ")
结果: 97
说明:显示两个日期之间的期间为 97 天。

DatePart (I,D,[,FW[,FY>)

传回一个日期的之部份。
>I :设定传回那一部份。譬如 >I="d" 表示传回 部份为日。 >I 的设定值如下:
yyyy Year 年
q Quarter 季
m Month 月
d Day 日
w Weekday 星期
h Hour 时
m Minute 分
s Second 秒
D :待计算的日期。
>FW :设定每周第一天为星期几, 若未设定则表示为星期天。 >FW 的设定值如下:
0 使用 >API 的设定值。
1 星期天
2 星期一>3 星期二
4 星期三
5 星期四
6 星期五
7 星期六
FY :设定一年的第一周, 若未设定则表示一月一日那一周为一年的第一周。 >FY 的设定值如下:
0 使用 >API 的设定值。
1 一月一日那一周为一年的第一周
2 至少包括四天的第一周为一年的第一周
3 包括七天的第一周为一年的第一周

例子: DatePart ("m","25-Mar-99 ")
结果: 3
说明:显示传回一个日期 的月部份。

Dateserial (year,month,day)

转换(year,month,day) 成日期变量型态。

例子: DateSerial (99,10,1)
结果: 1999/10/1

DateValue ( 日期的字符串或表达式 )

转换成日期变量型态,日期从 January 1,100 到 December 31,9999 。格式为 month,day,and year 或 month/day/year 。譬如: December 30,1999 、 Dec 30,1999 、 12/30/1999 、 12/30/99

例子: DateValue ("January 1,2002 ")
结果: 2002/1/1

Day( 日期的字符串或表达式 )

传回日期的「日」部份。

例子: Day(" 12/1/1999 ")
结果: 1

Fix( 表达式)

转换字符串成整数数字型态。与 Int 函数相同。若为 null 时传回 null 。
Int (number) 与 Fix(number) 的差别在负数。如 Int (-5.6)=-6 , Fix(-5.6)=-5 。

例子: Fix(5.6)
结果: 5

Hex( 表达式)

传回数值的十六进制值。若表达式为 null 时 Hex( 表达式 )=null ,若表达式 =Empty 时 Hex( 表达式 )=0 。 16 进位可以加「 &H 」表示,譬如 16 进位 &H10 表示十进制的 16 。

例子: Hex(30)
结果: 1E

Hour( 时间的字符串或表达式 )

传回时间的「小时」部份。

例子: Hour("12:30:54 ")
结果: 12

InStr ([start,]string1,string2[,compare])

将一 个 字符串由左 而右与另一个比较,传回第一个相同的位置。
start 为从第几个字比较起,若省略 start 则从第一个字比较起, string1 为待寻找的字符串表达式, string2 为 待比较的字符串表达式, compare 为比较的方法, compare=0 表二进制比较法, compare=1 表文字比较法,若省略 compare 则为预设的二进制比较法。

例子: InStr("abc123def123","12")
结果: 4

InstrRev ([start,]string1,string2[,compare])

将一 个 字符串 由右而左与另一个比较,传回第一个相同的位置。
start 为从第几个字比较起,若省略 start 则从第一个字比较起, string1 为待寻找的字符串表达式, string2 为 待比较的字符串表达式, compare 为比较的方法, compare=0 表二进制比较法, compare=1 表文字比较法,若省略 compare 则为预设的二进制比较法。

例子: InstrRev ("abc123def123","12")
结果: 10

Int ( 表达式 )

传回一个数值的整数部份。与 Fix 函数相同。

例子: Int (5.6)
结果: 5

IsArray ( 变数 )

测试变量是 (True) 否 (False) 是一个数组。

例子: IsArray (3)
结果: False
说明:不是一个数组。

IsDate ( 日期或字符串的表达式 )

是否可以转换成日期。日期从 January 1,100 A.D. 到 December 31,9999 A.D 。

例子: IsDate ("December 31,1999 ")
结果: True
说明:可以转换成日期。

IsEmpty ( 变数 )

测试变量是 (True) 否 (False) 已经被初始化

例子: IsEmpty (a)
结果: True

IsNull ( 变数 )

测试变数是 (True) 否 (False) 不是有效的数据。

例子: IsNull ("")
结果: False
说明:是有效的数据。

IsNumeric ( 表达式 )

是 (True) 否 (False) 是数字。

例子: IsNumeric ("abc123")
结果: False
说明:不是数字。

LCase ( 字符串表达式 )

转换字符串成小写。将大写字母的部份转换成小写。字符串其余的部份不变。

例子: LCase ("ABC123")
结果: abc123

Left( 字符串表达式 ,length)

取字符串左边的几个字。 length 为取个字。 Len 函数可得知字符串的长度。

例子: Left("ABC123",3)
结果: ABC

Len( 字符串表达式 变量 )

取得字符串的长度。

例子: Len("ABC123")
结果: 6

LTrim ( 字符串表达式 )

除去字符串左边的空白字。 RTrim 除去字符串右边的空白字, Trim 函数除去字符串左右两边的空白字。

例子: LTrim ("456+" abc ")
结果: 456abc123

Mid( 字符串表达式 ,start[,length])

取字符串中的几个字。 start 为从第几个 字取起, length 为取几个字, 若略 length 则从 start 取到最右底。由Len 函数可得知字符串的长度。

例子: Mid("abc123",2,3)
结果: c12

Minute( 日期的字符串或表达式 )

传回时间的「分钟」部份。

例子: Minute("12:30:54")
结果:30

Month(日期的字符串或表达式)

传回日期的「月」部份。

例子:Month("12/1/2001")
结果:12

MonthName(month[,abbreviate])

传回月的名称。
month :待传回月名称的数字 1~12 。譬如, 1 代表一月, 7 代表七月。
abbreviate: 是 (True) 否 (False) 为缩写,譬如 March ,缩写为 Mar 。默认值为 False 。中文的月名称无缩写。

例子: MonthName (7)
结果:七月

Now()

传回系统的日期时间。

例子: Now()
结果: 2001/12/30 10:35:59 AM

Oct()

传回数值的八进位值。八进位可以加「 &O 」表示,譬如八进位 &O10 表示十进制的 8 。

例子: Oct(10)
结果: 12

Replace( 字符串表达式,findnreplacewith[,start[,count[,compare>])

将一个字符串取代 部份字。寻找待取代的原字符串 (find) , 若找到则被取代为新字符串 (replacewith) 。
find :待寻找取代的原字符串。
replacewith :取代后的字。
start :从第几个字开始寻找取代, 若未设定则由第一个字开始寻找。
count :取代的次数。 若未设定则所有寻找到的字符串取代字符 串全部被取代。
compare :寻找比较的方法, compare=0 表示二进制比较法, compare=1 表文字比较法, compare =2 表根据比较的 数据型态而定,若省略 compare 则为预设的二进制比较法。

例子: Replace("ABCD123ABC","AB","ab")
结果: abCD123abC

Right( 字符串表达式 ,length)

取字符串右边的几个字, length 为取几个字。 Len 函数可得知字符串的长度。

例子: Right("ABC123",3)
结果: 123

Rnd [(number)]

0~1 的 随机随机数值。 number 是任何有效的数值表达式。若 number 小于 0 表示每次得到相同的 随机随机数值。 number 大于 0 或未提供时表示依序得到下一个 随机随机数值。 >number=0 表示得到最近产生的 随机随机数值。为了避免得到相同的随机随机数顺序,可以于 Rnd 函数前加 Randomize 。

例子: Rnd
结果: 0.498498

Round( 数值表达式 [,D])

四舍五入。
D :为四舍五入到第几位小数,若省略则四舍五入到整数。

例子: Round(30635,1)
结果: 3.6

RTrim ( 字符串表达式 )

除去字符串右边的空白字。 LTrim 除去字符串左边的空白字, Trim 函数除去字符串左右两边的空白字。

例子: RTrim ("abc123 ")+"456"
结果: abc123456

Second( 时间的字符串或表达式)

传回时间的「秒」部份。

例子:Second("12:30:54")
结果:54

Space( 重复次数 )

得到重复相同的空白字符串。

例子: A"+Space (5)+"B
结果: A B
说明: A 和 B 中间加入五个空白字。

String( 重复次数,待重复的字 )

得到重复相同的字符串。

例子: String(5,71)
结果: GGGGG

StrReverse (String(10,71))

将一个字符串顺序颠倒。

例子: StrReverse ("ABC")
结果: CBA

Time()

传回系统的时间。

例子: Time
结果: 10:35:59 PM

TimeSerial (hour,minute,second)

转换指定的 ( hour,minute,second) 成时间 变量型态。

例子: TimeSerial (10,31,59)
结果: 10:31:59

TimeValue ( 日期的字符串或表达式 )

转换 成时间变量型态。日期的字符串或表达式从 0:00:00(12:00:00 A.M.) 到 23:59:59(11:59:59 P.M.) 。

例子: TimeValue (" 11:59:59 ")
结果: 11:59:59

Trim( 字符串表达式 )

除去字符串左右两边的空白字。

例子: Trim(" abc123 ")
结果: abc123

UCase ()

转换字符串成大写。将小写字母的部份转换成大写,字符串其余部份不变。

例子: UCase ("abc123")
结果: ABC123

VarType ( 变数 )

传回一个变量类型。与 TypeName 函数相同, VarType 传回变量类型的代码, TypeName 传回变量类型的名称。

例子: VarType ( "I love you!")
结果: 8

Weekday( 日期表达式 ,[FW])

传回星期几的数字。
FW :设定一周的第一天是星期几。若 省略则表 1( 星期日 ) 。
Firstdayfweek 设定值为: 1( 星期日 ),2( 星期一 ),3( 星期二 ),4( 星期三 ),5( 星期四 ),6( 星期五 ),7( 星期六 ) 。

例子: Weekday(" 1/1/2000")
结果: 7

WeekDayName (W,A,FW)

传回星期几的名称。
W :是 (True) 否 (False) 为缩写。譬如 March ,缩写为 Mar 。预设为 False 。中文的星期几名称无缩写。
FW :设定一周的第一天是星期几。 若省略表 1( 星期日 ) 。设定待传回星期几的名称,为一周中的第几天。
A : 1( 星期日 ),2( 星期一 ),3( 星期二 ),4( 星期三 ),5( 星期四 ),6( 星期五 ),7( 星期六 ) 。

例子: WeekDayName ("1/1/2000")
结果:星期六

Year()

传回日期的「年」部份。

例子: Year(" 12/1/2000 ")
结果: 2000

发表于 2007-8-8 16:01:00 | 显示全部楼层

厉害

发表于 2007-8-11 17:09:00 | 显示全部楼层
主要VBS里头的引号、反斜杠等都得在LSP里重新处理,这是个麻烦事。
发表于 2007-8-11 17:20:00 | 显示全部楼层

太强了吧

发表于 2007-9-1 12:45:00 | 显示全部楼层
本帖最后由 作者 于 2007-9-10 11:04:09 编辑

 

我已经把该功能移植到4.2版"编辑特性"工具中。

采纳理由:简单实用;

未采纳第2版计算器原因:源码未公开,不便于嵌入;不能确定是否有bug;程序复杂。

4.2版新增10余项实用功能:

1.图块替换
2.图块裁减(使用xclip命令)
3.属性块分解
4.自动线性比例
5.计算器
6.圆转椭圆
7.椭圆转长孔
8.自动字高
9.文本对齐
10.标注值固定
11.常用文本,前后缀
12直线拟合多义线
13.质心

演示动画,明经通道网速慢的请耐心等待:图片点击可在新窗口打开查看

详细内容:http://bbs.mjtd.com/forum.php?mod=viewthread&tid=61313

含相关程序的文件:

 楼主| 发表于 2007-9-1 19:47:00 | 显示全部楼层
希望你的软件越做越好
发表于 2013-3-26 22:59:00 | 显示全部楼层
厉害,很不错!
发表于 2022-1-2 13:22:09 | 显示全部楼层
你好向cad发送line命令画线的vbs怎么写呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-23 14:53 , Processed in 0.245223 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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