Horizon EDA Version 1.0! - Page 1
Forum section: electronics / general

author: Lukas
author_rank: Frequent Contributor
timestamp: January 29, 2020, 09:18:20 pm
content: Hello everyone,After 3 years of off-and-on development, what began ashttps://www.eevblog.com/forum/eda/new-work-in-progress-eda-package!/ can finally be recommended for general usage. Seehttps://horizon-eda.readthedocs.io/en/latest/feature-overview.htmlfor a list of features andhttps://horizon-eda.readthedocs.io/en/latest/installation.html#stable-releasefor installation instructions.Have fun!

author: bandgap
author_rank: Contributor
timestamp: January 30, 2020, 03:10:01 am
content: Just installed on Manjaro and runs great. I wasn't expecting as much functionality as what you have now. I'm very impressed and may actually give this go on an actual project - mainly because I love how you've structured the library management!-Clayton

author: alexanderbrevig
author_rank: Frequent Contributor
timestamp: February 02, 2020, 08:11:36 pm
content: Congrats!I hope to get some time soon to test it out again and maybe contribute

author: magtux
author_rank: Newbie
timestamp: February 10, 2020, 11:04:56 am
content: Checked it out. It's very good. I'd pay to use something like this. Amazing work man.

author: BigBoss
author_rank: Regular Contributor
timestamp: February 10, 2020, 10:20:56 pm
content: Its' Schematic Features look more estethique than some commercial ones..I've liked it..Layout looks quite promising and if you continue to improve, it may be alternative.

author: Lukas
author_rank: Frequent Contributor
timestamp: February 11, 2020, 12:17:09 am
content: Thanks for the nice words everyoneQuote from: BigBoss on February 10, 2020, 10:20:56 pmYeah, it's pretty embarrassing what some big dollar EDA vendors try to sell as a schematic editor...What's the thing you're missing in the board editor?

author: Warhawk
author_rank: Frequent Contributor
timestamp: February 12, 2020, 11:30:23 am
content: Quote from: Lukas on February 11, 2020, 12:17:09 am

author: dr.diesel
author_rank: Super Contributor
timestamp: February 12, 2020, 03:04:14 pm
content: Wow great job!What are the long term plans?

author: Lukas
author_rank: Frequent Contributor
timestamp: February 12, 2020, 08:53:10 pm
content: Quote from: dr.diesel on February 12, 2020, 03:04:14 pmI'm afraid nothing too exciting. Just going on fixing bugs and implementing features as I see fit based on what's on my mind and suggestions from users.QuoteI haven't read through each and every line in the old thread, but most issues brought up should be fixed in one way or another. Keyboard shortcuts and colors are fully customizable.

author: Lukas
author_rank: Frequent Contributor
timestamp: March 04, 2020, 11:37:28 pm
content: A lot has happened since the 1.0 release at the end of January, so I wrote a blog post summarizing the changes:https://blog.horizon-eda.org/progress/2020/03/04/progress-2020-02.html

author: Warhawk
author_rank: Frequent Contributor
timestamp: March 06, 2020, 08:30:16 pm
content: Lukas, this is great.

author: Pitrsek
author_rank: Regular Contributor
timestamp: March 21, 2020, 09:16:00 pm
content: Hello Lukas,I've gave it a go and so far I really like it. For one man project it's mighty impressive. Few library questions:Is there a way how to customize parametric data? Add new fields, add new classes? I have extensive system of classes and parameters that I'd like to use.Is there a way how to edit/create multiple components at once? Imagine you have CSV/xls with all parameters you'd need for all capacitors/resistors from one series.Since you already have database running for parametric search, why do you keep parts as individual json files?If parts were stored in database, mass edit/creation would be a breeze. And then you could connect it to outside databases, share across the teams etc.You'd be first open source eda with enterprise library management.Also your web page is missing donate button.

author: Lukas
author_rank: Frequent Contributor
timestamp: March 21, 2020, 11:19:23 pm
content: Quote from: Pitrsek on March 21, 2020, 09:16:00 pmThere's the tables.json in the pool directory that contains the definition for the various parametric tables. The exact format isn't documented anywhere, but should be more or less obvious from existing tables.Quote from: Pitrsek on March 21, 2020, 09:16:00 pmThere's a set of ad-hoc scripts such ashttps://github.com/horizon-eda/horizon-pool/blob/master/scripts/panasonic-erj/gen.pythat should be fairly easy to adapt to your needs.Quote from: Pitrsek on March 21, 2020, 09:16:00 pmThe thing is that SQLite database files don't mix particularly well with version control/git. Having each item in one file keeps diffs nice and tidy and avoids merge conflicts. Locally, all metadata gets loaded into SQLite database for easy and fast querying.Quote from: Pitrsek on March 21, 2020, 09:16:00 pmUnfortunately, we haven't yet invented a way to donate time...

author: Pitrsek
author_rank: Regular Contributor
timestamp: March 22, 2020, 09:54:53 am
content: Thanks,for the pointers, I'll look into it!

author: Warhawk
author_rank: Frequent Contributor
timestamp: March 23, 2020, 07:05:52 am
content: Lukas, you mentioned some updates and changes. Will you release a new version any soon?

author: Lukas
author_rank: Frequent Contributor
timestamp: March 23, 2020, 09:18:43 am
content: Quote from: Warhawk on March 23, 2020, 07:05:52 amI've pondered on this as well, and came to the conclusion that a once-a-quarter release cycle seems to be a good compromise between providing new features and stability and downstream churn. By this, the next release (1.1.0) should happen on 2020-04-29.

author: Pitrsek
author_rank: Regular Contributor
timestamp: March 23, 2020, 08:56:21 pm
content: Feature suggestions:Pool editor/unit editorimport pin list from CSV or from clipboardability to copy pins - I can select lines and delete them, but I can not copy. In lot of case you have a multiple pins of same namepin selection stays in places after delete. you select line 1,3,5 and delete them. pins will disappear, list will reorder, lines 1,3,5 will be still selected(containing new pins). First time I pressed del. one more time. I would expect the selection to disappear after del.if you add a new line via + button, it fills in the name based on previous name(it does auto increment, which is nice). would be nice if there was option to fill the pin name with content from clipboard.Part editorswap pads and pin pane/area, so pad numbers are on left. In all datasheets that I have seen you have pad numbers in first column, and name in second. Here it is the other way around. It does not feel right/makes my brain hurt.ability to import csv map file(from datasheet)Schematic editorstandard shortcut ctrl + x is not implementedability to change sheet while placing a part, so I can place part b directly on other sheetwarning(and offering update pool cahe) when user is placing component which cached symbol is out of sync with pool. You place part which you have edited(and is already presnt on schematic), in place part window you will see current(updated version) of schematics symbol. Yet if you place it, you will get old version on the schematics. updating the cache pools will fix this, but the issue is that You are not getting what you are seeing in part browser.I haven't spent much time with it yet, the above observations are based on my notion "how it is supposed to work", yours might differ. It's possible that some of the stuff is already there, and I just did not discovered it yet.But so far in general it behaves as I'd expect, I find what I need at places that I expect. It's consistent, with good help. I actually smiled when I was creating my first part, because the stuff I needed was already there and I was able to find it very quickly. It did what i needed to do in a way I expected.You did a great job Lukas.

author: Pitrsek
author_rank: Regular Contributor
timestamp: March 23, 2020, 09:27:03 pm
content: One more - create linked unit, symbol and entity from kicad schematic component. It seems that kicad gained a critical mass to be noted. You can get schematic symbols for kicad from parts vendor (through ultra librarian export).

author: Pitrsek
author_rank: Regular Contributor
timestamp: March 23, 2020, 09:32:57 pm
content: How can the title block be filled? I've created a key in schematics properties with a same name ($author), both for the particular sheet and global, but title block stays the same.

author: Lukas
author_rank: Frequent Contributor
timestamp: March 24, 2020, 12:07:41 am
content: Quote from: Pitrsek on March 23, 2020, 09:32:57 pmTry the latest build, fromhttps://ci.appveyor.com/project/carrotIndustries/horizon(Aritfacts). There have been some quite significant improvements to titleblocks lately. In the old, one they key has to be author (without the dollar sign).Quote from: Pitrsek on March 23, 2020, 09:27:03 pmThat's been on my list of things I might to at some point for quite while. Their current symbol format is quite messy, but definitely doable.> import pin list from CSV or from clipboard> ability to import csv map file(from datasheet)> swap pads and pin pane/area, so pad numbers are on left. In all datasheets that I have seen you have pad numbers in first column, and name in second. Here it is the other way around. It does not feel right/makes my brain hurt.Try the part wizard (in the package tab).> ability to copy pins - I can select lines and delete them, but I can not copy. In lot of case you have a multiple pins of same nameAdding a new pin will copy everything from the currently selected pin.> I would expect the selection to disappear after del.The selection staying in place makes it easier to delete a sequence of pins.> would be nice if there was option to fill the pin name with content from clipboard.After adding a new pin, the pin's name is focused, so you can press Ctrl-v right away.> standard shortcut ctrl + x is not implementedYou're the actually first one to bring this up. I haven't implemented it yet as it'll do the same as Ctrl-c followed by delete. If you want to move symbols and everything attached to them to another sheet, "Move to other sheet" is thing you want to use.> ability to change sheet while placing a part, so I can place part b directly on other sheetThat'll require some in-depth changes, I'll have to see if it's worth the added complexity.> warning(and offering update pool cahe) when user is placing component which cached symbol is out of sync with pool.The situation is even a bit worse than this: The schematic editor itself keeps its own cache that only gets refreshed once it is reopened, so we have three places that could be out of sync. Someone else brought up a similar issue to me. I think the easiest way out of this would be to show a message in the part browser if the user selected a part that hasn't been updated in the cache yet.

author: Warhawk
author_rank: Frequent Contributor
timestamp: March 24, 2020, 09:09:01 am
content: Quote from: Lukas on March 23, 2020, 09:18:43 amLukas, thank you. This is a model I like.VG, Jiri

author: Pitrsek
author_rank: Regular Contributor
timestamp: March 27, 2020, 08:47:45 pm
content: Quote from: Lukas on March 24, 2020, 12:07:41 amThanks! Title blocks works nicelyQuote from: Lukas on March 24, 2020, 12:07:41 amI will try next time I create a new unique part. The thing is I've decided to use the fully functionality of your library system. So I have units and symbols for functional blocks. I2C with address line, I2S input etc. And those would get glued together with part specific units/symbols. I'll try the wizard and post feedback.Quote from: Lukas on March 24, 2020, 12:07:41 amPossible workaround, thanks! Still Ctrl+c/v is a standard shortcut, one that you expect to work everywhereQuote from: Lukas on March 24, 2020, 12:07:41 amAha>Quote from: Lukas on March 24, 2020, 12:07:41 amThat's exactly what I neededQuote from: Lukas on March 24, 2020, 12:07:41 amProbably not worth the effort. It's just something that I wanted to do and could not. It belongs to "perhaps, someday,maybe" list when all the more important stuff is implemented.Quote from: Lukas on March 24, 2020, 12:07:41 amWarning window is all that's needed.In pool editor when you create unit you are offered a "save as" when you save it, save as option disappear and you can only save. If you are making similar components, you have to close it, duplicate and open. Having permanent option to save as would save some work.Few more questions for you:How can I move part of schematic without connections. ie. move versus drag?What does red net line means? I sometime get them when I copy. I don't get the menu on right with the parameters. I'm using default appearance, ie nets are green.Is it possible to move designator/parts value?I was not able to find sheet symbols and ports, how far in future is schematics hierarchy?Is the folder structure used somewhere, or it is only for user to reasonably navigate through the jsons? Ie if I change it(rename folders, move jsons around) will horizon just pick it up on rebuild/update, or do I need to update something manually?I have few bugs report as well, I put them on github.

author: Lukas
author_rank: Frequent Contributor
timestamp: March 29, 2020, 12:19:18 am
content: > Warning window is all that's needed.Done> How can I move part of schematic without connections. ie. move versus drag?Disconnect the symbol (see context menu)> What does red net line means? I sometime get them when I copy. I don't get the menu on right with the parameters. I'm using default appearance, ie nets are green.Red net lines are net lines that haven't got assigned a net since they aren't connected to anything.> Is it possible to move designator/parts value?Smash the symbol. (same as in eagle)> I was not able to find sheet symbols and ports, how far in future is schematics hierarchy?Dunno, not very high on my priority list yet.> Is the folder structure used somewhere, or it is only for user to reasonably navigate through the jsons? Ie if I change it(rename folders, move jsons around) will horizon just pick it up on rebuild/update, or do I need to update something manually?When moving files around, you'll need to update the pool for horizon to pick up the new location. The only requirement is that the files end in .json and everything is in its proper subdirectory of the pool (symbols in symbols/ etc).

author: Pitrsek
author_rank: Regular Contributor
timestamp: April 18, 2020, 08:46:23 am
content: Hi,how is the center of rotation defined if I want to rotate a group of components?It seems that it is not rotating about the "move anchor" point.

author: luzotug
author_rank: Newbie
timestamp: April 18, 2020, 09:23:55 am
content: I'm a KiCad fanboy so my opinion would probably sound like a mixed reviewI've just played a little bit and it feels a lot (too much ?) like KiCad : how you use the shortcuts and mouse, the interactive router (it's the same). There are of course some changes and less "eye candy" (no toolbars) but not as disruptive as I thought.You're probably right on this, why reinvent the wheel when you can reuse and improve on existing software and already established concept. This would help people to migrate and keep the learning curve low.On the other hand, I found the same usability "tricks" that bugs me. I'll give only one example : when you've selected multiple items, put your mouse on the other side of the screen and press M, your selection follow the mouse with this big distance between them.It happens to me a lot in KiCad when I forgot to deselect before trying to do a hover move. In horizon at least you have big visual clue when you are in hover mode.I also judge a software by its documentation (it's often a pain point), there's a reasonable amount of documentation and it only take a few hours to read the docs. Some sections are clear and well explained, others are only superficial.Of course you can't compare with the huge amount of KiCad documentation, it takes time to write documentation and horizon is in infancy but it's a good start.I haven't played enough with it, but clearly you've done a huge job in only a few years time, well done. So far horizon-eda have passed my first step : you've got me interested.I'm still married with KiCad but horizon deserve some consideration, so I'll be making some donation (meaning ... time) soon to help.

author: Lukas
author_rank: Frequent Contributor
timestamp: April 20, 2020, 07:47:19 pm
content: Quote from: Pitrsek on April 18, 2020, 08:46:23 amIt's rotating about the average of all centers. In the latest version, there's rotate/mirror around cursor.QuoteThere are only so many ways to build a 2D editor in a way that people will be able to use. I tried to keep it simple and straightforward.QuoteI guess that's a matter of taste. Would you expect the selected items to snap to the cursor?

author: Frddy
author_rank: Newbie
timestamp: April 27, 2020, 12:10:54 pm
content: Hey dude. I was looking for a new EDA for another project of mine.. I don't draw a lot so I start by looking around for EDAs.. Last time I used KiCad but it has some peculiarities that make it unusable for me. Then I found LibrePCB which has some really nice features, but isn't quite ready for use yet imo.. Development doesn't seem as good as the next one I found; Horizon EDA. So I thought I would share my thoughts about it, do with it what you want of course. These are just the things I found in the first half hour of fiddling around.First of all, UI is quite nice and clean.. Does take a bit getting used to as a windows user, kinda missing a FILE menu on the topleft.. Instead, its options are is buried inside the hamburger menu on the right, feels weird. I'm guessing the look and feel comes from the GNOME background of the UI lib. It feels fast and snappy; doesn't seem to take up a huge amount of memory either. (KiCAD takes like 1 GB of memory and re-loads the entire footprint/symbol library every time you open up one of those menus, terrible UX).Let's start in theschematic editor:Starting to place a few parts and stuff, few things stand out.. Where are all the toolbars ? Ok there is a place part button, so I placed some parts. Then I want a net, do I do that by placing a part ? No - a lookup of the documentation shows that I have to declare some nets and can then place the symbols.. Ok that's a bit different, but quite alright.Still in the schematic editor: Selection, moving parts is all pretty intuitive. (KiCAD devs seem to think the right thing is to open up a menu every time you LEFT CLICK the mouse, disgusting.. Ok enough about KiCAD). I see you do have that implemented when what to select isnt clear; a net close to a part opens up a small menu, thats okish. Took me a bit to figure out where the grid settings are.. Ok you only allow a square grid ? That's interesting. I would like to say that sometimes a non-square grid can be helpful when placing parts though. Drawing wires by click-dragging is very pleasant.Moving on to first impressions of theboard editor:Inserting parts one by one is nice and what you do is kinda similar to LibrePCB; it has a permanent UI thing that shows the to-be-inserted parts close to other errors, like a TODO kind of UI area. When placing a part, I like how the next part automatically comes under the cursor for placement. (KiCad just throwns everything in a grid at once when updating the netlist, in some weird order) Placing my parts, they are not annotated (numbered), I don't understand exactly why but whatever.The context menu on the right is also nice to use (both in schematic and board editor), and the fact that it works for a selection of multiple parts is super nice. The 'All' button is usefull but does feel a bit large in the UI, ah well.Generally, I would expect a right click context menu to open up when I have something selected; but in this UI it only opens if you right click directly on a part or part of the selection. Would be nice to add that.On selections; it seems many EDAs are missing the double-click-to-select-entire-wire thing (or I'm an idiot).. I see you do have that.. Dude thats such a pleasant feature.The "all"-tool is nice, but personally it can also be really handy to have some more distributive controls. KiCAD for example has:Align-top, Align-bottom, align-left, align-right, align-middle, align-center and super handy; distribute horizontal, distribute vertical.Especially the latter can be a time saver, I'll just explain what it does: in a selection it distributes the selected parts evenly between the leftmost and rightmost part.Overall it looks very promising. I haven't really played with routing or truly tried to design a board. There is one thing though.. The lack of toolbars, why ? It makes everything especially unfriendly for new users. A toolbar with a hover menu containing the tool-name + keybinding is generally how I learn to use new programs.. I think it should be added. Looking more widely at that, I think there should be some more customizability in the UI, such as hiding the left sidebar (or dragging it to the right side).Who knows maybe I'll look at the code one day.. But I tried modifying something in KiCAD a bit ago and I had no chance there

author: Lukas
author_rank: Frequent Contributor
timestamp: April 27, 2020, 06:46:55 pm
content: QuoteDon't know if you discovered it yet, but there are two selection modes:1. Hover select: Selection follows mouse cursor, no need to click. automatically selects the smallest object under the cursor if there's more than one. You can get to it by pressing escape. Want to delete something? Hover over it and press delete.2. Click select: Activated by clicking on something. Brings up the menu for clarifying the selection and allows selecting more than one object.QuoteWhy would anyone want this in the schematic? I'm not aware of any other schematic entry tools supporting a non-square grid.QuoteOther applications such as inkscape handle this exactly that way, so I assume it's a matter of preference.QuoteFrankly, I quite dislike toolbars for many reasons: Seefor an example how toolbars usually end up looking after a few iterations of added features.- Apart from a few universally recognized icons, most icons are abstract blobs of color and could be replaced by hieroglyphics without much loss of usefulness.- Creating high-quality icons recognizable at small sizes is quite some art- The GNOME HIG eschews colored icons in favor of monochrome ones for use in applications:https://developer.gnome.org/hig/stable/icons-and-artwork.html.enWith only one color it's next-to-impossible to make distinctive 16×16px icons.Rather than a toolbar, the primary way of invoking tools is the spacebar menu (activated by pressing space) that provides a searchable list of all actions that apply globally and to the current selection. Rather than having to remember funny toolbar icons, just search for the desired action.I agree that the discoverability of that menu is rather low, perhaps showing a tip if the spacebar menu hasn't been opened within 15 seconds after opening the editor could improve things...QuoteSupport for unplaced components has been added with not all that much involvement from my side, so it can't be that bad:https://github.com/horizon-eda/horizon/pulls?q=is%3Apr+is%3Amerged

author: Warhawk
author_rank: Frequent Contributor
timestamp: April 27, 2020, 07:23:52 pm
content: Lukas, I can't wait for the end of the month. Will we see 1.1.0?

author: Frddy
author_rank: Newbie
timestamp: April 28, 2020, 10:03:33 am
content: QuoteSorry, this was referring to the board editor.QuoteYeah I thought you might not like them, otherwise it would probably have been one of the first things you would do. Anyway, for me the spacebar menu (at least at first glance) seems like a very unpleasant way to work. There are many options and I don't wanna move my right hand off of my mouse, to type what I want. Also, should the user really have to double-click to activate the action ?Personally, I think the lack of toolbar(s) will be one of the main hurdles for new users, and an obstacle for wider adoption.I also understand that you wanna keep it clean, so that's why I think it should be included with the option to disable/hide it (and other UI elements).I definitely agree that that screenshot is not what anyone wants. As such, there should not be a toolbar thing for every possible action.. Zooming, really ? Who uses a zoom-in button nowaways..I would say the tools for the most basic things should be there, like, drawing a net, line, bus, label, inserting a power symbol etc.. And some other way for more advanced options, like a dropdown.Actually, have you seen how the latest version of Fusion 360 does it ? Pretty clean too imo, and large (I'm guessing 64x64) icons. They're tabbed; each tab has a bunch of categories with the most common tools directly clickable, and other options in a drop-down menu with text. That could work.QuoteWell I wasn't referring to that specifically; the first think I would hack in myself is a simple toolbar for the most common tasks like I mentioned.Ah, I just noticed that you don't support OSX.. Thats a bummer.. I understand its because of the underlying GUI lib, hope it gets fixed over time.Trying to fix the broken image into a link... aw, does this forum really try to draw imgs in url tags when it recognizes an image extension ? Lame.

author: Lukas
author_rank: Frequent Contributor
timestamp: April 29, 2020, 10:47:44 pm
content: Quote from: Warhawk on April 27, 2020, 07:23:52 pmThere you go:https://github.com/horizon-eda/horizon/releases/tag/v1.1.0For some background on the new features, have look at the progress report blog posts athttp://blog.horizon-eda.org/

author: Muny
author_rank: Contributor
timestamp: April 30, 2020, 02:33:58 am
content: Excellent work, Lukas.One feature suggestion I have is: when drawing lines/other graphics, the ability to hold Shift to constrain the lines to be at even 45-degree increments based on where the mouse is would be very nice. This seems to be a common feature among 2D graphical editors, and I enjoy it.

author: Warhawk
author_rank: Frequent Contributor
timestamp: May 01, 2020, 04:45:03 pm
content: Quote from: Lukas on April 29, 2020, 10:47:44 pmYou're a man of your word! Going to try it. It's rainy in Bayern

author: Davor
author_rank: Contributor
timestamp: May 03, 2020, 11:34:00 am
content: If anybody wants to try horizon-eda on 32-bit Windows this is what worked for me:https://horizon-eda.readthedocs.io/en/latest/build-win32.htmlFollow these instructions, but use 32-bit versions of everything.32-bit dependencies:pacman -S mingw-w64-i686-gtkmm3 git base-devel \mingw-w64-i686-yaml-cpp mingw-w64-i686-boost \mingw-w64-i686-sqlite3 mingw-w64-i686-toolchain \mingw-w64-i686-zeromq mingw-w64-i686-glm zip \mingw-w64-i686-libgit2 mingw-w64-i686-oce \mingw-w64-i686-podofo mingw-w64-i686-libzip --neededAfter cloning horizon edit makefile: search for mingw64 and replace with mingw32.If you have old dual core CPU like me use "make -j 2" for building insted of "make -j 4".Add "C:\msys32\mingw32\bin" variable to your system path.Install "Win32OpenSSL-1_1_1g.exe" fromhttps://slproweb.com/products/Win32OpenSSL.htmlCopy C:\msys32\mingw32\ssl\certs\ca-bundle.crt to the directory the directory horizon-eda.exe resides in.In my case it is C:\msys32\home\USER\horizon\build\horizon-eda.exe.Too many loops to hop for average Windows user, but that is what you get for using niche OS like 32-bit Windows 10

author: mark03
author_rank: Frequent Contributor
timestamp: May 14, 2020, 04:34:55 pm
content: Hi Lukas,I haven't tried this yet but based on a reading of your design philosophy and comments here, I'd like to test it on an upcoming project.Probably my biggest annoyance with Kicad, apart from the library system, is that the PCB editor is still rather crude in the way it connects traces to pads. For example, if I am routing with a big fat trace, and I connect to a small pad, it does not automatically "neck down"---the only option is to manually change the trace width as you approach the pad. This invariably ends up looking ugly. I don't know if this is what other EDA users call "tear drops" but I guess it is all connected feature-wise. Basically the PCB editor needs to be smart about how it terminates traces onto different types of pads. Is Horizon different from Kicad in this regard?Does Horizon support arbitrarily shaped footprints, e.g., with a shape imported from an SVG file? Sometimes it is necessary to have a particular and complex copper shape for some RF design, or other "physics" tasks. (Most recently I needed this for a field mill electrostatic sensor.) It can be achieved in Kicad with some effort, but there are still restrictions on what you can do in a copper layer, while non-copper layers are much more flexible. This always seemed like an unfortunate distinction to me.Thanks for pushing open-source EDA forward!

author: Lukas
author_rank: Frequent Contributor
timestamp: May 14, 2020, 05:52:34 pm
content: Pad entry is as stupid as kicad or other tools, nothing special here.Arbitrary pad shapes have been there since day 1 and are one of Horizon's core features. You can't import DXF directly into padstacks since padstacks don't support lines, so you'll have to import the DXF into a package/board, convert it to a polygon and copy/paste it into the padstack.

author: jbay
author_rank: Newbie
timestamp: June 27, 2020, 03:11:37 am
content: Hi Lukas,First of all I just wanted to say a big thank you for developing this tool. It's fantastic and it's clear to me that you've put a lot of time, skill, and heart into it. I'm just learning to use it right now, so I have a chance to provide some "fresh user" feedback.- I really like the approach you've taken with library management. It feels very modern, fast, and flexible.- You've taken some pretty unconventional choices in your UI approach, but I think they work well.- I appreciate the extensive documentation you've written. I think more is still needed, but you've done an excellent job with it.- What's your long-term plan for this tool? Do you plan to keep supporting it? Do you develop it in addition to having a separate full-time job?- Do you accept donations, and will you consider paid feature requests?OK, that said, here are some thoughts I have about things that could be improved...1) Grid origin offset. Let's say that I am drawing some features that need to have vertices at locations 1.05 mm, 2.05 mm, 3.05 mm... this is a pattern that frequently occurs. I won't be able to place those vertices with a grid density of 1 mm, so I have to use 0.05 mm grid density, which is actually much finer than the work that I'm trying to do. If I could have a 1 mm grid, but offset it by 0.05 mm, that would be very nice!2) Exact numeric input for coordinates. Sometimes, even with grid assistance, it's just too frustrating to use the mouse, and I want to put something exactly at some (x,y) location. Especially if I'm reading coordinates off of a device datasheet to draw a pad for some heatsink or something. You have something very much like this for your "Move Exact" tool. The same popup could be used when you're placing a vertex (or something) in the first place, using absolute coordinates. Speaking of which,3) Move exact absolute. The move exact tool supports relative motion, but it would be nice if I could move something to an absolute coordinate, rather than only shifting. This would let me just throw down a polygon roughly and then move each vertex into the correct position afterward; right now, I need to know exactly where the vertex started in order to move it the correct amount. Of course, I can read that off the UI at the bottom corner and do the math using your handy math-parsing feature, so this is just a nice-to-have since it would save time.4) (+/-) zoom UI buttons or hotkeys. Sometimes I don't have a mouse or scrollwheel available.5) Searchable Preferences window. Your brilliant space bar menu has a search box; why not the (much-more-extensive) Preferences window where such a feature is needed more? IDEs such as Eclipse have this and it's quite handy. Once you can search preferences, that also allows you (the developer) the freedom to make much more things adjustable via preferences, without worrying about cluttering the UI. Then you can have less hard-coded constants... such as...6) Adjustable snap radius. Right now I just find the default distance at which the UI will try to "correct" my cursor by snapping to an existing object location to be much too wide, and I don't think I can configure it anywhere.7) Speaking of which, sometimes I notice that the (x,y) readout at the bottom of the screen will read something (eg. X:000.000, Y:000.000) but then when I actually click, the vertex will end up at Y:0.005 or something. This isn't because I jiggled the mouse when clicking -- it even happens when I use touchpad entry. I think the coordinate readout doesn't always give a trustworthy picture of where something will go when I click.I really like your layer system but I think there's a couple of minor UI bugs. For example, try clicking on the display type once to change it. It won't change right away -- not until you move the cursor away from the layer selection, when suddenly at that point it changes. This can be quite confusing.9) A fillet tool would be awesome -- eg. press a key, then click on the corner of a polygon, and it gets replaced by a tangent arc of a certain dimension.10) Inclusive/Exclusive group select. This is a neat feature that Solidworks has -- if you click-and-drag your mouse to create a selection box, it will behave differently if you drag the box leftward than if you drag it rightward. If I recall correctly, dragging to the left will select "inclusively" -- any object that has even a tiny corner inside your box will get selected. Dragging to the right selects "exclusively" -- an object must be fully enclosed within the selection box to be selected. This is surprisingly useful.11) Lock layers. Right now, if I drag a selection box, I'll end up capturing things from other layers even if those layers aren't visible. It would be nice to have an extra column in the layer table UI, perhaps displaying a padlock symbol, that lets you lock layers to prevent selecting or disturbing anything on those layers.Anyway, thanks again for all the work you've done on this. It looks like a fantastic and very powerful tool.

author: jbay
author_rank: Newbie
timestamp: June 27, 2020, 09:08:15 pm
content: Another observation...Right now, the pads named "SMD" (for example -- "SMD rectangular with rounded corners") actually appear to beNSMDpads (Non-Solder-Mask-Defined). SMD pads (Solder-Mask-Defined) should have the solder mask opening smaller than the copper layer; NSMD pads have the solder mask opening be larger than the copper layer. For example:https://www.nexlogic.com/2016/05/31/not-nsmd-smd-question/.

author: Lukas
author_rank: Frequent Contributor
timestamp: June 28, 2020, 09:56:51 pm
content: > - You've taken some pretty unconventional choices in your UI approach, but I think they work well.Well, there has to be something else than windows 95 with a different shade of grey and ribbons.> - What's your long-term plan for this tool? Do you plan to keep supporting it? Do you develop it in addition to having a separate full-time job?Nothing definitive, I'll do whatever's fun and makes sense.> - Do you accept donations, and will you consider paid feature requests?Nope> 1) Grid origin offset. Let's say that I am drawing some features that need to have vertices at locations 1.05 mm, 2.05 mm, 3.05 mm... this is a pattern that frequently occurs. I won't be able to place those vertices with a grid density of 1 mm, so I have to use 0.05 mm grid density, which is actually much finer than the work that I'm trying to do. If I could have a 1 mm grid, but offset it by 0.05 mm, that would be very nice!I'm glad you asked, we have that since two weeks:https://github.com/horizon-eda/horizon/commit/9d96d2114c290a8dd9f6e00596b57265837f3c37> 2) Exact numeric input for coordinates.> 3) Move exact absolutePads and packages have entries for x/y position in the property editor on the right. That should do the job. Numerical input of polygon vertices similar tohttps://techdocs.altium.com/display/ADOH/Outline+Vertices+Editor+for+Polygonal+Pours+and+Regionsdefinitely is something that's doable.> 4) (+/-) zoom UI buttons or hotkeys. Sometimes I don't have a mouse or scrollwheel available.That seems rather clunky. Touchpads and trackpoints have gotten good enough to support smooth zooming. Apart from that, Pinch-to-zoom is supported on touchscreens (and touchpads apparently). Although I don't know how well all of this works on windows.> 5) Searchable Preferences window.I try to keep the number of preferences to a minium, so that'd be more of an anti-feature. Aside from that, developing that is time I could better spend on other things as the preferences window is a rather low-traffic area of the application.> 6) Adjustable snap radius.Once i decide where to put the setting in the preferences window, that's easy to implement.> 7) Speaking of which, sometimes I notice that the (x,y) readout at the bottom of the screen will read something (eg. X:000.000, Y:000.000) but then when I actually click, the vertex will end up at Y:0.005 or something.Can't reproduce that. You need to provide more detail on how to reproduce it.> -- not until you move the cursor away from the layer selection, when suddenly at that point it changes.Seems like a GPU driver issue to. You happen to be using an intel GPU on windows?> 9) A fillet tool would be awesome -We have that since about two months. I'ts called 'round off vertex'.> 10) Inclusive/Exclusive group select.Click on the selection thing in the bottom left corner and select box, auto.> 11) Lock layers. Right now, if I drag a selection box, I'll end up capturing things from other layers even if those layers aren't visible.That shouldn't happen. In which situation did you encounter this? To further narrow down what can be selected, have a look at the selection filter.> Right now, the pads named "SMD" (for example -- "SMD rectangular with rounded corners") actually appear to be NSMD pads (Non-Solder-Mask-Defined). SMD padsIn that case, SMD refers to surface mount (as opposed to through hole)

author: jbay
author_rank: Newbie
timestamp: July 17, 2020, 10:12:54 pm
content: Hi! Sorry for the late reply!QuoteOoh, awesome! I'm just trying out the new version now. It's a huge improvement! The offsets and rectangular grid option makes it so much easier to do what I want! Thank you!QuoteA feature like that would be fantastic, but I was thinking something much simpler -- just a "relative / absolute" toggle in your existing Move Exact dialog box, which would go a long way. (The context of this is drawing fancy heatsink outlines and such).QuoteYes, exactly -- an Intel GPU on Windows. How did you know? Anyway the coordinate offset issue is probably just the same GPU driver issue, then. If it's a problem specific to my system then don't worry about it. If you do know a fix then I'd be happy to hear it, otherwise I'll just find some way to fix it myself or deal with it.QuoteYou might be right -- I might just be misinterpreting what's going on. In the package editor, if I place a bunch of pads and then 'invisible' the copper / mask / solder layers, and go to the silkscreen layer, then do a drag select, I'll select a bunch of (invisible) pads. If I click delete, the pads will disappear. Perhaps that's because the pads have silkscreen layers, even though they're empty? At any rate it's a bit surprising that such a selection on the silkscreen layer picks up the pads, even though they don't have any visible silkscreens.QuoteThat makes sense, but it's an important acronym for padstacks too. If I want to name a solder-mask-defined rectangular pad I end up having to call it "SMD SMD rectangular pad" or something, as opposed to the existing "SMD rectangular pad" which is actually an NSMD pad design. Would it be possible to instead use the SMT acronym (Surface Mount Technology) to contrast with through-hole, instead of SMD (Surface Mount Device)?By the way, the more I use Horizon EDA the more I love it. I never found KiCAD any fun, but I'm actually having fun using Horizon. And the way that combining and configuring padstacks, packages, elements, and parts -- it makes so much sense. I still don't have the hang of parameter programs yet, but I'm sure I'll get there. Thank you for making this.

author: Lukas
author_rank: Frequent Contributor
timestamp: July 18, 2020, 11:35:41 pm
content: QuoteIt just came to my mind that there's already something that may fit your use case: Select a polygon vertex and press enter. This will invoke the "enter datum" tool that can be used to numerically set the position of polygon vertices, among other things. Since you're talking about fancy outlines, the dimensions also support numerically setting their length (select the point you want to move and press enter). The dxf import combined with the line loop to polygon to might also do the job. For complex outlines for parts with a STEP model available, I usually do a 2D projection of the 3D model in freecad, import the DXF and use it as a reference to retrace a simplified outline.QuoteThere has been another bug similar to this where a redraw didn't happen when it should have:https://github.com/horizon-eda/horizon/commit/db61b4542b8f8abc51e29b50c0a9dac80f0b7e3dQuoteI see. The thing is, from the application's point of view, pads aren't on any particular layer as they can span multiple layers. That's why they're always selectable. To prevent them from being selected, you can enable the work layer only mode in the selection filter or exclude pads specifically.QuoteDefinitely something to consider.

author: Bob Sava
author_rank: Regular Contributor
timestamp: July 25, 2020, 03:33:42 am
content: I like Horizon EDA a lot. While rough around the edges (in places) it's actually quite complete. One issue I have with the software is new nomenclature and use of words that have different or multiple meanings outside of this EDA. If you fall into this category, it helped me to rename part creation tabs to highlight their hierarchy and function. Here's what works for me:Also, I think it's a bit confusing at first, that Units tab preview is in a format of Symbol. I think it should be just a table.

author: Lukas
author_rank: Frequent Contributor
timestamp: July 26, 2020, 07:48:08 pm
content: First-time users will now see the info bar with a link to the docs to make things more clear (see attachment)QuoteThe table is available in the info page. Symbols are shown by default as they're quicker to parse visually.

author: tooki
author_rank: Super Contributor
timestamp: July 30, 2020, 04:15:24 pm
content: Any updates on getting it to run on macOS?

author: Lukas
author_rank: Frequent Contributor
timestamp: July 30, 2020, 09:33:59 pm
content: QuoteUnfortunately no. If anything will happen it'll most likely be captured therehttps://github.com/horizon-eda/horizon/issues/271#Long story short: I don't have a mac os machine at hand and don't have any personal interest in getting it to run on mac os.For everyone else: There's a new release, version 1.2:https://github.com/horizon-eda/horizon/releases/tag/v1.2.0

author: Bob Sava
author_rank: Regular Contributor
timestamp: July 31, 2020, 02:44:37 pm
content: Congratulations on v1.2 release. I like addition of colored nets and traces in this release. As far as I know only (of free software) EasyEDA has something similar and KiCad may have it in v6.

author: gord
author_rank: Newbie
timestamp: August 09, 2020, 03:19:27 am
content: Hello Lukas,I have begun using your software and I too would like to congratulate you on the effort you have placed in it, it is superb software.Here is some feedback. I have listed priorities, just to show my personal subjective ranking of the requests, for what it is worth (could be worthless). Please consider this all as just some ideas for ruling in or out, none are showstoppers. Most of these items are low priority ranked:1. Is there a way to route tracks at any angle, instead of 45 deg? If any angle is not possible, then 22.5 deg or 12.5 deg step modes could be useful and meet most requirements where 45 degree is not sufficient. If I had a choice this would be a high priority for me. Eventually curved tracks may also be good but this may be a major feature?2. A button to override the rules during routing could be useful, because sometimes it is helpful to lay down tracks for layer refinement. This is useful when quickly testing to see if traces and positioning may be fine. For me this is a medium priority.3. Unfortunately I also agree zoom buttons could be useful. I have pinch-to-zoom and mouse zoom capability, but when working it can be easier and quicker to key-press (say PageUp and PageDown). With mouse or pinch-to-zoom it takes longer to trim if the scroll is overshot accidentally, and it is a very frequent action so it adds up. I think this is low priority though.4. Route track mode enabled by context. When the pointer is positioned on a pad, clicking the mouse does nothing if track mode is not enabled. I think it is better if Horizon automatically switches to track mode (x) if the user does this, because the intent would be to lay a track if the user was on a pad. If this is easy to implement then it could be a medium priority ranking.5. Escape is too aggressive. Pressing Escape makes the selected tool or mode to be disabled. When drawing a line for instance, pressing Escape both terminates the line and disables the line mode. Would it make more sense to just terminate the line on Escape (like with right mouse click), and second Escape click would terminate the line mode? It is easy to get into the habit to quickly double or triple-press ESC to fully exit out of a mode. This is a low priority.6. For schematics, a switch in the rules or elsewhere so that the red label absent warnings are not visible or present. I think it is common to name nets and not require all the labels to be visible on the schematic.7. Lines to default to the current trace width instead of 0mm, if they are drawn on a copper layer. This is because any line drawn on a copper layer is deliberately intended to be in the gerber for the copper layer, so the user intent will be to have it thicker than the default 0mm. The current behaviour means that each time the line mode is exited and re-entered, it again defaults to 0mm. Again low priority.9. A low priority request to add your release version number on the Horizon EDA window, if it is quick to do.Thank you for reading this and your tremendous effort again.10. How are new parts created? The user instructions refer to a parts wizard, but don't mention how to invoke it. I cannot see from the Horizon EDA window, nor the part viewer or pool cache button, how to invoke part creation. The spacebar menu may also be a possible option to request the part creation window, but I couldn't see it.11. How are via sizes modified? I can see the rule setting, but clicking on a via does not allow overriding (for instance a larger via).12. When no item is selected, the cursor keys should allow for pan operation of the display, because it is quicker after zooming, to just pan around the board rather than repeated zoom out/zoom in operations. Currently the cursor keys have no effect if nothing is selected in board or schematic view. This is low priority too, but some of the low priority things can have a great usability or productivity impact.

author: Lukas
author_rank: Frequent Contributor
timestamp: August 10, 2020, 11:02:02 pm
content: QuoteThere's the draw track tool, but it's fairly basic. IIRC the kicad router used in Horizon EDA supports routing arbitrary angles without DRC and disabling DRC, so it's just a matter of adding the glue logic.QuoteOk, adding shortcuts doesn't hurt that much. Should they zoom in/out relative to the screen center or where the cursor is?QuoteDragging away from a pad starts the router.QuoteDunno, probably boils down to personal preference.QuoteAs this can lead to unintended connectivity and I got bitten by exactly this in another schematic entry tool, that's not going to happen.QuoteThat's not supposed to happen. The draw line tool remembers the last-used line width (press w to set).QuoteOpen the pool manger from the start window.QuoteUncheck "from rules" and you can edit the parameters for just the selected via.QuoteThis doesn't mesh well with hover select.QuoteUse the middle mouse button or shift-left click to pan.

author: gord
author_rank: Newbie
timestamp: August 13, 2020, 04:00:46 am
content: Hi Lukas,Thanks for the response.The Route Track feature is good, I have added a 'd t' shortcut for that. It will work for now until curves or other features can be supported. Right-clicking fully exits the feature, I think it should only terminate the current Route Track and re-allow it to begin again with a left click? Currently I have to type 'd t' again (not a big issue).For your zoom question, I think the buttons should zoom relative to where the cursor is.For the width defaulting to zero, I understand now how it works, and it applies to the other tools too, such as the text tool:If the 'w' key is pressed then it allows changing the width and then when the line tool is used later, it retains the setting.However, if an existing line is selected, and then the width is changed in the properties, then that setting is not used when the line tool is used next. That's unfortunate, because the big benefit in changing the width (or text size or any other parameter) using the right-side properties pane, is that the change is instantly visible, so it can be trimmed to the desired value. That's not possible when the tool is selected and the width key is pressed, because the change doesn't take effect until the OK button is pressed. If the change doesn't look correct then the width key needs pressing again, another width needs guessing, and then the OK button has to be pressed to see the effect. This is a minor usability issue.Regarding the Pool Manager, thank you, I've found it now. I had not realized it was not visible until the board and schematic are closed and then top-left click to go back out of project view (so that the window title is "Horizon EDA"), and then click on the pool name under Recent pools. I will try it out and leave feedback.I quickly tried the symbol editor and had this question: What is the box shown (I marked it with a blue line) for, it moves into this position when I add pins, and how do I move it out of the way, because it is intersecting with the symbol outline. I couldn't find a menu item (in the spacebar menu) that seemed relevant to it. Closing and reopening the symbol didn't change it, and clicking on the line doesn't select it either.

author: Lukas
author_rank: Frequent Contributor
timestamp: August 13, 2020, 10:01:42 pm
content: QuoteYou can as well either launch it a second time or click on "new window" in the hamburger menu on the top right.

author: b_force
author_rank: Super Contributor
timestamp: August 18, 2020, 04:58:22 pm
content: I have tried it as well for a couple of days and i would like to give my two cents as well.Unfortunately, I am a little bit worried to actually share my thoughts, since most of the time feedback and criticism seems to be totally burned down.But I am just not seeing it with this one, I am very sorry.A lot of work needs to be done to the user interface ans user experience.It's very unclear what exactly is going on, what is happening and how and what to do, where to find things.Yes, those things can be found in manuals and such, but these things just need to be intuitive, without the user spending so much extra time to search and read.In other words, the interface is just way to different that what is usual as well as very inconsistent.If that i your goal and taste, it's fine I guess.I just don't really see a lot of people enjoying it this way.Just giving my professional thoughts about it, nothing more.

author: Bassman59
author_rank: Super Contributor
timestamp: August 18, 2020, 05:27:24 pm
content: Quote from: Lukas on July 30, 2020, 09:33:59 pmwell, I guess I don't have any personal interest in using your software.

author: Lukas
author_rank: Frequent Contributor
timestamp: August 18, 2020, 06:07:31 pm
content: Quote from: b_force on August 18, 2020, 04:58:22 pmCan you be more specific? Feedback like this isn't really actionable and doesn't do any good. Anyhow, I've heard exactly the opposite from some people.

author: b_force
author_rank: Super Contributor
timestamp: August 18, 2020, 06:21:12 pm
content: Quote from: Lukas on August 18, 2020, 06:07:31 pmBe more specific?Install Altium, diptrace, Proteus, Ultiboard or even ave a look at EasyEDA, hack even the old PADS and have a look how the user interface is and works.My apologies, but I don't see how this is not obvious and this feedback is actuallyVERYactionable.

author: Lukas
author_rank: Frequent Contributor
timestamp: August 18, 2020, 09:07:57 pm
content: QuoteThe box indicates the pin bounding box to aid consistent pin placement. All pins should be on this line, the pins at the bottom aren't.QuoteDone:https://github.com/horizon-eda/horizon/issues/479#issuecomment-675710884QuoteI guess that you're missing the Windows 95-style File/Edit menu bar. The omission of such menu bar is deliberate and is here to stay. Instead, we haveSpacebar menu that's searchable (has everything)Action buttons on the leftHamburger menu at at the top leftThere have been some ideas on making the spacebar menu more obvious:https://github.com/horizon-eda/horizon/pull/396

author: b_force
author_rank: Super Contributor
timestamp: August 18, 2020, 09:27:19 pm
content: Quote from: Lukas on August 18, 2020, 09:07:57 pmNo, I am missing the part that the user can choice whatever he likesBut my point mostly is, that is very different from any professional EDA out there.

author: gord
author_rank: Newbie
timestamp: August 18, 2020, 09:53:07 pm
content: Hello,I think the software is quite promising, but some usability adjustments could help further.For instance, I understand the hover mode is interesting for touch control, but if an item is not selected (such as intending to touch a component in a schematic but instead accidentally touching on the component reference or component value text), the mode exits from Hover mode into Click to select mode. It's very irritating that the mode swaps like this. Personally I would prefer to see a configurable option to disable the existing behaviour and enable a hybrid mode which could optionally just faintly highlight components and wires as the mouse moves over it, and then clicking to select, or holding down to select and drag. In other words, a hybrid mode that doesn't care if the user clicks to select, or holds down and drags. Just to make it more intuitive, it would also be nice that if the mouse is hovered over component text, then the component is still automatically highlighted as if the user was hovering over the component, and the entire component can be moved. The smashed text mode is fine.Another issue is that it is hard to tidy schematics. Here is an example, where it was desired to move C2. Once it is moved, the right side wire becomes angled. After that, it is impossible to straighten the wire without deleting the top and right side wire and then redrawing them. No move operation resolves it. If I try to move the right wire, it introduces a new wire segment. If I try to move the top wire, it just makes the left side become angled. Moving components tends to make the wires angled in almost all circumstances unless the component is moved in the same direction as the wire, and usually needs two wires to be deleted and re-added.This is probably a low priority, and difficult to solve in all circumstances maybe. A solution would really improve usability.Another thing concerns scrollbars. They are absent from the schematic and PCB view, but they would not take up a lot of space. It is worse in the pool manager because the scroll bar is very thin, and hard to click on, because just a millimetre of mouse movement will miss it. Can they be normal scrollbar width, because I don't see the benefit of the thin bar in this view. I know some people will just use a scroll wheel but there could be hundreds of items in the list and it takes a long time.I don't want you to think I am nit-picking, I am just trying to speed up commonly used tasks and reduce the behaviour from getting in the way of the user enjoying your software.I tried creating a package, I have not got far yet, but I had this comment regarding pads:When in hover mode, clicking on the pad won't bring up the pad parameter window on the right. I have to move the pad to bring up the parameter window, or I have to click elsewhere first to go into click select mode. This is quite unintuitive. Clicking on an item should bring up the parameter window always surely. I think this is another example of where a hybrid mode would be better. Another issue is that the parameter window does not allow the pad size to be modified. It can be modified by pressing i and then typing a value and then pressing OK. But there is plenty of space in the right side parameter window, and would provide easy discovery of the pad adjustment, whereas pressing i needs to be learned.One final thing for now, I looked at the symbol and package files, and there are long strings like "7dac098e-afb4-4074-80d2-d5a5983a45dc". For using code to create symbols and packages, can these be random references, or can be any length names like "pad-00001" where 00001 is a locally unique number in that file? It would be easy to increment a locally unique number. The ability to have the padstack within the same file as the package file would also help here, to save having to generate two files.

author: Lukas
author_rank: Frequent Contributor
timestamp: August 18, 2020, 10:41:18 pm
content: QuoteSincehttps://github.com/horizon-eda/horizon/commit/e0eb9e3fbce1c1a8f9177d9f86935149ccd1627dyou can just drag the non-straight net line and it'll add another junction. There's also the "bend net line tool".QuoteThis is Gtk thing that I don't have much control over. You could use a different theme, but I have no idea how this works on windows. You might try setting then GTK_OVERLAY_SCROLLING=0 environment variable to have the scrollbars always visible.QuoteScroll bars imply that there's some sort of page that can't be exceeded without any hacks. I had go at this a while back but couldn't come up with a satisfactory solution fast enough. Why would one need the scrollbars though? I don't recall having used the scrollbars on any 2D graphics application.QuoteThat's how it works. No idea why you're seeing different behaviour.QuoteYou can also just double-click on a pad to bring up the pad parameters window. That one can't easily be moved into the properties panel on the right due to implementation aspects.QuoteThese are UUIDs and have to be in that particular format.QuoteMost packages won't need specific padstacks so that's mostly a non issue. Also, having both documents in one file has it's own share of implementation issues.QuoteSo your primary issue is that clicking nowhere activates click select mode?EDIT: One reason for the hover select mode is being able to hover over something and just press delete to delete it as it's possible in kicad.EDIT2: You can try out the alternate behaviour withhttps://ci.appveyor.com/project/carrotIndustries/horizon/builds/34728877once the build has finished.

author: Lukas
author_rank: Frequent Contributor
timestamp: August 18, 2020, 11:23:44 pm
content: Quote from: b_force on August 18, 2020, 09:27:19 pmYes, that's intentional. Most of the applications you mentioned have a moderately (diptrace) to really long (altium) history. It shouldn't come surprising that a project started in 2016 would make different design choices than a project started in the 90s.Since the project is mostly a one man show, I don't have the bandwidth to support everybody's favourite UI style.

author: b_force
author_rank: Super Contributor
timestamp: August 18, 2020, 11:42:01 pm
content: Quote from: Lukas on August 18, 2020, 11:23:44 pmI understand that, especially the last part, so my approach would be making something that people are already familiar with or even improve it.In a sense of priorities, much more important than something like an auto router or even like fancy 3D graphics.Once I again, I absolutely doNOTto be all grumpy and negative about it.It's in fact the opposite, one of the main reasons I just see new projects with potentials failing.User experience,interface as well as compatibility (Mac, Windows and Linux) is key, the rest will come later (unless you heavily fail on it)These are also things that are very well defined and actionable.Like I said, i am just giving my very well meant feedback, based on people who have been working for years with these kind of programs.I can tell you, the average opinion about open source/free EDA software is really far from great.I am totally fine and respect with whatever direction you choose.I just see potential, so I personally feel obligated to share my experiences, nothing more, nothing less (and definitely no hateful rants or feelings)

author: gord
author_rank: Newbie
timestamp: August 19, 2020, 01:42:33 am
content: I also agree. You have already implemented great features, which may be enough for plenty PCB projects.Polishing the UI to speed it up, trying commonly-encountered devices like a mouse with scroll wheel and you'll soon find centre-clicking is not pleasant, so a keypress is helpful for such circumstances.Speed-ups of the commonly-encountered tasks, and making the procedures more intuitive in just a few places, and adding a little bit of configurability like the zoom step size (it is noticeably different step size to a different CAD package) will make it easier for people to transition. I think the work steps for creating components, symbols, and packages could be reduced slightly too, as a speed-up.It also gets confusing to create a package, I click on Create and fully expect to type the package name. If I do that, I get an error "Path does not exist". Instead, to create a package, I have to right-click in the file explorer and create a folder with the desired package name, and then select that.Is there a way to re-scan or refresh the pool database? For instance, if I create (using text editor or scripts or custom code) a new folder and new package.json file for a new package, how do I see it in the pool?

author: Lukas
author_rank: Frequent Contributor
timestamp: August 19, 2020, 07:18:16 am
content: QuoteAs written before, I don't have the time and hardware to bother with Mac os. As for UX, I've been told the exact opposite from other people.QuoteNo. It boils down to "I don't way it behaves/looks". This is what proper UI feedback looks like:https://github.com/horizon-eda/horizon/issues/390QuoteI've also been working with other Schematic/PCB design tools like Eagle, KiCad and mentor's expedition and didn't like their UI. That's why Horizon EDA is different.QuoteI am using a mouse with a scroll wheel and have no problem with the middle mouse button. If you don't like it, you can hold shift and drag with the left mouse button.QuoteThat's what the big update pool button in the top left is for.

author: b_force
author_rank: Super Contributor
timestamp: August 19, 2020, 01:58:04 pm
content: I would also suggest working with people who are trying to give feedback, instead of against.When making products (software is also a product, even when free), you as the developer need to have the skill to understand the customers.You can never ever expect that customers are going to give you that feedback in ready to eat chunks according to the way you like.Or are you also going to tell your plumber which pipe is broken, where and how?As soon as you are going to tell your customers what they need to do and saying they are wrong, you will loose it.For any product (free, open source or commercial) the best way to disappear.The reason why I am not making such a ready to eat list, is simply because it's to much to sum up.Also hard to explain in bullet points if the foundations are already not pointing in the right direction.If you don't know what I was talking about before, you simply have never used any of the EDA programs before.Good luck with your project.

author: PlainName
author_rank: Super Contributor
timestamp: August 19, 2020, 03:44:15 pm
content: QuoteI never use them (unless forced to by a dodgy app) - my mousewheel is fine. But scrollbars are very important to me since they tell me a) that there is stuff below the line I can't see, and b) how big the stuff below the line is.This is what makes GUIs really useful. Or should. It's not so much that there are things to click on or drag but that there are visual clues that one often uses without realising.

author: Lukas
author_rank: Frequent Contributor
timestamp: August 19, 2020, 09:23:24 pm
content: QuoteLet's just agree that we have different ideas on how a PCB design tool should operate and look like.QuoteWe now have this.

author: gord
author_rank: Newbie
timestamp: August 20, 2020, 04:36:52 pm
content: Hi Lukas,Horizon has many useful functions, any comments regarding UX or otherwise are just friendly comments. I think consistency is important even if it is 20 years old, scrollbars provide context. Panning should not need a hard centre mouse scroll wheel to be pressed, other software does this but they also provide other methods to pan.Regarding this:QuoteThis is great, thanks. This is in-line with what other software does, having the option to press a modifier key and then dragging with a left or right mouse button.QuoteI have just tried this, and it is much better. It would still be nice to be able to have the hybrid option (it is more in-line with other graphical editors, for instance Visio will allow hover and then drag, or single click to select and then use cursor keys to move) but a hover mode which doesn't disable itself if blank space is clicked is better than previously.I think there is a bug though, if I double-click on text to edit it, then the mode goes into click mode. It's not nice when it changes almost arbitrarily, just one consistent mode is better (unless explicitly changed), whatever that mode is, hover or hybrid.I have a question, if my circuit looks like the attachment, because I dragged R1 up, where should I click and drag to make the two connecting wires horizontal?If I click on the angled wires and drag, I can find no way to achieve it. Clicking on the pointed corners does not work either. To me it seems like the only solution is to delete the wires and redraw. Is there really no way to correct this situation by dragging wires? If there is a way, it is very unobvious. This is a very popular thing, where a user may move a component to reduce space or tidy up, and then wish to move the wires so they are not angled. Maybe an interesting feature could be to horizontalize or verticalize wires on a keypress if the intent needs to be passed to the software, this would be a nice differentiator.Finally for now, when the exit button is clicked, Horizon uses back-to-front buttons. Normally with Windows software the Save option is on the left, but with Horizon the 'Exit without Saving' option is on the left. I think this is going to annoy users when they lose their designs. If it cannot be swapped around, can an "Are you sure?" box appear if "Exit without Saving" is clicked?

author: Lukas
author_rank: Frequent Contributor
timestamp: August 20, 2020, 08:24:50 pm
content: QuotePerhaps we've used a discjunct set of 2D graphics applications, but the majority of the apps I've used so far uses middle click to pan.QuoteI'm probably missing the point, but hover and drag as well as clicking to select and using the arrows keys to move does work. I've only used visio once or so, didn't like it's interaction and didn't bother with it anymore.QuoteWell, this is bit difficult to solve. From the applications perspective a double click looks like two regular mouse clicks followed by a double click event. Unconditionally switching to to hover select mode after double click isn't ideal either.QuoteYou don't. Select both junctions that stick out the bottom and press m to invoke the move tool. I usually prefer moving things that way as it doesn't require holding down the mouse button.QuoteHorizon EDA isn't windows software. It's a cross-platform applications that tries to follow the GNOME UI guidelines.

author: jbay
author_rank: Newbie
timestamp: August 25, 2020, 02:06:09 am
content: QuoteFor what it's worth, I think Lukas has been extremely responsive to feedback. He's taken the time to respond to every one of my questions or comments, explained his reasoning when he disagreed, and most astonishingly, fixed bugs that I reported and implemented many of the changes that I requested,within days or even hours. I'm blown away.Anyway, it's true that Horizon doesn't copy the UI of other EDA programs. I think that's great. If I liked KiCAD's UI, I'd be using KiCAD. I found Horizon much easier to pick up and start using than any other EDA software I've used before. I think it could definitely do with more tutorials and examples, but it makes more sense to write those after the features stabilize. Once I feel experienced enough to write them I'd be happy to volunteer to contribute a few.

author: Warhawk
author_rank: Frequent Contributor
timestamp: August 25, 2020, 01:47:45 pm
content: I also agree that Lukas has been extremely supportive and always provided clear answers.To me it seems that he has some vision and does not promise everything to everyone. I appreciate this behavior way more than what I witnessed from e.g. Altium and their comments on Circuit Studio development.

author: Oleander
author_rank: Contributor
timestamp: August 25, 2020, 06:50:32 pm
content: Hello !I've just tried to compile Horizon EDA v.1.21 on my Slackware Linux 64-bit, but an error terminated the job:Code:build/obj/build/gen/help_texts.obuild/horizon-impbuild/horizon-eda/usr/include/opencascade/BRepAdaptor_Surface.lxx:270: error: undefined reference to 'GeomAdaptor_Surface::IsVRational() const'/usr/include/opencascade/BRepAdaptor_Surface.lxx:260: error: undefined reference to 'GeomAdaptor_Surface::IsURational() const'/usr/include/opencascade/BRepAdaptor_Surface.lxx:249: error: undefined reference to 'GeomAdaptor_Surface::NbVKnots() const'~~~~~~build/obj/src/util/step_importer.o:step_importer.cpp:vtable for GeomAdaptor_Surface: error: undefined reference to 'GeomAdaptor_Surface::BasisCurve() const'build/obj/src/util/step_importer.o:step_importer.cpp:vtable for GeomAdaptor_Surface: error: undefined reference to 'GeomAdaptor_Surface::BasisSurface() const'build/obj/src/util/step_importer.o:step_importer.cpp:vtable for GeomAdaptor_Surface: error: undefined reference to 'GeomAdaptor_Surface::OffsetValue() const'collect2: error: ld returned 1 exit statusmake: *** [Makefile:817: build/horizon-imp] Error 1make: *** Waiting for unfinished jobs....What is the problem here ?I have all required dependencies.

author: gord
author_rank: Newbie
timestamp: August 25, 2020, 08:27:22 pm
content: It is more usable PCB-CAD software than many others out there. The UI has quirks, but once they are explained, it becomes fine generally, although some things still feel inconsistent or unintuitive. This is just a friendly comment, there is no criticism intended.I hope the component creation process can be shortened for single-gate parts, (for example, more in-line with EAGLE which has just three steps [package, symbol and component]), and I hope to try creating a complete PCB design with Horizon soon.

author: Lukas
author_rank: Frequent Contributor
timestamp: August 25, 2020, 10:05:37 pm
content: QuoteHave you tried the part wizard? That should make things a lot easier compared to using entity and part editor.QuoteFeel free to point them out, that's the only way they could get better. Some things though might be due to different concepts or implementation limitations.QuoteLooks like your version of opencascade might be built differently than the one packaged by other distros. Try appending -lTKG3d to the LDFLAGS_OCE variable in the Makefile.

author: Oleander
author_rank: Contributor
timestamp: August 26, 2020, 08:32:27 am
content: QuoteQuoteMakefile appending worked, thanks !Now it's the time to explore it all.

author: Lukas
author_rank: Frequent Contributor
timestamp: August 29, 2020, 08:03:47 pm
content: Quote from: Lukas on August 10, 2020, 11:02:02 pmGood news for you: The route track tool now supports routing tracks at arbitrary angles as well as turning DRC off. Press Shift-S to open the router's settings.

author: tooki
author_rank: Super Contributor
timestamp: August 30, 2020, 09:32:12 am
content: Quote from: b_force on August 18, 2020, 06:21:12 pmNo, it absolutely isn’t actionable. None of the comments are even distantly specific.And pointing to all the classics... I think the point here was to NOT just be a clone of the (shitty) standard EDA program user interface model.

author: tooki
author_rank: Super Contributor
timestamp: August 30, 2020, 09:46:56 am
content: Quote from: Lukas on August 19, 2020, 07:18:16 amTo be honest though, that’s a dumb decision — a good app that runs on the #1, #2, and #3 desktop OSes is a lot more valuable than one that runs on #1 and #3. Even more so as the Mac platform has continued to gain ground outside of its classic stronghold of media production. (Almost 10 years ago, I worked at a software company that made a Windows program for research and academia, and we got daily inquiries into a Mac version. For many customers, especially large ones seeking site licenses, the lack of a Mac version removed our product from consideration entirely, as all our major competitors supported both. Linux inquiries were but a tiny fraction as many as Mac.)

author: Lukas
author_rank: Frequent Contributor
timestamp: August 30, 2020, 12:02:02 pm
content: Quote from: tooki on August 30, 2020, 09:46:56 amTo clarify things a bit more about mac OS: People tried getting it to work on mac OS, but hit a roadblock when it came to OpenGL:https://github.com/horizon-eda/horizon/issues/271Fixing this would probably require in-depth knowledge about Gtk's Quartz backend and of course a mac computer at my disposal, neither of which I have. It's not that I'm actively working against mac OS support, it's just something that isn't within my technical abilities without investing a significant amount of time.

author: Oleander
author_rank: Contributor
timestamp: September 23, 2020, 03:42:26 am
content: Is there a way to hide the left toolbox in a board/schematic editor ? It takes a lot of useful editor area.

author: Lukas
author_rank: Frequent Contributor
timestamp: September 23, 2020, 05:39:13 pm
content: Quote from: Oleander on September 23, 2020, 03:42:26 amThere's the "distraction free mode" that hides the left and right sidebars:https://blog.horizon-eda.org/progress/2020/07/05/progress-2020-06.html#distraction-free-mode-pr-413

author: Oleander
author_rank: Contributor
timestamp: November 03, 2020, 09:30:17 am
content: Is there a way to use mils (1/1000 of the inch) as a main distance unit ?When I enter 'mi' or 'mil' - it is converted to millimeters.

author: Lukas
author_rank: Frequent Contributor
timestamp: November 03, 2020, 11:09:22 pm
content: Quote from: Oleander on November 03, 2020, 09:30:17 amI've been waiting for this question since the very first release. Apart from me not liking imperial units, I see another real problem, namely accumulating rounding errors. The internal representation of lengths is nanometers. A length of 1mm will be displayed as 39.37mil, which after editing will become 0.999998mm. While the error might no be an issue, I don't have a good feeling about it.Apart from that, version 1.3.0 just got released:https://github.com/horizon-eda/horizon/releases/tag/v1.3.0

author: Lukas
author_rank: Frequent Contributor
timestamp: January 30, 2021, 11:17:35 am
content: Version 1.4.0 just got released:https://github.com/horizon-eda/horizon/releases/tag/v1.4.0Apart from the usual set of new feature this release includes two important bugfixes for windows users:No more laggy rendering on Intel GPUs, this fixes number 8 inhttps://www.eevblog.com/forum/eda/horizon-eda-version-1-0!/msg3107642/#msg31076423D preview doesn’t crash randomly with “gl error 1285”

author: djac
author_rank: Regular Contributor
timestamp: February 11, 2021, 10:16:49 am
content: Hello Lukas,Today I was once again looking for a replacement for KICAD and came across your Horizon and read through the documentation. And here your idea that library management is the crucial pivotal point in an EDA program immediately caught my eye. This is the main reason why I am looking for an alternative to KICAD, because it is extremely complicated and not intuitively solved. Most of the work in creating schematics is spent on creating or searching for symbols or footprints, the rest is rather the smaller part.In particular, the idea of creating a central repository on Github is really good. Anyone can simply put a tested "part" there and it is then available to the general public. Once there is a community of users who use the program, they will embrace the idea enthusiastically and the collection will swell rapidly because everyone has the problem that it takes up far too much time.I then installed the programme to try it out. The first impression is good. Nice logical presentation, the programme reacts quickly, etc.But now comes the big "but".The documentation is completely inadequate. First of all, you explain some basic ideas much too abstractly. I can't do anything with the Powernet thing, for example. What is that supposed to be good for? Well, the program grumbles when I want to connect two netlists just like that. But what practical relevance does this have, what advantages can I derive from it? To which connections does the power net refer, only to ground or also to +Vcc and -Vss or is it generally good for splitting into subnets. I don't want to waste my time with the question: what did the artist mean by that? This is always best done with the help of examples.The lack of concrete examples is consistent throughout the manual. An example of this is the chapter on creating "parts". Instead of just general explanations, an additional concrete example would be very helpful. How do I create, say, a quadruple OpAmp. With screenshots and explanations such as what changes when gate and unit are trivial, as with a resistor. I tried to create a part LTC2057, but couldn't figure out what to do in which order. If something is not intuitive, it must be in the manual!But there also seem to be logical breaks in your library concept. Let's take the simple components like resistors etc. You seem to have the idea that the definition of a resistor includes parts, manufacturer, ohmic value, maximum power and footprint. This completely misses the point in practice. Just think how many parts come together if you iterate over all manufacturers, values according to E192 etc.. The disk space on GitHub may quickly reach its limits.The concept does not fit. For an EDA, the value of a resistor and the manufacturer are completely irrelevant, but not the symbol and the footprint. The former are purely declarative attributes that have no place in a library. There, the connection resistor-symbol-footprint is sufficient. The latter are project-specific and have to be added on the fly in the schematic editor or wherever else it makes sense. And for this you can provide a few attributes that are generally valid for all components, e.g. manufacturer, series, order number, component designation (e.g. R14, not editable), value, power, comment (free text), all of which are sensibly preassigned with "" or "unknown" and which have a specific meaning in the schematic editor, component printout and component list. For this, these attributes must then be stored in files in the project directory and not in the pool.In any case, no one will use a program that first has to create a complete part for a simple resistor or pick it out of millions of entries. The rest may be as good as it wants, but that is a knockout criterion.Your program seems to have really good facilities and ideas, but if you also want to succeed, you would have to change your priorities:1. a most carefully prepared documentation. I know this is the unloved child of every programmer (I've been programming all my professional life, so I know what I'm talking about). But without it, you won't get a community around this program.2. look at your program from the point of view of a user who doesn't care about the internals and beauties of your code, and whose only goal is to get a finished board with the help of a very user-friendly program, and with as little time and mouse clicks as possible. This can be achieved by using the program intensively as a user.3. You can implement all extensions and refinements later, but first it is important to create a solid basis all around.As it is now, I won't want to use it, but I would be really happy if you could bring the thing to a successful end.Best regardsDieter

author: nctnico
author_rank: Super Contributor
timestamp: February 11, 2021, 07:06:58 pm
content: Quote from: djac on February 11, 2021, 10:16:49 amOn the contrary! If you look at how part libraries are being build & used at larger companies you'll see that all these properties are included. Otherwise you need to do manual work when creating the BOM. When creating a schematic you are not picking a symbol + footprint but a part that exists in the real world and therefore it needs the parameters that tie it to the real world. All the big EDA packages work this way because it is the only way to keep a handle on the logistics of getting a board produced. So yes, creating a part with all the parameters before drawing a schematic IS the right workflow.

author: Pitrsek
author_rank: Regular Contributor
timestamp: February 11, 2021, 09:15:43 pm
content: +1 for what nctnico said. Library is handled in correct way with HorizonEDA. Actually it is one of the greatest strength of the tool.

author: PlainName
author_rank: Super Contributor
timestamp: February 11, 2021, 09:35:52 pm
content: QuoteShouldn't that be qualified with "when being used at larger companies"?

author: nctnico
author_rank: Super Contributor
timestamp: February 11, 2021, 09:53:28 pm
content: Quote from: dunkemhigh on February 11, 2021, 09:35:52 pmNo. For over 20 years already I have used this workflow at all companies I worked in (big & small) and am still using it even though I'm a one-man-band. It helps a lot at the logistics end. You create a component once and then re-use, re-use and re-use. Especially for parts like resistors which are used a lot it is extremely convenient not having to question what type to order. When I create a BOM it comes complete with order numbers for Farnell & RS so I can copy & paste the items I don't have in stock straight into the website. Filling the database with common parts like resistors and capacitors to get started is tedious day's work but from then on you start raking in the rewards.

author: djac
author_rank: Regular Contributor
timestamp: February 11, 2021, 10:37:35 pm
content: @nctnicoHowever, this approach is extremely impractical for the following reasons:A project is first in the development phase and it is about the creation of prototypes, and this also several times.Initially, it is only a matter of technical decisions. Let's take a 1K resistor as an example. The technical decision also includes the design, let's say smd 603, which also affects the design of the PCB. I want to find such an initially incomplete element, i.e. R,603, in the library.Only those attributes are preassigned that are necessary for the immediate PCB creation. Of course, there are other technical decisions to be made, such as resistance value, possibly also tolerance, power or temperature coefficient. However, these attributes have no relevance for the PCB creation.I would like to be able to add all these attributes, if they are needed at all. The technically relevant data will probably be added in the schematic editor, but manufacturers etc. are usually irrelevant in the development phase. This topic will therefore only be addressed when the development is completed and the actual production begins. What is needed here is an editor for the bom list, with the help of which the missing attributes can be added, but do not have to be. The manufacturer, for example, does not matter for most resistors, which one is selected is more a question of the achievable purchase prices and no longer concerns the development department, which thus leaves this attribute unoccupied and thus leaves the decision to the purchasing department.In any case, these additional attributes have no relevance to the task that an EDA tool has to cope with and thus do not belong in the library. This data is project-specific and will change again and again in the course of the product's life without affecting the PCB itself. It is therefore crucial to simply add these attributes, e.g. by double-clicking on a symbol in the schematic editor, which opens a window for this purpose.Of course, this does not exclude the procedure of defining everything in advance in the library, because these descriptive attributes may well exist in the library. Those who like it should do it and dig through hundreds of thousands of resistor entries until they find what they want.The decisive factor, however, is the possibility of simple updating in the schematic editor, etc. (without changing the library by default). Only in this way can the tool adapt to the different work processes in the different organisations and not vice versa. An engineering office that only builds prototypes has different needs than a company that serves the mass market with finished products.Your concept may correspond to your preferences, but it is too rigid and does not fit in with the processes in other organisations or with the preferences of other people.

author: nctnico
author_rank: Super Contributor
timestamp: February 11, 2021, 11:11:47 pm
content: In most practical situations parts like resistors and capacitors don't have manufacturers and part numbers specified in the parts database. Just a minimal specification like the value and tolerance. For capacitors only voltage and dielectricum. This is perfectly reasonable for an assembler to deal with and there is no need to be super rigid about it.However if you need to be more specific then an additional part should be created in the database. For example a resistor with a tolerance of 0.01% with a specific aging coefficient. If you leave that to the schematic only it will be very prone to errors. One of the features in Orcad (for example) is to check the parts against the database. This is an extremely useful tool to make sure that your BOM will be complete. Another feature of Orcad is to go through the BOM and look for a specific part value. If it turns out you have 50 times 100nf 0402 10V and 10 times 100nf 16V then you can quickly turn all these into 100nf 16V by linking them to a different part in the database. All the fields will be updated automatically. Actually: the only information that is relevant for the schematic are references to the database. The data in the schematic is just a copy of that.

author: djac
author_rank: Regular Contributor
timestamp: February 11, 2021, 11:31:43 pm
content: Then we are actually in agreement with regard to the requirements of an eda tool.The descriptive attributes are available in the database, but the necessary entries are only R and footprint in the case of a resistance.I can't say whether this works in Horizon, because I didn't get that far due to the incomplete documentation. But what I can't do is open a window in the schematic editor to change or add project-specific values. I don't want to have to switch between schematic and part editor every time just to enter the resistance value. That is much too inconvenient. In the schematic editor, a window opens after double-clicking on a symbol, but the resistance value is only displayed and cannot be changed.

author: nctnico
author_rank: Super Contributor
timestamp: February 11, 2021, 11:53:34 pm
content: Quote from: djac on February 11, 2021, 11:31:43 pmNo, it is better to take it one step further.QuoteYes, and that is inline with how it should work. You have to define all resistor values in the database before you are able to use them. Just putting values into a schematic is not an organised way of working (good for DaveCADtmbut an EDA tool is usually used to create a board). It will lead to errors due to inconsistencies. At some point you'll have a board made and at that point all parts will need some minimum specification for the purchasing department (even if that is yourself) to deal with the part. In case of a resistor it is handy to have a value, case size and tolerance for example.

author: Lukas
author_rank: Frequent Contributor
timestamp: February 12, 2021, 12:12:07 am
content: QuoteTo get the usual power/gnd symbols. That's about it.QuoteThat's actually documented:https://horizon-eda.readthedocs.io/en/latest/imp-sch.html#nets-and-net-segmentsQuoteI agree that the documentation still has quite some scope for improvement, nevertheless people figured it out:https://github.com/horizon-eda/horizon-pool/pullsQuoteAs other people already mentioned, this is by design, inspired by how it's done in the enterprise world. The schematic/netlist is the single source of truth for the BOM. You can't tell someone else like your assembly house or purchasing department to get you a 1k 0603 resistor. You better tell them to get a panasonic ERJ-3EKF1001 and you get exactly what you want.QuoteThat's what the parametric search is for. That way you know, that the resistor you're thinking of is actually something that you can get. The partinfo integration even tells you the stock of your favourite distributor.QuoteThis is exactly why I started the project. I wasn't happy with what the then-present open source PCB design tools, so I made my own. The nice thing about being user and developer in one person is that things can be exactly the way I want them to be, only limited by time and imagination.QuoteYou don't. You go the part browser and pick another one with the desired value.All in all, my goal isn't to make Horizon EDA appeal to the widest audience possible. I'm quite happy with how things are progressing community-wise on github, IRC and other places.

author: tycz
author_rank: Regular Contributor
timestamp: February 12, 2021, 06:39:47 am
content: Quote from: Lukas on February 12, 2021, 12:12:07 amThere's nothing wrong with specifying a component as 'resistor 1k 0603'. I do this routinely. The looser the spec, the easier it is for the broker/factory to by parts that fit the requirement, the cheaper the parts will be. Try it sometime.Quote from: Lukas on February 12, 2021, 12:12:07 amThis workflow absolutely sucks for entering analog circuitry. Normally when I design something analog I place my components first and wire them up. Only once I can see the topology do I start assigning values. It seems like a great additional effort required to create the circuit mentally and calculate the values before even seeing the the thing on the page!It's can also be useful to be able to create a circuit without values if under time pressure, like the board layout must be ready by the end of the day to meet a deadline.Quote from: nctnico on February 11, 2021, 07:06:58 pmAs far as I can tell, Horizon is unique in it's total inability to edit component values. Altium, for example, will happily let you change values on the fly if you wish to do so. Other packages may have this mode as an option, but it's not normally forced like this. I find that for some components it's really useful to have all the parameters welded together such as connectors and potentiometers. For other components such as resistors and caps, it's a horrible inconvenience.

author: djac
author_rank: Regular Contributor
timestamp: February 12, 2021, 11:02:21 am
content: @nctnico"You have to define all resistor values in the database before you are able to use them."As I said, the structure of the library should be flexible enough to allow such a way of working. But you and your approach are not the navel of the world, there are well-founded other work processes and a tool should be able to map them as well. A good tool should be so flexible that it can be used under the most diverse work and organisational processes. It is not its task to impose a certain approach on the user.@ Lukas"the documentation still has quite some scope for improvement"I think that is a big understatement. I have rarely seen such superficial and incomplete documentation."That's what the parametric search is for."To place a simple field, forest, meadow resistor takes far too long. I mostly prototype, and 90% of the simple components come from stock, only special types have to be ordered for a project. But your tool would force me to enter all the types with all their attributes into the database first. All too complicated and time-consuming for my needs."As other people already mentioned, this is by design, inspired by how it's done in the enterprise world."Well, if you think that inflexibility is a sign of quality, so be it. Then I'll just have to stay with KICAD or keep looking.

author: Pitrsek
author_rank: Regular Contributor
timestamp: February 12, 2021, 07:34:51 pm
content: Quote from: djac on February 12, 2021, 11:02:21 amSorry but this is not true, each and every tool imposes a certain philosophy and workflow. Good luck going against the grain of the tool... If the tool would cater to every possible workflow, it would be unusable mess. Ask 5 engineers and you'll get 6 opinions...Honestly I do not see what is the fuss about. You are free to define as much or as little parameters as in library as you see fit, you just have to define them before you work(which will actually save you time in the end). There are scripts that come with Horizon that allow you to batch create family - you can create "Generic" Manufacturer with only resistance value mapped, or resistance and package, oh maybe tolerance is important to you as well... you can decide how far you want to take it. From 1k only to ERJ-3EKF1001, your choice. You can create part with TBD value as well.Quote from: djac on February 12, 2021, 11:02:21 amSorry I can't disagree more. Horizon lets me structure the library whenever way I feel like with component cases and custom parameters, all searchable. + ability to reuse symbols. I think we could discuss other aspects of the tool as how it stands compared to KiCad, but for library comparison, there is no comparison.

author: nctnico
author_rank: Super Contributor
timestamp: February 12, 2021, 09:41:36 pm
content: Quote from: djac on February 12, 2021, 11:02:21 amBTW: A library system similar to what is already in Horizon will be added to KiCAD in an upcoming release due to demand from professional / corporate CAD users.

author: nctnico
author_rank: Super Contributor
timestamp: February 13, 2021, 01:31:31 am
content: Quote from: tycz on February 12, 2021, 06:39:47 amYou can start out with 'bogus' values and fill in the details later. For clarity you could even define components with 'bogus' as the value. It is a clear indication the schematic isn't ready to produce a bill of materials. Changing values 'randomly' without it being clear that the design isn't finished is horrible. Especially when working on a design with multiple people. In the end an extra round of checks is needed to verify all parts match the database. And if not, what part is actually needed? By that time the person who designed the circuit has moved on to the next task / problem and the work that person did to determine which component needs to be used has to be done again. Been there, done that. I agree that a more structured /rigid approach to creating schematics takes some getting used to but in the end it pays off in terms of efficiency and reduction of errors. Personally I never ever change the value of a part; I always choose a different part from the database and if the value doesn't exist I create a new part in the database. It needs to happen anyway and I can totally forget about the details of the part once it is in the schematic. A correct footprint, BOM entry and board as it is designed (I'm avoiding the word correct here) are guaranteed. No unpleasant surprises due to parts with wrong values, wrong order codes or footprints not matching.I've been part of a project where the designer of a fairly complex board spend two weeks on figuring out a problem (too much leakage current somewhere) and in the end resorted to measure every resistor. It turned out to be an error in the (manually created) BOM. Those kind of errors don't happen to me.

author: djac
author_rank: Regular Contributor
timestamp: February 13, 2021, 10:38:34 am
content: Dear nctnico, no one wants to take away your way of working and your belief that this is the only way to minimise mistakes. You should still be allowed to define all components in the database down to the last dot before you touch the schematics. I don't even want to deny that this can be a thoroughly appropriate way of working, e.g. in teamwork.However, in other contexts this is too cumbersome and costs too much time. The point here is to provide more flexibility in the interface. The parteditor seems to be able to cope with the minimal definition of manufacturer,R,footprint, resistance value. I have tried this and it works, but I have not been able to find this minimum value in the database because the naming in the database is not clear to me thanks to the poor documentation. Theoretically, you can also omit the resistance value, but you cannot enter it in the schematic. Instead, you have to switch to the part editor, search for the base element, duplicate it, enter the resistance value, save it, switch to the schematic, open the part list there, search for the newly created component and finally place it. It couldn't be more complicated. Nobody does this and the only feasible way is to create all the components before starting the schematic.That's what I mean by inflexible.Instead, I would like a minimum (R,footprint) and maximum definition (+ all descriptive attributes that are not necessary for PCB creation) to be possible in the part editor - as is already the case now), but additionally the possibility of adding these descriptive attributes (and only these) in both the schematic and PCB editor. This could be realised, for example, in such a way that a double-click on the component opens a window in which these attributes can be added or changed.Then there should be the option to save these entries only project-specifically in order not to unnecessarily inflate the database, or to also change these values in the database. In the latter case, you need the option of whether the database element is only updated or duplicated under a new name.These changes would probably be relatively easy to insert into the existing code base. Then, nctnico, we would both be satisfied. Isn't that better than just you being satisfied?

author: nctnico
author_rank: Super Contributor
timestamp: February 13, 2021, 11:14:47 am
content: Quote from: djac on February 13, 2021, 10:38:34 amYou really have no idea about how electronics are designed by professionalsIn bigger companies they even have people dedicated to fill the part database. Just changing a value isn't allowed (do that and you might even get fired); you have to put in a request to add a component to the database and wait until it has been added before continueing with the design. It really isn't me pushing this workflow; I'm trying to show you the reasons why the workflow is used c.q. why it exists. Many people have thought long and hard about it. Unlike software an agile workflow doesn't really work for hardware because the turnaround times for having boards routed and produced is so long. First time right gets a product out of the door quicker.Last year a supplier of one of my customers had to redo a batch of expensive boards because a new employee (fresh from school) changed the values in Altium instead of using the company's component database. His supervisors didn't caught it as well. In Horizon EDA he would not have been able to make this mistake (costing the company more than an Altium license).

author: PlainName
author_rank: Super Contributor
timestamp: February 13, 2021, 11:43:02 am
content: Quote<Looks around the office... hmm, just the cat>I guess my gaff isn't big enough for this product, then.

author: djac
author_rank: Regular Contributor
timestamp: February 13, 2021, 12:39:15 pm
content: "You really have no idea about how electronics are designed by professionals"Which way is professional and effective always depends on the circumstances, there is no one professional way of working, so please stop proselytising.

author: Feynman
author_rank: Regular Contributor
timestamp: February 15, 2021, 06:28:53 pm
content: Quote from: Lukas on February 12, 2021, 12:12:07 amI have to agree on this one. Every single company with a decent engineering department i worked with or worked for specified full part numbers for every single resistor. In most cases this was done once with some sort of script. In early development stages one can of course work with some preliminary parts that maybe only have a schematic symbol and maybe a value. But at the latest the final production design should have full part numbers for every single (purchasable) BOM item. This is also really handy especially for capacitors: You don't have to look up every time again if your desired capacitance value is really available in this package with that voltage and with this temperature coefficient. If you have full part numbers in your library, you are 100% sure that this part actually exists.And that's also the preference of most assembly shops. The reason is simple: Most assemblers have no intention to stock some ordinary Panasonic 0603 10k resistor. In fact most assemblers prefer not to stock anything, simply because it's expensive (of course they happily store stuff, if you pay them to). If they have a full part number, they have the full specification. And thus an easier time finding alternatives if there is shortage on the market or in the rare cases where they actually have something "lying around" from a canceled job or whatever.In the end the assembly shop has no idea if youreallydon't care about the rated voltage of a capacitor when you just say "100n 0603".Another advantage: Nowadays, many shops offer some sort of "instant quote" on their websites, where you upload your BOM and stuff and get a quote within seconds. Not going to happen without full part number for every BOM item.

author: PlainName
author_rank: Super Contributor
timestamp: February 15, 2021, 07:56:03 pm
content: QuoteOr existed when the device was added to the library.

author: djac
author_rank: Regular Contributor
timestamp: February 16, 2021, 09:37:06 am
content: Quote from: Feynman on February 15, 2021, 06:28:53 pmYour statement is contradictory in itself, especially if you want to equip your boards externally.For the assembler, it is advantageous if a resistor is not over-specified and thus has more straight lines of freedom. In many cases, he can use his own stock and does not have to order anything. This saves enormous costs (larger quantities when ordering). Or if he has no stock, he can order from the company that is offering cheap products at the moment.What must be fixed are the technical key data that must be adhered to for the resistor so that the circuit functions, i.e. in most cases footprint, resistance value, tolerance. Even the exact power rating is unimportant in many cases and results indirectly from the design (e.g. 603).Whether the resistor is manufactured by Panasonic or Yageo is irrelevant in most cases.Of course, there are other cases where the manufacturer and the series must be specified, e.g. when it comes to certain high-frequency characteristics or very precise resistors with a low temperature coefficient. This is normally relevant for the rather smallest part of the resistors.So again, the point is that an EDA tool does not rigidly define the processes, but has the flexibility to adapt to a wide variety of user needs.

author: Gribo
author_rank: Frequent Contributor
timestamp: February 19, 2021, 03:40:19 pm
content: That's the purpose of AVL (Approved vendor list). Usually you specify one PN, and in a different column, specify Any alternates, AVL only, or Do not substitute. And while a 1K Ohm, 1%, 0603 seems to be a bog standard part, sometimes they are not, and the assembler has no way of knowing that. At the end, it is all about communicating your design intent.

author: Lukas
author_rank: Frequent Contributor
timestamp: June 01, 2021, 08:32:23 pm
content: A bit later than usual, Version 2.0 is out:https://github.com/horizon-eda/horizon/releases/tag/v2.0.0In addition to a wall of text changelog, there's also a blog post about the most important new features:https://blog.horizon-eda.org/new/2021/05/31/whats-new-2.0.html

author: SiliconWizard
author_rank: Super Contributor
timestamp: June 02, 2021, 03:46:43 pm
content: Quote from: Lukas on June 01, 2021, 08:32:23 pmImpressive work!

author: Bob Sava
author_rank: Regular Contributor
timestamp: June 04, 2021, 08:57:43 pm
content: Quote from: SiliconWizard on June 02, 2021, 03:46:43 pm"Custom values on symbols" - I have to check that out!

author: Warhawk
author_rank: Frequent Contributor
timestamp: June 07, 2021, 10:08:27 am
content: The 3D model projection feature looks very interesting. Great job. I need to give it a chance the second time.(KiCad user here).

author: Bob Sava
author_rank: Regular Contributor
timestamp: June 08, 2021, 04:16:34 pm
content: Quote from: djac on February 16, 2021, 09:37:06 amIt appears, with new pool structure in v2.0, it would be possible to create pools of generic parts with just values and footprints. If that's still too much, one could create single part for each footprint. Then hide all parameters while exposing description via 'custom values on symbols' feature, also in v2.0, where one could specify part parameters. I probably would just stick to generic parts with individual parameters, however.There are some scripts on github that could be the starting point:https://github.com/RX14/horizon-pool/tree/master/scripts

author: SiliconWizard
author_rank: Super Contributor
timestamp: June 10, 2021, 06:07:49 pm
content: I agree with the process being a bit too rigid, that was discussed quite a while ago.Now I haven't looked at the new component database, so this point may have been addressed. I fully understand the point of enforcing all parts to be fully defined (instead of being generic) for a final design, but as I and several others have said, not all workflows are the same and the way to get there varies quite a bit. I would have favored the possibility of using generic parts with customizable attributes (values, tolerance, footprint, whatever), and just add a check in the BOM generator (or maybe already at the schematic-to-layout step, to ensure that footprints are all correct): each generic part would yield a warning or error, then it would give you the opportunity to change all generic parts in a design for fully-defined parts. I find this process much more suitable for most users. But that's just my opinion. And mabe the new version actually allows this?As to Horizon's 3D viewer, KiCad should certainly take a hint. It's very good.

author: Feynman
author_rank: Regular Contributor
timestamp: June 13, 2021, 07:41:57 pm
content: Quote from: Warhawk on June 07, 2021, 10:08:27 amYeah, looks like someone was tired of exporting a 2D-projection from an external 3D-CAD tool and then importing it back to the PCB tool (like me)

author: free_electron
author_rank: Super Contributor
timestamp: June 18, 2021, 12:39:55 pm
content: On the concept of libraries i offer a different view.Manufacturers and manufacturer part numbers stored in a library should not be used to pull a final bill of materials. let me explain :- unique parts : 1 function , 1 footprint , no pin compatible substitutes : you can encode manufacturer and manufacturer part number directly in the database. there is no alternative anyway.- multisourced parts : still 1 function, 1 footprint but possible variety of manufacturers / part numbers. how do you deal with this in a library ? list all ? list a few ? list the cheapest ? (which can change hour to hour) list the approved ? list the ones in stock ?The second case is the huge issue with such an approach.A true parts catalogue (i deliberately do not call it a library. the library is the CAD portion : symbol / footprint ) decouples that.The CAD portion contains- footprint- symbol- a number of useful parameters so that part selection can be done in the cad system. working voltage, value dielectric for caps, forward current, reverse voltage for diodes etc.- a suggested manufacturer and manufacturer part number so you can pull a datasheet ( this covers both cases mentioned above : unique and multisourced )- a textual description for this part- unique identifier for this 'element'. This unique identifier is "data-less" it contains no identifiable part information. so no numbers like IC-TI-LM741 or RES-1K-0805-1%The BOM database portion translates the unique identifier to "orderable parts". This translates the one (unique identifier) to many (part numbers) portion of datai picked 1k 0805 1% in the cad , dropped symbol and footprint. When the bom needs to be generated part 0923540-00 (index-revision) is accessed in the database and it creates a line item that says<designators from CAD>, <textual description from CAD>, <manufacturers from DB><manufacturer part numbers from db><vendor from db><vendor part number from db>R214,R215 : Resistor 1K 0805 1% , Vishay CRW0805-102-DQR , Yageo RM8-1K00-P Digikey RN-7362, Mouser PQ2154, Avnet RES1K08051pThe pick and place file can do the same<designator><x>,<y><top/bottom><rotation><textual description from CAD>, <manufacturers from DB><manufacturer part numbers from db><vendor from db><vendor part number from db>R214 ,2.254,9.521,T,270, Resistor 1K 0805 1% , Vishay CRW0805-102-DQR , Yageo RM8-1K00-P, Digikey RN-7362, Mouser PQ2154, Avnet RES1K08051pR215 ,3.745,5.958,B,45, Resistor 1K 0805 1% , Vishay CRW0805-102-DQR , Yageo RM8-1K00-P, Digikey RN-7362, Mouser PQ2154, Avnet RES1K08051pThe cad library editor needs to talk to the database. whenever a new part is created in the cad library , a new index number is requested form the DB. the CAD creates a new object with this ID, attaches footprint and symbol, textual description and whatever other data is at hand. if you have manufacturer and part number you can enter it and it will get loaded in the DB ( not in the CAd library ! loaded into the DB under the index). The cad tool can simply present a simple UI into the DB to do basic operations of adding the initial load.The DB portion is accessible through another UI (more detailed) where you can edit the "textual" data.Whenever a bom or pick place is generated the CAD tool pulls the latest data from the db based on the unique index.The net result is:- At design stage you are not "locked in" to manufacturer / part number. if you have it , load it, if not move on.- at production time you can simply make sure your DB has the latest ordering data based on whatever criteria you need. ( could be price, could be signed contracts, could be whatever is in stock at digikey , could be whatever you have in house.)This can be stored in a simple single-file db like Firebird or even a tabular format like a CSV file or excel file.The key is the decoupling of the CAD and ERP/PLM data. The ERP/PLM data is in flux (prices change, product lines go obsolete, get replaced, contract change. not all companies work the same way) Storing this outside the CAD gives maximum flexibility.Bonus : you can crosslink this DB and integrate it with part search engines like octopart or digikey data pulls through their API's if you want. This is all doable now as this data lives outside of the CAD world. IF the data updates , the CAd pulls it during BOM and P&P generation so You now have a live system with complete flexibility for both engineering and procurement/planning/productionCritcial points :- the unique ID is immutable. once created it cannot be reused. it is alive ( part exists ) or dead ( part is obsolete) it is never reused. even on a dead part the ID is still 'used' ( to mark it as obsolete, potentially point to substitute)- the db is a WORM (write once, read many): any alteration of text data creates a revision of a part. Data is never lost. The CAD tool can flag you are using an out-of-date revision and show you the list of newer revisions. it is up to the engineer to approve/reject. in most cases automatic approval is fine (if the parts are vetted to be correct) There can be a flag :1 = mandatory update ( corporate policy, approved vendor for example , or product line discontinued and substituted or order number changed)2 = requested approval (may be a power rating change for example the 1/4 watts are obsolete so we swapped to 1/3 watts , same tolerance,value, upward compatible change basically)3 = need replacing (part obosolete , no footprtin compatible part available )4 ... and so on.

author: nctnico
author_rank: Super Contributor
timestamp: June 18, 2021, 04:15:37 pm
content: Quote from: free_electron on June 18, 2021, 12:39:55 pmAFAIK this is exactly how the parts library of Horizon Eda has been organised from the start. Just don't get hung up on semantics between library / database; it is the same in this case. However, for some people this turns out to be too rigid.

author: free_electron
author_rank: Super Contributor
timestamp: June 18, 2021, 07:14:20 pm
content: nctnico got me intrigued , so i installed it to fool around with it.at first glance it is very intuitive i could draw schematics and pick parts within the first minute.rapid fire questions :-can the keyboard shortcuts be redefined ? saved in an importable/exportable settings file ? that would make it easier to migrate from other tools. some commands are not intuitive.- placing a power object requires nets to exist. that requires opening another panel first, defining the netnames. on a port i can drop a port click it and type in the netname i want. (it sys plz_fix when a new port is dropped). power objects should behave the same way. it is counterproductive to first need one window to define the nets, then another window to pick them.- move operations : always drags wires. make a Drag operator instead. M = move , just what is selected, breaking lines. wiring should not rubberband. D = Drag : rubberbanding of wiring ok- i managed to draw a diagonal, offgrid wire. how do i edit its endpoints ? when you click a wire it shows a caret at the midpoint. i want carets at the endpoints as well so i can move those. i also want the ability to'break' a wire , or add a bend point.-- need handles on begin/end of a section of wire so they can be dragged-- need ability to cut wire ( for example hit the / key , then click on a point and it snips a section exactly 1 gridspace long )-- need ability to add a bendpoint to a section or at least move the center caret on-gridpcb editor-------------- too much visual clutter. pads with rounded corners show crosshairs, circles and other clutter- place via terminates routing. when in the middle of routing in want to be able to change layer and go on. so placing a via should shoot the via , then continue on other outside layer ( until you start supporting stacked vias )- garbage collector : two track segments, running in same direction , with same width need to automerge to 1 segment.nifty idea's- auto teardropping on pad entry- auto teardropping on track width changeslibrary-----------Thats a big mess.- there is no rhyme or reason on package names. no convention is followed like IPC naming convention that tells you pitch , body size , pincount etc- many non existing names. there is no such thing as a 5 pin sot23. the correct name is a sot25- pads, courtyards, centroids , assembly data . all non existing

author: PlainName
author_rank: Super Contributor
timestamp: June 18, 2021, 09:59:39 pm
content: QuoteOn the contrary, there are zillions. Perhaps you mean Diodes Inc no longer use the designation, but there are more sources than them.Hmmm. Seems there are indeed zillions, but some big names are going, or have gone, SOT-25/26. Still, devices are specified as SOT-23-5 so it's a valid designator even if it's not 'official'.

author: free_electron
author_rank: Super Contributor
timestamp: June 19, 2021, 11:58:40 am
content: Quote from: dunkemhigh on June 18, 2021, 09:59:39 pmnope. it has always been sot23 25 26. in the heydays it was labeled sot23-5 and -6 but then when they moved to smaller IEC stepped in and said "this needs to be uniform. you want 323 353 36 so make it 23 25 26 . Afaik the -5 -6 were never ratiified as iec standards.just like it has always been sot323 353 363 sot523 sot553 and sot 563

author: PlainName
author_rank: Super Contributor
timestamp: June 19, 2021, 12:25:03 pm
content: One lives and learns.

author: Lukas
author_rank: Frequent Contributor
timestamp: June 20, 2021, 06:17:28 pm
content: Quote from: free_electron on June 18, 2021, 07:14:20 pmDunno, to I've never found that behaviour useful. For disconnecting net lines from symbols, there's the "disconnect tool".QuoteClicking on the ends of a wire to select the junction it's attached to.QuoteIf a net line isn't horizontal or vertical, dragging it will bend it. In all cases, there's the "bend net line" tool.QuoteYou're the first one to bring this up, can you describe some cases where this would come in handy?QuoteTurning off outlines will get rid of these.QuoteThat's exactly how it works. To get the pcb editor to switch layers automatically, you'll have to set up a layer pair rule.QuoteHuh? Pads, courtyard and assembly outlines are there. Are you referring to the pick&place centroids? So far everyone has been happy with the pick&place center being on the package's origin.

author: free_electron
author_rank: Super Contributor
timestamp: June 20, 2021, 06:59:28 pm
content: Quote from: Lukas on June 20, 2021, 06:17:28 pmthe problem with rubberbanding is that it vomits diagonal lines everywhere ! and that takes oodles of time to clean up. select a group of elements. move out of the way so i can add things inbetween. if the move is anythng else than pure horizontal or vertical things become a mess. that's why i want explicit move operators and drag operators.Quotedoesn't work on diagonal lines.Quoteto move a section of schematic out of the way to insert another block. i should be able to slice individual wires , or draw a 'slicing line' anything crossed by the slicer gets broken. ( also need in the pcb tool by the way !)Quotemake it off by default.Quote

author: Lukas
author_rank: Frequent Contributor
timestamp: June 23, 2021, 11:09:42 pm
content: QuoteThat's been somewhat improved in Version 2.0:https://blog.horizon-eda.org/new/2021/05/31/whats-new-2.0.html#fewer-crooked-net-linesQuoteIs the diagonal line between two pins? If that's the case its start and end points are determined with the pins. In that case, just drag the line to bend it.QuoteGood suggestion, just implemented it:https://github.com/horizon-eda/horizon/commit/7c54653cc70ea0e65991a819ceeb3b90fb68bccbQuoteHold down the fine grid modifier key (usually alt, can be changed in the preferences). Should only be required when drawing symbols though.QuoteSeems reasonable, should land in a couple of days.

author: Lukas
author_rank: Frequent Contributor
timestamp: January 13, 2022, 11:03:20 pm
content: It's been at while, but now we're at version 2.2:https://blog.horizon-eda.org/progress/2022/01/09/progress-2021-09-12.htmlThe banner feature this time is support for hierarchical schematics.

author: Lukas
author_rank: Frequent Contributor
timestamp: May 07, 2022, 05:15:51 pm
content: For those still reading along, I recently released version 2.3:https://blog.horizon-eda.org/progress/2022/05/04/progress-2022-01-04.htmlCopper clearance checks are about 3 times faster than before and there's ODB++ export.

author: Warhawk
author_rank: Frequent Contributor
timestamp: May 28, 2022, 07:34:52 pm
content: Quote from: Lukas on May 07, 2022, 05:15:51 pmWe don't comment, but we read you Lukas. Thanks a lot for your efforts!