AutoCAD .NET :: Build LISP Function To Return Selection Set?

Aug 29, 2011

Is there any way to build a LISP function in .Net to return a selection set? 

View 1 Replies


ADVERTISEMENT

AutoCAD Visual LISP / AutoLISP :: Return To Calling Function After Trapping Error In Subroutine

Mar 13, 2012

I've got a subroutine that gets the centroid of a closed polygon (lwpoly).  It appears to fail if the polygon has any zero length line segments.  I've added a trap that catches the error and "highlights" the offending polygon, but it stops there and does not return to the main function that called the subroutine.  Is there a way to get back to the main function from the trap?

Here's the subroutine (original function by _gile (Autodesk LISP Forum 9-18-2006):

(defun return-centroid (lwpoly space / obj Region Centroid)
(setq *error* trap1)
(setq obj (vlax-ename->vla-object lwpoly))
(setq Region (vlax-invoke space 'addRegion (list obj)))
(setq Centroid (trans (vlax-get (car Region) 'Centroid) 1 0))
(vla-delete (car Region))

[code]....

View 2 Replies View Related

AutoCAD Visual LISP / AutoLISP :: How To Return Entity Name Largest Polyline Of A Selection Set

Oct 8, 2013

I need to return the entity name of the largest (longest closed) polyline in a selection set. At this point I have no trouble creating the selection set and even getting the area of the boundingbox, which is not the most accurate way to find the true size, but it's a start. The part that has me stumped is: if I iterate through the selection set, then how can I compare one to the other when I have access to the current entity. I've been staring at examples of lambdas but it seems to me that iterating through the selection set is going about it wrong in the first place. 

Below is my current code with a remaining issue. I can return the largest area of the polylines (no good for more than two entities in selection set), but I do not know how to return the entity name:
 
(IF (> (SETQ SS (SSGET "x" '((0 . "*POLYLINE") (8 . "POOL") (-4 . "<OR") (62 . 5) (62 . 256) (-4 . "OR>")))) 1 ) (PROGN (SETQ a (1- a) ent (CDR (CAR (SSNAME ss a))) en2 (CDR (CAR (SSNAME ss (1- a)))) ar1 (APPLY '* (LIST (LAMBDA (ent) (VLAX-INVOKE-METHOD (VLAX-ENAME->VLA-OBJECT ent) 'getboundingbox 'minpt 'maxpt) (SETQ pt1 [code]......

View 9 Replies View Related

AutoCAD .NET :: Return Function With Multiple Objects

Apr 28, 2011

I would like to return multiple objects from a function. can it be done? and how?

function DrawLines()as object
objline1 as new line
objline2 as new line
[..]
return 'objects'

[code]....

View 2 Replies View Related

AutoCAD Inventor :: Function To Return Two Objects Colliding Using Contact Sets

Sep 3, 2009

I would like to find a function that returns the two objects colliding using contact sets. I'm not sure this functionality is available in the API.

View 1 Replies View Related

AutoCAD Visual LISP / AutoLISP :: No Function Definition With Distance Function

Oct 25, 2013

This seems absolutly silly.

(setq p1 (getpoint))
(setq p2 (getpoint))

(setq Dist (distance p1 p2))

Why does this not work?

I'm trying to build a command to replace AutoCAD's "DI" command, to give distance and delta x, y, and z values in decimal and imperial, and keep the angles in XY plane and out of XY plane.

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Return Name Of Different Folders?

May 15, 2013

The following gives me the first folder string, with no back-slashes, that the drawing exists in.

(setq FirstFolder
 ((lambda (/ tmpDir tmpPos)
 (substr
 (setq tmpDir (getvar "dwgprefix"))
 (+ 2 (setq tmpPos (vl-string-search "\" tmpDir)))
 (- (vl-string-search "\" tmpDir (1+ tmpPos)) (1+ tmpPos))))))

Is there a way to find the name of the second folder?

Is there a way to find the name of the third folder?

The string length of the characters for each of the first, second, third (and so on) folders are different, which means I can't count character using the "substr" function.

View 8 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Return Last Command

Jun 27, 2013

Trying to diable the spacebar = (return last command) function!

commandlinehide does te job in the working interface, but a space in scriptmode (in the filename e.g.) still repeats last command!

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: GetBoundingBox Return Bad Results For Z Value

Aug 5, 2013

The lisp routine displays point values of a boundry (window) of an object using the vla_getBoundingBox.

The concept of the routine is to select any object and return two Point window value.

This routine works, but I noticed the Z point is changing depending on the object type drawn in 2d space elevation 0.0.

Test: Open a new drawing.  Set the snap value to 1.0 just to make is easy to see values.

Draw three objects: A horizonal line, A Rectangle and Arc.

Load the gbb.lsp and run it, gbb

Select all three objects and notice the results.

It appears that objects the have an curve change the Z value (very little), but Z should be zero.

Try it with a polyline and then PEdit and FIT and re-check the Z value.

View 5 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Return Coordinates Of LWPOLYLINE

Oct 21, 2013

I recently wrote a lisp routine that was supposed to get the 4 coordinates of a rectangle (LWPolyline).  It worked fine in *MY* tests.  But when someone else ran it, the routine operated as though the order of the points had been rearranged.

How can I get the points AND the order in which they belong?

Here's a sketch to show you what I mean.  As part of my troubleshooting, I had a lisp routine draw a new pline using the points gathered by my first routine.  The result of that on the left.  On the right is the result of that when someone else runs the two routines.

Here's the code I used to get the points.

(defun getplinepointlist(ename)
(setq ent(entget ename))
(setq ptlist (list))
(while (setq pt(cdr(assoc 10 ent)))
[code].......   

View 6 Replies View Related

AutoCAD Visual LISP / AutoLISP :: How To Cancel Return Value Of REPEAT Command

Jan 10, 2013

I use the Repeat command with an index, and when it exits, it writes the last index.

I cannot move it to a new line,nor cancel it.

If i insert a (princ "") inside the loop it moves it to a new line, but also all  the outputs of the loop get extra line spaces

View 1 Replies View Related

AutoCAD 2013 :: Build A Spiral Staircase And Use Spline To Build The Railings?

Oct 10, 2013

I am trying to build a spiral staircase and need to use spline to build the railings. Every time I try to end the spline by hitting enter the spline disappears. I am using 2014, and I have never had this problem before with previous versions.

View 8 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Routine To Build Legend In Paper Space

Aug 21, 2006

Routine to build a legend in paper space

I am looking for a routine or app to pull existing MS legend symbols (inserted from the block library) from the drawing and automatically place them in a PS legend. Since I don't have a large screen and sometimes miss a symbol before running a test plot, I wish to automate the process.

I am looking for a way to populate a paper space legend with blocks inserted into the drawing for Land Desktop 2005, 2006 drawings.

I also have to replace non-conforming architectural blocks with my own, then build the legend from all drawings tabbed in the drawing file (possibly all xref drawings as well).

I liked your article on 'Selectively writing drawing blocks to any folder using VBA'. I need to brush up on my VBA 6.0 and learn VB.NET. Perhaps your code can be modified to do the task, and this would be useful to many other designers in a further article.

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Build Association list With Nested Association Lists

Sep 27, 2013

I need to build an association list with nested association lists.

Here is my current
(IF (SETQ SUBLST (ASSOC CATEGORY PLNTLST))(PROGN (SETQ PLNTS (CONS PLANTNAME (LIST(CONS 'SIZE (dict-get PLANTNAME "SIZE"))(CONS 'COLOR (dict-get PLANTNAME "COLOR"))(CONS 'QTY (dict-get CATEGORY PLANTNAME))) ) PLNTLST (cons PLNTS SUBLST) ))(SETQ PLNTS (CONS PLANTNAME (LIST (CONS 'SIZE (dict-get PLANTNAME "SIZE")) (CONS 'COLOR (dict-get PLANTNAME "COLOR")) (CONS 'QTY (dict-get CATEGORY PLANTNAME)) ))PLNTLST (CONS CATEGORY PLNTS)))
[code]....

View 8 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Return A List Of Strings Of Layout Tabs In Drawing

Mar 6, 2013

(layoutlist) ... returns a list of strings of the layout tabs in the drawing.I've used this ages... Isn't it a core lisp function, or is it coming from express tools or somewhere else?

View 5 Replies View Related

AutoCAD Visual LISP / AutoLISP :: ANGTOS Return Accurate Result For Number If Decimal Places Requested

Jan 5, 2012

I work with ANGTOS and ANGTOF quite a bit.  I'm working with latitude and longitude conversions in MAP 3D for an application where accuracy is top priority.  Most of the time ANGTOS (and RTOS, for that matter) return an accurate result for the number if decimal places requested, but then I run into a situation like this:

Command:
(angtos (angtof "120.0") 1 16)
"119d59'59.999999999949""

I got it to return properly by specifying only 13 decimal places, but the result makes conversion between coordinate systems inaccurate.

View 1 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Remove A Selection Set From A Selection Set

Nov 15, 2013

I've created a lisp that draws the boltholes of a pipe flanges, using the correct number of holes, at the correct diameter at the correct bolt-hole diameter and then rotates.  Everything works seamlessly, when i do just one flange.  But I've discovered that fewuently there will be mulitple times when a user will have to perform the command.

So the idea I had was to do the following:

Select all circles with     (setq CirclesFirst (ssget "X" (list (cons 0 "CIRCLE"))))

Go through the code to create the new circles.

Select all circles with     (setq Circles (ssget "X" (list (cons 0 "CIRCLE"))))

Remove selection set "CirclesFirst" from "Circles".

But what for some reason (command "_.select" Circles "R" CirclesFirst "") does not work.

View 9 Replies View Related

Photoshop :: When Pressing Enter / Return To Commit marquee Selection - Feather Box Turns White For Input?

Sep 17, 2012

When pressing Enter/Return to commit a marquee selection the Feather box turns white for input (and I'm not trying to change the feather values)!? 

Pressing Enter/Return should commit the selection but it doesn't why? I have not changed any short-cut preferences in PS CS6.
 
When I use the Marquee or Lasso tool and make a selection and I'm happy with the selection, I press the Enter (PC)/Return(Mac) and the the "marching ants" should disappear..this has always worked until today? Now, when I press the Enter key, the Feather box (next to the Anti-alias) on the upper left corner goes from grey to white and wants me to change the value?

View 1 Replies View Related

AutoCAD .NET :: Lisp Function Not Working In MEP 2012

Aug 26, 2011

i'm trying to create a LispFunction in vb.net in visual studio 2010 (tried both .net 3.5 and .net 4.0) and it's like autocad is just ignoring them. is there a setting or something to disable .net LispFunctions from being loaded? CommandMethods work just fine, and i'm not seeing any errors. in fact i'm using the most basic of functions, just returning the arguments. and nothing. Any diagnostic or something to determine what's the matter?
 
<LispFunction("HelloWorld")>Public Function HelloWorld(args As ResultBuffer) As ResultBuffer Return argsEnd Function does nothing, when i setq a variable on it, it's just nil.

View 1 Replies View Related

AutoCAD .NET :: Possible To Call Lisp Function After BeginDocumentClose Event?

May 15, 2011

I am currently in the process of re-writing my VBA in .net.In VBA I successfully used AcadDocument_BeginClose which called lisp functions.It would be nice to have all code in the same environment I need to transition my changes.

Therefore I need to call lisp from .net.My function works well when run withing the cad files session but does not appear to call the lisp when called after the BeginDocumentClose.

Is it possible to call a lisp function after the BeginDocumentClose event?

View 1 Replies View Related

AutoCAD .NET :: How Lisp Function Interpret Lists Passed In

Jun 20, 2012

I had thought this was fixed in 2012, but it seems that lists passed in to a lispfunction, get interpreted as if the first items was a dotted pair code.I first noticed this on a tool that takes three integers as an rgb color.

On some values, it shows null for the args in.On some, it reinterprets as if I am passing in a point.

If I pass in '(1 2 3), I get (5009, (1,2,3)) in .net so that is a 3d point.

Note that this alone is a bug, as its a list of three integers, not a point.

If I pass in '(10 20 30), I get (10, (20, 30, 0)) in .net

If I pass in '(228 27 185), I get null in .net

If there is going to be any interpretation going on, it should be because I sent in a dotted pair list. How Autodesk wants us to pass in lists so they come in as just a list of values sent in. URL....

View 6 Replies View Related

AutoCAD Visual LISP / AutoLISP :: How To Set Function To Radio Buttons

May 7, 2013

simple example code how can i set my lisp function to radio button ?

i found simple dcl - lisp codes , there is possibility for calling simple cad commands , but this is different about call lisp with buttons

which code i have to change and how  for set my lisp on radio buttons ..

here is the sample codes ...

SAMPLE1 : dialog {           label = "Sample Dialog Box Routine - Part 1";           : column {             : boxed_column {               : button {                 key = "but1";                 label = "Button 1";     

[Code].....

View 3 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Expire Date For A Function

Nov 27, 2012

I want to define en expiration date in registry, after that date the some LISP programs does not allow to run. I think that suitable commands are SetEnv and GetEnv.

define a ExpDt variable that contains Expiry Date as a string. And add some statements inside of the LISP program to call this variable and check it with today's date.

I should define once time in autocad:

(setenv "expdt" "130101"); YYMMDD date for validation period (2013.01.01)

and check this every time that a lisp program should be execeute:

(getenv "expdt") ; if today's date(with YYMMDD format) ">" expdt then lisp program doen not allow to run and should be halted.

for e.g. on 2013.02.28: "130228" > "130101" ==> so the lisp function should be halted and will not work!

(without any alert or message)

a sample list function: (how can implement on this lisp function?)

(defun c:3()
(setq w t)
(while w
(setq a (getpoint "
pick point:"))
(setq p1 (list (- (car a) 0.5)(- (cadr a) 0.5)))
(setq p2 (list (+(car a) 0.5)(+(cadr a) 0.5)))
(command "erase" "w" p1 p2 "")
(command "INSERT" "*3" a "" "" "0")
)
(if (= a nil)(setq w nil))

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Math In Foreach Function

May 15, 2013

In the foreach function can you use math like (foreach pt1 (add 1) so that foreach one you pick it adds one the next one will be named pt2 then pt3 and so on.

View 6 Replies View Related

Illustrator :: Why Does A Selection Release After UNDO Function

Mar 6, 2014

Why does a selection release after UNDO function? Older versions didn't used to. It's annoying to have to re-select after each time you undo.

View 6 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Create A Pop Up Menu Triggered By A Function Key?

Dec 29, 2011

I would like a small menu to pop up near the cursor like the middle mouse button menu, but based on some other function key or quick key shortcut. 

View 2 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Compiled Function Definition Error

Aug 17, 2012

The error below has appeared randomly when AutoCAD 2011 is started.  There was not an error of this sort, but it suddenly appeared and some of the LISP routines will no longer work. 

*Invalid attempt to access

a compiled function definition.  You may want to define it using defun-q:

#<SUBR @000000003f5fda98 S:: STARTUP>

View 1 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Creating Array Using Split Function?

Jan 10, 2013

In asp I'd write:

arrFileName = Split(DrawingName, "_")

JobNumber = arrFileName(0)
DrawingTitle = arrFileName(1)

SheetNumber = arrFileName(2)

I'd like to do the same thing in lsp. I don't want to be limited to three fields so the split function is perfect.Is there an equivalent?

View 3 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Function For SELECTED ALL Object In Drawing?

Jun 3, 2013

How to make a lisp command that will select all objects in the drawing?

View 3 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Object Reactor And Load Function LSP

Mar 13, 2012

I open the drawing without loading the function, when I modify an object with the reactors appears the following error message:

function definition: NAMEFUNCTION

You can avoid this annoying message without removing the persistent reactors? 

View 3 Replies View Related

AutoCAD Visual LISP / AutoLISP :: How To Define A Function With Negligible Arguments

Jun 25, 2013

I prepared a code to calculate number of days between two date.

I want to know how can I define negligible arguments for my lisp routins. It means if I omitted the arguments, lisp code can handle it without any errors ("; error: too few arguments")

In this case, my program defined as:  (TotalDays 1st_date 2nd_date)

(TotalDays 1978 03 21 2013 06 25)

and I want to have flexibility: if I use this routine as (TotalDays 1978 03 21), the program should substitute today's date with second date.

I know if I put "nil" instead of date for 2nd_date, It will not be an error, because:

(if (and y2 m2 d2) (setq n2 (GetJDN y2 m2 d2))(setq n2 (fix (getvar "DATE"))))

but that's not my favourite!, how can I omitted 2nd_date completely? as (TotalDays 1978 03 21)

Here is my lisp

;|How to use:(TotalDays 1978 03 21 2013 06 25)|;;;;;By Abbas Aqdam(defun TotalDays ( y1 m1 d1 y2 m2 d2 / n1 n2)(setq n1 (GetJDN y1 m1 d1))(if (and y2 m2 d2) (setq n2 (GetJDN y2 m2 d2))(setq n2 (fix (getvar "DATE"))))(abs(- n1 n2)));;;;Leap years are included;;;;By Abbas Aqdam(defun GetJDN ( year month day / a y m J)(setq a (/(- 14 Month) 12))(setq y (-(+ year 4800) a))(setq m (-(+ Month (* 12 a)) 3))(setq J (-(+ day (/(+(* 153 m) 2)5) (* 365 y) (/ y 4) (/ y 400)) (/ y 100) 32045)))

View 9 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved