乐筑天下

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

[编程交流] VBA for AutoCAD的起点

[复制链接]

29

主题

519

帖子

477

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
163
发表于 2022-7-6 22:52:01 | 显示全部楼层
一般来说,VBA中的代码行数要比LISP中的代码行数多得多,而且VBA中的代码行数也要多得多。NET比VBA中的。
 
你需要计划好你想做什么,然后逐段编写代码来完成。
 
要打开ASCII文件,请遵循Joe Sutphin的书第18章第395页中给出的示例来选择并打开文件。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 22:53:11 | 显示全部楼层
说得好,小家伙。
 
 
唯一(常见?)需要的代码行数例外,其中。NET的优点是,当通过程序集引用为给定类型实现自定义(固有静态)扩展方法时。。。我确实跳过了VBA(使用Visual LISP-->.NET),但我不相信VBA有这个功能,是吗?
 
此线程中最近的示例,用于上下文。
 
干杯
回复

使用道具 举报

56

主题

284

帖子

231

银币

后起之秀

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

铜币
289
发表于 2022-7-6 22:57:39 | 显示全部楼层
用VBA编程比用AutoLISP编程要困难得多,但这次我很幸运,我将以这种方式向Sitphin Joe的家人致以成千上万的感谢和良好的健康,他们为我们提供了他的工作。
 
解决第一个问题:它不是最好的,但它有效。
  1. Private Declare Function [color=red]GetOpenFileName [/color]Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long ' V : 23.01.2014 .
  2. Private Type [color=red]OPENFILENAME [/color]' V : 23.01.2014 .
  3. lStructSize As Long
  4. hwndOwner As Long
  5. hInstance As Long
  6. lpstrFilter As String
  7. lpstrCustomFilter As String
  8. nMaxCustFilter As Long
  9. nFilterIndex As Long
  10. lpstrFile As String
  11. nMaxFile As Long
  12. lpstrFileTitle As String
  13. nMaxFileTitle As Long
  14. lpstrInitialDir As String
  15. lpstrTitle As String
  16. flags As Long
  17. nFileOffset As Integer
  18. nFileExtension As Integer
  19. lpstrDefExt As String
  20. lCustData As Long
  21. lpfnHook As Long
  22. lpTemplateName As String
  23. End Type ' OPENFILENAME
  24. '' ---------------------------------------------------------------------------
  25. Public Function [color=red]FGetFiled[/color](DialogTitle As String, InitialDir As String, Extensie As String) As String ' V : 23.01.2014 .
  26. ' Functie Preluare Cale Fisier !
  27. ThisDrawing.Utility.Prompt (vbNewLine + "   FGetFiled  :  V : 23.01.2014 ;  START !")
  28. Dim tipF As String
  29. Dim OFName As OPENFILENAME
  30. Dim Filter As String
  31. Select Case Extensie
  32. Case "txt", "coo", "rad":  tipF = "TEXT"
  33. Case "csv":  tipF = "CSV"
  34. Case Else:  tipF = "UNKNOWN"
  35. End Select
  36. ' Filter = "Drawing Files (*.dwg)" + Chr$(0) + "*.dwg" + Chr$(0) + "All Files (*.*)" + Chr$(0) + "*.*" + Chr$(0)
  37. Filter = tipF + " Files (*." + Extensie + ")" + Chr$(0) + "*." + Extensie + Chr$(0) + "All Files (*.*)" + Chr$(0) + "*.*" + Chr$(0)
  38. ' InitialDir = "C:\Program Files\AutoCAD 2006\Sample"
  39. ' DialogTitle = "Open a FILE !"
  40. OFName.lStructSize = Len(OFName) 'Set the Structure size
  41. OFName.hwndOwner = 0 'Set the Owner window
  42. OFName.lpstrFilter = Filter 'Set the Filter
  43. OFName.nMaxFile = 255 'Set the Maximum number of Chars
  44. OFName.lpstrFile = Space(254) 'Create a Buffer
  45. OFName.lpstrFileTitle = Space$(254) 'Create a Buffer
  46. OFName.nMaxFileTitle = 255 'Set the Maximum number of Chars
  47. OFName.lpstrInitialDir = InitialDir 'Set the initial Directory
  48. OFName.lpstrTitle = DialogTitle 'Set the dialog Title
  49. OFName.flags = 0 'No extra Flags
  50. If GetOpenFileName(OFName) Then 'Show the 'Open File' dialog
  51.   FGetFiled = Trim(OFName.lpstrFile)
  52. Else
  53.   FGetFiled = "?"
  54. End If
  55. 'MsgBox OutputStr
  56. ThisDrawing.Utility.Prompt (vbNewLine + "   FGetFiled  :  END !")
  57. End Function ' FGetFiled

 
解决第二个问题:
 
  1. 4

 
谢谢你们!
Costin
回复

使用道具 举报

29

主题

519

帖子

477

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
163
发表于 2022-7-6 23:01:27 | 显示全部楼层
 
很好,你已经开始工作了。当你读完文件后,别忘了关闭它。
回复

使用道具 举报

56

主题

284

帖子

231

银币

后起之秀

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

铜币
289
发表于 2022-7-6 23:07:29 | 显示全部楼层
我应该担心吗?
 
http://usa.autodesk.com/adsk/servlet/ps/dl/item?siteID=123112&id=14889082&linkID=9240617
 
从这里写的内容来看,VBA似乎将消失(我现在开始学习它)。
AutoLISP live!
回复

使用道具 举报

29

主题

519

帖子

477

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
163
发表于 2022-7-6 23:08:19 | 显示全部楼层
 
该链接指的是AutoCAD 2011,现在Autodesk表示,使用新的VB7,他们将继续支持VBA,因此您不必太担心。但微软决定放弃VBA的可能性总是存在的,那么Autodesk也会放弃VBA。在这方面,我们将继续努力。NET route或LISP更安全。在VBA中学习的大部分内容都可以在中使用。NET学习VBA不会浪费时间。
回复

使用道具 举报

56

主题

284

帖子

231

银币

后起之秀

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

铜币
289
发表于 2022-7-6 23:13:02 | 显示全部楼层
最好在Form1上定义“Frime1”,在“Form2”上定义空“Frime2”,并将其内容“Frime2”(空)替换为“Frime1”到“Form2”?
 
http://www.vbforums.com/showthread.php?372272-合并-2-Forms-Into-1!
 
该如何获奖?
 
我可以设置格式属性,以便借用Windows设置中按钮的形状和外观。。。?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 09:09 , Processed in 0.714736 second(s), 65 queries .

© 2020-2025 乐筑天下

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