CamBam

FeedBack => CamBam plus feedback => Topic started by: lloydsp on November 27, 2016, 03:17:46 am



Title: STOP writing plugins!!!
Post by: lloydsp on November 27, 2016, 03:17:46 am
I now think I know why Andy hasn't yet released the newest beta. 

You guys keep writing IMPORTANT plugins, and I think Andy is trying to add those functions to CB in a rational way.

If you just STOP, he won't have anything more to add, and we'll see the new code sooner!

PLEASE STOP BEING USEFUL, and just go back to being 'users' for a while!

 ;D

Lloyd


Title: Re: STOP writing plugins!!!
Post by: EddyCurrent on November 27, 2016, 09:03:44 am
Noooooooo !

Andy will have to stop trying to add them, there's nothing wrong with leaving them as plugins.  ;D

Having said that, I'm getting grief from the missus again  to, "GET OFF YOUR ARSE AND DO SOMETHING USEFUL !" :(


Title: Re: STOP writing plugins!!!
Post by: grzgrz on November 27, 2016, 09:11:48 am
I think that the coders among us write their plugins to speed up the CamBam's development process. I wonder who's going to add a 4th axis feature first...  ;)

Grzegorz


Title: Re: STOP writing plugins!!!
Post by: Garyhlucas on November 27, 2016, 18:28:02 pm
I can't help but think it might even go faster if there was a mechanism to reward peoples efforts. Writing code may be fun, but some of us use programs like CamBam to make a buck.  Years ago I paid a young guy to write me a Rhino plugin and it was worth a lot to me. We use a program called AllOrders to manage Work Orders, Sales Orders, Purchase Orders, Bills of materials etc. We paid a guy $500 for a custom Excel Macro used to import BOMs from SolidWorks into AllOrders. We paid the AllOrders vendor $1000 for a program to print Sub-Asssembly bin labels. This has made us hugely efficient, at way less cost than one of the big programs. CamBam works the same way for us.

I get that this is Andy's product and forum, maybe a yearly user fee for professional users could work. Everyone else does that. For us it is thousands of dollars a year.

Just thinking out loud here.


Title: Re: STOP writing plugins!!!
Post by: dh42 on November 27, 2016, 21:07:57 pm
Hello,

Quote
I wonder who's going to add a 4th axis feature first...

Andy I think ; there is at least a way to to the same as Wrapper in the alpha version.

Quote
You guys keep writing IMPORTANT plugins

Impossible is an addiction  ;D ;D

++
David


Title: Re: STOP writing plugins!!!
Post by: grzgrz on November 28, 2016, 08:42:26 am
Hi there,

@David
What I had in mind was an automated rotary machining solution that wouldn't involve wrapping. Also, I know it's already possible to hand-code CamBam for indexed rotary milling, but it's a little tedious.

@Gary
I've heard of the so-called bounties for completing coding tasks. However, I do hope CB won't become cloud-based software, or something you have to buy once and then pay its annual 'maintenance' fees or it stops working.

Grzegorz


Title: Re: STOP writing plugins!!!
Post by: Bob La Londe on November 28, 2016, 17:06:20 pm

I've heard of the so-called bounties for completing coding tasks. However, I do hope CB won't become cloud-based software, or something you have to buy once and then pay its annual 'maintenance' fees or it stops working.


I agree.  I don't mind paying for an upgrade that adds real functionality (I have four versions of ViaCad), but renting software galls like stainless on stainless.  I also think bug fixes should be free.  Not only available incorporated in the next paid upgrade.  



Title: Re: STOP writing plugins!!!
Post by: annuello on November 28, 2016, 20:08:37 pm
Also thinking out loud...

As a hobby machinist who may one day want to have the hobby pay for itself the "one off purchase price" with free upgrades approach is very attractive, and was a large consideration in my original purchase.  Cash flow (and available time) is low and finds subscription-based software a daunting commitment.

Rewarding plugin developers could be complex, considering the amount of idea/code sharing that occurs between developers.  Potentially an intellectual property web of mess.  I see the enthusiastic plugin development and sharing as a "value add" to the base product.  I hope that the extensibility of plugins brings more customers to Andy.  As it currently stands, the plugins bring extra value to us all.

In another hobby of mine I pay $5 per year for a forum subscription to a user group.  This modest "cup of coffee" price gives extra access to subscriber-only content.  It is up to the forum individual as to whether they want to upload contributions to the public or subscriber-only area, and there are a few restrictions on non-subscribers, like monthly download limits.  The community still remains friendly to non-subscribers and helps each other out regardless of subscription status.  If "the answer" is in the subscription-only section a gentle nudge is offered to the non-subscriber.  A modest fee of this amount is achievable for most small time hobby folk.  And it's a subscription to the forum, not the product - lack of ongoing subscription does not jeapodise their main investment.  Given the continual proliferation of CamBamplugins, there would be value in having such access year-in year-out.

Annuello.


Title: Re: STOP writing plugins!!!
Post by: Bubba on November 28, 2016, 20:38:00 pm
Noooooooo !

Andy will have to stop trying to add them, there's nothing wrong with leaving them as plugins.  Grin
********************************
I for one, use CB as hobby user exclusively, never make a dime with it because I don't want to. Yes, I make ton of  different things for my entertainment and as gifts to my fiends and family. I have offers to make things for sale but refused, I retired for a reason, don't need nor want commitments.. Personally, I don't have a problem with commercial version (plugins and scripts incorporated) and/or hobby version with plugins and scripts as they are right now.. ;) So because the commercial version takes longer Andy should release the hobby version now.. ;D ;D ;D


Title: Re: STOP writing plugins!!!
Post by: EddyCurrent on November 28, 2016, 21:17:39 pm
A subscription system would totally ruin it for me, and just because other vendors use that idea, it doesn't make it right.
I'm not into 'the cloud', streaming of music etc. I like to buy something and own it, then keep using it until it's either knackered or I choose to replace it.

Here's an example, I use a DAW (digital audio workstation) called Reaper, you buy it and it's extremely cheap compared to other similar products but is very powerful too, a bit like CamBam. Updates are free until a major update occurs where the version number changes from say, 3 to 4 then you get an upgrade discount if a previous owner or a full purchase price if not.

But if you don't want to upgrade, it keeps on working without any restrictions other than there will be no further updates for that version.

I vote to leave the CamBam model just as it is  :D


Title: Re: STOP writing plugins!!!
Post by: onekk on November 29, 2016, 07:06:13 am
The most important add-on to CamBam, IMHO.

- a "stable" and WELL documented API
- some feature in the CAD section "like dashed and dotted lines" to improve the design phase.
- 3D CAM improvements (the core of CamBam is the CAM part)
- a mechanism like "autocad" console to input some operations by hand, when drawing "precisely" the mouse is not enough, if i wanto to do a 4,124x4,125 cm  square (sorry I'm Italian so , is the decimal point) is most easy to "write" "Rec 0,100 4,125,4,125" than create a dummy rectangle and then adjust the properties as needed.

Regards



Title: Re: STOP writing plugins!!!
Post by: Bubba on November 29, 2016, 12:08:55 pm
I vote to leave the CamBam model just as it is  :D
*********************************
+1 !  ;)


Title: Re: STOP writing plugins!!!
Post by: kvom on November 29, 2016, 12:49:06 pm
I have not found any part I've wanted to make on my mill that I can't do with CB as-is.  I do 99% of my CAD outside either with Draftsight or Solidworks.  For me bug fixes are more important that new features, and the plugin building community seems to be coming up with good stuff. 

That said, the lathe functionality would probably be my preference for major improvement, even though I already bought another CAM product for that. 



Title: Re: STOP writing plugins!!!
Post by: dh42 on November 29, 2016, 16:48:13 pm
Hello,

Quote
- a mechanism like "autocad" console to input some operations by hand, when drawing "precisely" the mouse is not enough, if i wanto to do a 4,124x4,125 cm  square (sorry I'm Italian so , is the decimal point) is most easy to "write" "Rec 0,100 4,125,4,125" than create a dummy rectangle and then adjust the properties as needed.

http://www.atelier-des-fougeres.fr/Cambam/Aide/Plugins/Numeric%20Polyline.html

++
David


Title: Re: STOP writing plugins!!!
Post by: onekk on November 29, 2016, 17:20:34 pm
Hello,

Quote
- a mechanism like "autocad" console to input some operations by hand, when drawing "precisely" the mouse is not enough, if i wanto to do a 4,124x4,125 cm  square (sorry I'm Italian so , is the decimal point) is most easy to "write" "Rec 0,100 4,125,4,125" than create a dummy rectangle and then adjust the properties as needed.

http://www.atelier-des-fougeres.fr/Cambam/Aide/Plugins/Numeric%20Polyline.html

++
David


David, I know of the existence of this plugin, but my thinking is to have a similar approach built in CamBam. (and Working with Linux)

The stable and well documented API is for having the possibility to write the plugins in a more stable manner, there is some features in the interface, youo can ave Arc2F in a polyline, but apparently you can't create them (or at least i caouldn't find a manner to to so).

very soon I will "publish" my new version of the BoxAuto Plugin (totally driven by angles) and you will appreciate some curved feature of some sides (the reduced).

My intention is to draw exagonal and octagonal, or even more poligonal shapes and all the logic has to be driven by starting point, length and angle (plus some embedded logic to create the tenons), all has to be driven by the angle of the reference line (in a square is simple, but in a hexagon is a little different), some functions in Cambam maybe could do the math, but I have opted to use the logic outside usign only Point2F (Or Point3F), Line2F and Polyline.Add() line or point  hopiing to avoid future API change.


 


Title: Re: STOP writing plugins!!!
Post by: dh42 on November 29, 2016, 17:38:20 pm
Hello

Quote
you can ave Arc2F in a polyline, but apparently you can't create them (or at least i couldn't find a manner to to so).

To create an arc in a polyline, if you works with point, just add a "bulge" value for the first point of the arc ;

in the polylineitem, there is a bulge variable.

  public double Bulge;

if you works with segments then you can directly add an arc2F, a line2F or a line3F to a polyline

  public void Add(Arc2F arc, double tolerance);
    public void Add(Line2F line, double tolerance);
    public void Add(Line3F line, double tolerance);



I don't know how to convert an arc to a bulge value with math, but in the arc2F, there is a readonly bulge value.

public double Bulge { get; }

so I think we have all what is needed to draw what we want.

http://www.atelier-des-fougeres.fr/Cambam/Aide/API%20Doc/Cambam_cad_dll/Cambam_cad/Polyline/Polyline_point_property.png

++
David


Title: Re: STOP writing plugins!!!
Post by: jk on November 29, 2016, 21:04:28 pm
A bit offtopic, but the bulge is just tan (arc sweep / 4),
Arc segment may be inserted in polyline via Add(Point3F, bulge)

I think geometry structures (PointxF, LinexF, ArcxF etc) and Polyline API are stable enough and unlikely to be changed. Higher-level APIs is the other matter of course.

I do all CAD work in other software, so in CB my CAD-work is a small adjustments to account for the machining strategy, then comes the CAM :-) I think CAD-mode of CB (+ a number of plugins) is perfectly adequate for such workflow.


Title: Re: STOP writing plugins!!!
Post by: onekk on November 30, 2016, 10:18:00 am
Hello

Quote
you can ave Arc2F in a polyline, but apparently you can't create them (or at least i couldn't find a manner to to so).

To create an arc in a polyline, if you works with point, just add a "bulge" value for the first point of the arc ;

in the polylineitem, there is a bulge variable.

  public double Bulge;

if you works with segments then you can directly add an arc2F, a line2F or a line3F to a polyline

  public void Add(Arc2F arc, double tolerance);
    public void Add(Line2F line, double tolerance);
    public void Add(Line3F line, double tolerance);



I don't know how to convert an arc to a bulge value with math, but in the arc2F, there is a readonly bulge value.

public double Bulge { get; }

so I think we have all what is needed to draw what we want.

http://www.atelier-des-fougeres.fr/Cambam/Aide/API%20Doc/Cambam_cad_dll/Cambam_cad/Polyline/Polyline_point_property.png

++
David


But in Linux there is no Arc2F Object,

Code:
ap1 = new Point3F (start.X, start.Y, 0);
ap2 = new Point3F (end.X, end.Y, 0);
poly1.Add (ap1, s_bulge);
poly1.Add (ap2, s_bulge);

This code works, to add an arc, or better a "bulged" segment, otherwise the only Arc is the Arc entity.

From now I'm quite happy with CamBam API, but  some it has soem quirks, probably due to Mono, but if .NET is a "standard" not all the MS .NET parts are implemented in Mono due to Licensing problems, so we have to struggle with these problems.


Title: Re: STOP writing plugins!!!
Post by: dh42 on November 30, 2016, 18:46:22 pm
Hello,

Quote
But in Linux there is no Arc2F Object,

You are sure ? .. strange  ???

Arc is in CamBam.CAD.dll, but Arc2F is in CamBam.Geom.dll (and also Circle2F, line2F .. etc )

++
David


Title: Re: STOP writing plugins!!!
Post by: onekk on December 01, 2016, 07:24:45 am
I've to be blind, now I could find it.

Generally I search the object by name or by clicking on the istance of the IDE and it goes to te definition (although is only a mere list of properties name and composition) like this

Code:
namespace CamBam.Geom
{
[Serializable]
public struct Arc2F : IBSPItem
{
//
// Fields
//
public Point2F Center;

public Point2F P1;

public Point2F P2;

public RotationDirection Direction;

//
// Static Properties
//
public static Arc2F Undefined {
get;
}

//
// Properties
//
public double Bulge {
get;
}

public Point2F Midpoint {
get;
}

public double Radius {
get;
}

public double Start {
get;
}

public double Sweep {
get;
}

//
// Constructors
//
public Arc2F (Point2F center, double radius, double start, double sweep);

public Arc2F (Point2F center, Point2F p1, Point2F p2, RotationDirection dir);

public Arc2F (Point2F p1, Point2F p2, double sweep);

//
// Static Methods
//
public static double _CalcPolyArcSweep (Point2F p1, Point2F p2, Point2F pmid);

public static Arc2F GetArcFromMidpoint (Point2F p1, Point2F p2, Point2F pmid);

//
// Methods
//
public bool AngleWithinArc (double angle, double tolerance);

public Line2F ArcIntersect (Arc2F arc);

public Line2F ArcIntersect (Arc2F arc, double tolerance);

public Line2F CircleIntersect (Circle2F circle);

public Line2F CircleIntersect (Circle2F circle, double tolerance);

public double DistanceToPoint (Point2F p);

public ArcBulgeDirection GetBulgeDirectionLeftRight ();

public ArcBulgeDirection GetBulgeDirectionUpDown ();

public void GetExtrema (ref Point2F min, ref Point2F max);

public double GetPerimeter ();

public void Invert ();

public bool IsInside (Rect2F rect);

public Line2F LineIntersect (Line2F line, double tolerance);

public Point2F NearestPoint (Line2F line, ref double distance, double tolerance);

public Point2F NearestPoint (Arc2F arc, ref double distance, double tolerance);

public Point2F NearestPoint (Point2F p, ref double distance);

public Vector2F P1Tangent ();

public Vector2F P2Tangent ();

public bool RadiusOffset (double delta);

public Line2F RayIntersect (Line2F line, double tolerance);

public bool RegionInside (Rect2F rect);

public Point3FArray RenderToPoints (double tolerance);

public Arc2F[] SplitAtPoint (Point2F p);

public double SweepDiff (Point2F p);

public bool VectorInsideArc (Vector2F v);
}
}

Sorry for the inconveninence.