我目前正在开发一个新的Solidworks任务窗格,主要实现一些我用更方便的格式编写的"旧"宏.其中一些需要通过文本框进行用户输入,我希望将其包含在任务窗格中.
问题是,我找不到编写临时文件或将这些字符串导入我的宏的方法(我宁愿不花时间重写)
有没有其他方法将这些字符串发送到我的宏?Addin在C#中,我目前正在使用Solidworks"RunMacro2"方法.
谢谢!
编辑:在下面添加一些代码片段.有问题的主要宏是用于在整个程序集中传播自定义属性文件.
namespace Efficiency_Interface
{
[ComVisible(true)]
[ProgId(ProjMan_Tab_PROGID)]
public partial class Project_Management_Tab : UserControl
{
SwAddin SolidRun = new SwAddin();
public const string ProjMan_Tab_PROGID = "Proj Management";
public const string scratchFile = "C:\\keyStoneAddinScratch.txt";
StreamWriter writeText = new StreamWriter(scratchFile);
public Project_Management_Tab()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
foreach (var textBox in this.Controls.OfType<TextBox>())
{
writeText.WriteLine(textBox.Text);
}
writeText.Close();
SolidRun.runGen("proc");
}
}
}
Run Code Online (Sandbox Code Playgroud)
以上是我的任务窗格的基本代码.下面是我的主要插件类的代码片段,它还包含我的其他按钮的代码.
public void runCreate4Pack()
{
iSwApp.RunMacro2(macroPath + "CREATE 4 SIZE PACKAGE.swp", "", "", 0, …
Run Code Online (Sandbox Code Playgroud) 我对一个constexpr
概念感到困惑,因为我读过的constexpr
是在编译时进行评估,因此它对于性能优化与正常情况相比非常有用const
.
constexpr int i = 0;
constexpr int& ri = i;
Run Code Online (Sandbox Code Playgroud)
上面的代码返回一个错误"从'const int'类型的表达式中无效初始化类型'int&'的引用",为什么?
此外,下一个代码有一个错误:
constexpr int i = 0;
constexpr int* ri = &i;
Run Code Online (Sandbox Code Playgroud)
如果我替换了constexpr
关键字const
,以上所有都正常工作.
我是C#的新手 - 这几乎是我的第一个程序.我正在尝试创建一些公共静态变量和常量,以便在程序中的任何位置使用.我试过的错误方法是将它们声明在同一命名空间中的一个单独的类中,但它们不在主程序的上下文中.这是一个WPF应用程序.代码如下所示:
namespace testXyz
{
class PublicVars
{
public const int BuffOneLength = 10000;
public static int[] Buff1 = new int[BuffOneLength];
public const int BuffTwoLength = 2500;
public static int[] Buff2 = new int[BuffTwoLength];
private void fillBuff1()
{
Buff1[0] = 8;
Buff1[1] = 3;
//etc
}
private void fillBuff2()
{
Buff2[0] = 5;
Buff2[1] = 7;
//etc
}
}
}
Run Code Online (Sandbox Code Playgroud)
第二档:
namespace testXyz
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public static int …
Run Code Online (Sandbox Code Playgroud) 我有一个斐波那契问题,我想计算第n个斐波那契,并想要它的最后一位数字(我将在%10时获得的数字)。n
将被给出,并且可以高达10 ^ 18。
unsigned long long int nthfib(long long int n) {
double phi = (1 + sqrt(5)) / 2;
return round(pow(phi, n-1) / sqrt(5));
}
Run Code Online (Sandbox Code Playgroud)
上面的代码,对于大n,例如1024,给出了很大的数字,我无法将其存储在变量中并找到其%10。
由于时间是一个问题,我需要O(1)中的解决方案。