水吉空 发表于 2018-10-26 15:34:00

AUTOlisp开发CAD转战VBA开发CAD第四天

选择圆变半径
Public Sub by()
'选择圆半径变为原来的2倍
On Error Resume Next '出现错误接着往下走,但选择为空时
Dim ent As AcadEntity
Dim pt As Variant
ThisDrawing.Utility.GetEntity ent, pt, "请选择对象" '交互选择返回的对象就是定义的那个变量
If ent.ObjectName = "AcDbCircle" Then '判断选择的是不是圆
ent.Radius = ent.Radius * 2
Else
MsgBox ("您选择的不是圆")
End If
End Sub
(defun c:tt ()
      (vl-load-com)
      (defun *error* (msg)
                (alert "您没有选择到东西哦,请重新选择:")
                (princ msg)
                (princ)
      );错误函数没有继续往下走的功能,只有提示错误功能
      (setq ent (Vlax-Ename->Vla-Object (car (entsel "请选择对象"))))
      (if (= (Vlax-Get ent 'ObjectName ) "AcDbCircle")
                (Vlax-Put-Property ent 'Radius (* (Vlax-Get ent 'Radius ) 2) )
                (alert "你选择的不是圆")
      )
      (princ)
)
======================= 水吉空出品============================
                                           微信公众号:通信工程与CAD
                              


oldnewlearn 发表于 2018-12-2 19:57:00

挺好,请继续。

wuyunpeng888 发表于 2018-12-4 17:02:00

VL和VBA用的是相同的方法

水吉空 发表于 2018-12-5 11:03:00


是的,VL基本上都是用了vba的属性和方法

落叶交给了风 发表于 2019-5-10 14:37:00

看了你的贴我对转战vlisp有点信心了哈哈哈
页: [1]
查看完整版本: AUTOlisp开发CAD转战VBA开发CAD第四天