- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 VBA 在 Solidworks API 中运行一个挤压循环。每个挤压的高度由位图中像素的亮度决定。
在大多数情况下,代码按预期工作,但是大约四分之一的挤压根本不起作用。草图是制作的,但挤压不是。
我不知道这背后的原因,因为我没有看到不起作用的那些之间的任何模式。我在 FeatureExtrusion2 上运行了一个 quickwatch,在那些不起作用的情况下它返回了“Nothing”,而那些起作用的却没有返回值。
任何帮助都将不胜感激
这是完整的代码:
Option Explicit
Private Type typHeader
Tipo As String * 2
Tamanho As Long
res1 As Integer
res2 As Integer
Offset As Long
End Type
Private Type typInfoHeader
Tamanho As Long
Largura As Long
Altura As Long
Planes As Integer
Bits As Integer
Compression As Long
ImageSize As Long
xResolution As Long
yResolution As Long
nColors As Long
ImportantColors As Long
End Type
Private Type typePixel
b As Byte
g As Byte
r As Byte
End Type
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim Sketch As String
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Dim bmpHeader As typHeader
Dim bmpInfoHeader As typInfoHeader
Dim bmpPixel As typePixel
Dim nCnt As Long
Dim nRow As Integer, nCol As Integer
Dim nRowBytes As Long
Dim Count As Integer
Dim Brightness As Double
Count = 0
Dim fBMP As String
'read and open the bmp file
fBMP = "E:\bmp2xls\Sample.BMP"
Open fBMP For Binary Access Read As 1 Len = 1
Get 1, 1, bmpHeader
Get 1, , bmpInfoHeader
nRowBytes = bmpInfoHeader.Largura * 3
If nRowBytes Mod 4 <> 0 Then
nRowBytes = nRowBytes + (4 - nRowBytes Mod 4)
End If
'Start actual conversion, reading each pixel...
For nRow = 0 To bmpInfoHeader.Altura - 1
For nCol = 0 To bmpInfoHeader.Largura - 1
Get 1, bmpHeader.Offset + 1 + nRow * nRowBytes + nCol * 3, bmpPixel
If bmpPixel.r <> 0 Or bmpPixel.g <> 0 Or bmpPixel.b <> 0 Then 'ignore black pixels
Part.ClearSelection2 True
Count = Count + 1
Sketch = "Sketch" & Count
boolstatus = Part.Extension.SelectByID2("Front Plane", "PLANE", -7.12137837928797E-02, -5.58089325155595E-04, 3.79577007740569E-02, False, 0, Nothing, 0) 'select front plane
Part.SketchManager.InsertSketch True 'insert sketch
Dim vSkLines As Variant
vSkLines = Part.SketchManager.CreateCornerRectangle(0.005 * nCol, -0.005 * (bmpInfoHeader.Altura - nRow), 0, 0.005 * nCol + 0.005, -0.005 * (bmpInfoHeader.Altura - nRow) + 0.005, 0) 'sketch square
Part.SketchManager.InsertSketch True 'exit sketch
Part.ShowNamedView2 "*Trimetric", 8
boolstatus = Part.Extension.SelectByID2(Sketch, "SKETCH", 0, 0, 0, False, 4, Nothing, 0) 'select sketch
Dim myFeature As Object
Brightness = 0.05 - (0.299 * bmpPixel.r + 0.587 * bmpPixel.g + 0.114 * bmpPixel.b) / (255) * (0.05)
'extrude to height=Brightness
Set myFeature = Part.FeatureManager.FeatureExtrusion2(True, False, False, 0, 0, Brightness, 0, False, False, False, False, 0, 0, False, False, False, False, True, True, True, 0, 0, False)
Part.SelectionManager.EnableContourSelection = False
End If
Next
Next
Close
End Sub
最佳答案
检查亮度值。
也许如果您尝试使用 3DSketch 而不是 Sketch,上面的代码将起作用。
选择它,标记为 0。
关于vba - Solidworks VBA 中的某些循环挤压不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39567191/
我正在使用 matlab,而且对它还很陌生。我习惯了 Java 和其他语言。 一些背景:我正在操作图像,我使用 imread、imshow 等命令。我想将多个图像存储在一个数组中。 所以我要做的是 i
我想使用 GitLab 私下处理我的存储库,但出于可见性和可访问性目的,在 GitHub 上保留主分支的公共(public)副本。是否可以“自动化”GitHub 和 GitLab 远程主分支的镜像,但
我有一个大型的旧 git 存储库,其中包含许多托管在本地 Redmine 服务器上的二进制文件。我想将特定日期(6 个月或 12 个月前)之前的所有评论压缩在一起,以节省一些我的 repo 协议(pr
我有一个容器DIV 高度:400px; 宽度:80%; 我有一组不同尺寸的图片。 我如何指定图像: 始终保持纵横比 始终填充容器-div 与容器 div 的中心对齐 当 div 比图像宽时 图片的宽度
我有一个 nwjs 应用程序,它指向包含 ember 应用程序的网址。在 ember 应用程序内部,我需要访问 Node 上下文以查看用户正在运行的操作系统,以便进行更新检查。我在初始化程序中这样做,
可以运行以下代码并且不会出现错误: >>> np.squeeze(['']) array('', dtype='>> np.squeeze([[]]) array([], dtype=float64)
我有三个基本表 A、B 和 C。A 和 B 有多对多关系。所以我使用 A_B 的连接表。 C 与 A_B 具有一对多关系。这就是它们在使用 sequelize 时的定义方式。 A.associate
在 Git 中我有以下情况: o "ok" b6ca869 [my_branch*] | o "ok" 479d27c | o "ok" c80fad5 | o "ok" 8f7fe87 | o
我打算制作一个类似于 AudioSurf 的游戏对于 iOS,并在其中实现“生成特定参数的路由”。我使用了 Unity Procedural Example 中的 Extrude Mesh 示例和这个
我正在使用 AudioKit version 4.2在我的手机 (iPhone X) 上安装我的应用程序后,我收到此错误(见附图)- Xcode error when using AKRhodesPi
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
在优化 Lollipop Material 主题的应用时,我遇到了这个烦人的问题: 当对话框按钮上的长文本不适合按钮栏的总宽度时,这些按钮的文本不会像以前的主题中那样包含在多行中。相反,以下按钮被挤出
我正在尝试在 Windows7 主机 PC 上运行的 Linux debian VM 上配置挤压。以前它运行正常,我能够记录 AUT 并生成脚本。但是当我重新启动虚拟机时,突然出现此错误,并且我无法解
我是一名优秀的程序员,十分优秀!