我正在尝试绘制这个(空心)形状:

圆圈实际上是不同的直径,我想像这样将连接管的中间缩进(但这不是必需的)。我可以通过逐段绘制来伪造形状,但是我在缩小它时遇到了问题,而且感觉不像 OpenSCAD 想要它那样完成(即长达一小时的 CSG 生成)。有没有更好的方法来做到这一点?
:
for(i = [0:180]) {
rotate([0,i,0])
translate([26,0,0])
difference() {
cylinder(r=10 + (0.083 * i),h=.1);
cylinder(r=8 + (0.083 * i),h=.1);
}
}
Run Code Online (Sandbox Code Playgroud) 我将字典定义为<int, IEnumerable<char>>.让我们说数据填充如下:
1, a b c d e
2, f g h i j
3, k l m n o
Run Code Online (Sandbox Code Playgroud)
如果我有一个由1和3组成的IEnumerable,那么LINQ会返回什么样'a b c d e k l m n o'(假设空间代表迭代).
我有以下对象:
public class User {
int Id { get; set; }
string Name { get; set; }
IList<Job> Jobs { get; set; }
}
public class Job {
int Id { get; set; }
DateTime StartTime { get; set; } // other fluff values here
User User { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我已经在User和Job(因为它合适)之间建立了多对多的关系,但是我想Job.Id在创建它们时指定.我可以保证,尽管可能实体不能,但Ids是唯一的,因为它们是另一个系统中另一个表的PK.
以下代码说明了我想要的工作:
var user = db.Users.Create ();
var job = new Job();
job.Id = 42; // id from other service
user.Jobs.Add (job); …Run Code Online (Sandbox Code Playgroud) 我用Machine.Fakes打了一个僵局.我无法弄清楚如何仅out使用Machine.Fakes设备模拟参数.由于RhinoMocks 中存在错误,我将mfakes适配器切换为FakeItEasy.据我所知,任何适配器都应该是可互换的.
问题是这导致"out"测试失败,看起来像这样的东西不再编译,因为Arg是Rhino.Mocks.
The<IMembershipService>()
.WhenToldTo(x => x.CreateUser(Param<string>.IsAnything,
Param<bool>.IsAnything,
Param<object>.IsAnything,
out Arg<MembershipCreateStatus>
.Out(MembershipCreateStatus.UserRejected)
.Dummy))
.Return(user);
Run Code Online (Sandbox Code Playgroud)
我尝试使用"虚拟"局部变量,设置为原始Arg<T>参数设置的相同值,但这导致我的测试失败 - 好像值没有被传递! Arg<T>真的有解决方案,但我不能再使用它了,因为它是Rhino.Mocks的一部分.

现在,我们的模型/现场演示使用图像来实现这种效果(包括按钮文本).由于所有标准原因,这都不太理想.除了讨厌的外边界外,我可以把一切都搞定.我真的不想在我的文档中添加标记只是为了拥有它.
我在jsfiddle上有我的测试代码,虽然它在我的本地机器上没有那么好用:http: //jsfiddle.net/Axtjm/
tldr:如何添加这样的插入边框并保留圆角而不需要额外的标记.